Finding Fulfillment in Coding: Which Programming Role Is Right for You?

John LeFevre
6 min readNov 28, 2020

source: pexels

We all individually possess unique innate talents, skills and interests. Finding roles that embrace them fully can be incredibly empowering and fulfilling. But more often than not, we find ourselves in mediocre roles, leading to cycles of job hopping, career shifts and feeling unfulfilled.

If you’re looking to make a career shift (or start a new career), you’ll find that there’s a wide range of programming roles out there, as types of roles or ‘specialities’ has gone up dramatically in recent years. While coding remains an in-demand skill, it is no longer just about building things.

With intentional planning, projects and job search, you can land more than just a job — one that’s the right fit for you.

The benefit of doing so is that being a natural match means you’ll likely have an easier time landing them too, because your strengths will shine and your passion will show. Below is a breakdown of the most common titles that involve coding skills and what they generally entail.

Note: This list is far from exhaustive, as job titles and functions depend on the company and its culture. This list is based on my personal observations working in web-based tech companies in engineering roles.

Software/Product Engineer (web, full-stack, back-end & front-end): Often the first choice for most learning to code, the excitement of being able to build new technology is a major draw in. You’ll likely be immersed in algorithms and would need to be skilled in writing clean and optimal code. Depending on the company, there’ll be even more branching out in these roles. For example, Front-end and Back-end are generally very different, with Front-end roles favoring an eye for visuals/UX. Full-stack has a jack-of-all-trades approach and maybe a good way to enter this kind of role before finding your niche.

Ideally: You’re a builder — You love to build new technologies and systems.

Data Engineer: A more specialized form of the Back-end engineer. If you find yourself more drawn to information systems rather than product features, this might be a good fit. You would be facilitating data infrastructure and analytics by building and maintaining database systems. This is a great role for builders who prefer a data-centric environment, instead of the product itself.

Ideally: You enjoy designing and building new data models & systems.

Data Scientist/Analyst: This role focuses on analyzing, rather than building. Therefore if you would rather contribute to business impact than build products for customers, this may be a good fit. This role, due to its purpose, can have more of a creative exploration aspect to it and typically serves a Business Intelligence function. If you’re the type of person who thrives on seeking knowledge and unraveling mysteries, this can be fulfilling for you. The Data Scientist role often has a machine learning component to it, unlike the Data Analyst role.

Ideally: You’re mathematical, creative and enjoy finding answers.

Data Visualization: Commonly seen in Data Journalism, think of this role as the marriage between Front-end Engineering and Data Analytics. You will need to be creative, visually-inclined and passionate about data. As more and more data begins to exist in the world, the need for effective visual communication (referred to as ‘Storytelling’) for business users is becoming more and more pronounced every day. This kind of work is also often an aspect of many Data Science/Analyst roles.

Ideally: You are creative, empathetic and have strong design skills.

Specialist (Security, iOS, Android, ML, VR, AI, etc): These are Software Engineering roles with a focus on a specific field. You will generally need more extensive experience and knowledge in a specific field to land these roles. It’s essentially a great fit for you if you love going in deep into one technology (think depth-first rather than breadth-first). Therefore it might not be for you if you crave a lot of variety. The drawback of this kind of role is that since it is less generalized, your options may be more limited. At the same time, since it is less generalized, you may possibly have a higher earning potential.

Ideally: You’re a builder and want to be an expert in one specialized area.

QA Engineer: This role typically involves writing test suites, using frameworks such as Selenium, JMock, Pytest, etc. The purpose of this role is to ensure the software developed works as expected and is free of bugs. While you will not directly work on the product, your function is essential before any product feature actually gets released. QA Engineering is certainly not for everyone, but it can be a great fit if you love to meticulously test technology to find problems, rather than solve them.

Ideally: You have an eye for detail & like to test and find problems.

Site Reliability/Infrastructure Engineer: For web-based services, you will make sure the services keep running smoothly. Downtime or performance issues can be incredibly costly for SaaS companies, thus this can be an incredibly high-stress role. If you thrive on such a challenge and enjoy working with networking technologies, this can be a great fit for you.

Ideally: You’re calm and thrive in a high-stress environment.

DevOps: This is a role bridging Software Development and IT Operations. You may be in charge of setting up access to codebases, tools, etc and helping developers set up their environments. This role can involve building internal tools and improving processes. You’ll likely be working closely with Developers and need to be a good communicator to thrive in this role.

Ideally: You’re interested in developer tools and processes.

Developer Advocate: Kind of like an ambassador for the developer community, this role is social and focused around promoting engineering tools to developers. You would likely be going to events and demo-ing or monitoring forums to answer questions frequently. If you like explaining/teaching technical concepts, this can be a good fit. While a social role, you are usually socializing exclusively within the developer community.

Ideally: You are sociable, enjoy teaching and attending tech events.

Technical Support Engineer: This kind of role is usually the next level of Customer Support, where you use your coding skills to resolve technical escalations. Depending on the company, you may get to work on a wide variety of day-to-day problems, which is great for those who thrive on variety. Sometimes the work can be of an investigative nature, which is a plus for many. However, this kind of role requires a lot of empathy as this is often a customer-centric role. This role is certainly becoming more and more essential for SaaS companies as they grow.

Ideally: You love helping people, are empathetic and enjoy variety in work.

Sales/Enterprise/Solutions Engineer: Instead of solving day-to-day problems like Support Engineers, you’re often working with customers in the onboarding stage and designing solutions for them to integrate the product of the company into their systems. This is a great fit for someone who is social and an excellent communicator, as this role can involve plenty of presentations/demos to non-technical customers. This role has a consulting feel to it, as you’re frequently working with new clients and you would benefit from possessing a deep understanding of business.

Ideally: You crave a mix of people and technology in your day-to-day work.

Overall: We’re seeing an incredible rate of branching out of technical roles, which is great because you can now utilize your coding skills in myriad ways and are not just limited to just one kind of job. Whether you enjoy solving mysteries or helping people, there is something right out there for you. Through gaining a deeper understanding of yourself and what moves you, you can create lasting fulfillment in your career