Engineering job roles

How to decide which engineering job you want

Engineering by part of stack

In lots of company engineering roles are separated by what part of the stack they work on.

Cloud engineer / DevOps engineer / Platform engineer / Infrastructure engineer / SRE engineer

This role typically works on core infrastructure rather than the user facing products and you will be working closer to the operating system level.

You may be working with Go, Terraform, AWS Cloudformation, Pulumi, Bash, Python.

This role may vary considerably whether it is a cloud based role, working on AWS, GCP or Azure, or whether the infrastructure is on premises, so that is a good question to ask if it is not clear from the job spec. Sometimes this role will be working very closely with other engineering teams and sometimes it will be more siloed, so it is also good to ask about this during the interview process if exposure to other parts of engineering is important to you.

Back end engineer

This role typically works on creating APIs and creating back end services.

You may be working with Java, .Net, Python, NodeJS, Go.

Depending on what the company products are, they may be selling the back end services directly to their customers via a API, or they may be intergrated into the front end.

Front end engineer

This role typically works creating user facing experiences.

You will most likely be working with Javascript and some other frameworks, maybe Angular or React.

You will likely work closely with a design team and colleagues specialising in UX (User Experience).

Full stack engineer

This role typically does a combination of the other roles, and you will be working with multiple technologies. However although a role may be advertised as full stack the proportions of the different elements aren’t always the same. Some jobs may be 70% backend, 30% front end, some may be the other way round, and some may be infrastructure and others may not. It is worth asking during the interview process for more detail on how much you would be working on each part of the stack.

Other engineer roles

Sales engineer

This role typically works very closely with the sales team and the customers to help them use the product in a way that meets their needs, and sometimes involves tailoring the product for them. It is often less hands on than other engineering role so you would be writing less code but developing your client facing skills.

Product engineer

This role can be a type of back end, full stack, or front end engineer. In this role the focus is on the engineer having strong engagement in the product that is being built and so is good for people who are very interested in the results of what they are building, but less good if you want your main focus to be on the details of the implementation. Often in this role there is an expectation you will contribute ideas and opinions to what should be built as well as delivering it.

AI engineer / Prompt engineer

This role typically is focused on using AI to build applications. This may involve using different LLMs and integrating them with some custom logic and crafting effective prompts to leverage AI instead of building things from scratch.

You may be working with OpenAI, Gemini, Anthropic APIs, or working with AI platforms such as Mistral.

Application support engineer / Support engineer

This role is focused on using technical skills to solve customer problems. When customer report issues then this role will be involved in triaging the issue to understand what the problem is and sometimes the issue will then be escalated to a development team to fix it.

You may be working with a range of different technologies in this role, it often involves customer interaction as well and working closely with the customer support team more than other engineering teams.

QA engineer / QA tester / engineer in test

This role is focused on testing code and applications to make sure that bugs don’t end up in production. It can be more manual or automation focused or a mix of both. Sometimes the role will have a front end focus, sometimes a back end focus, sometimes it will be focused on performance and load testing so it’s good to ask in the interview process what types of testing the role will be focused on.

You may be working with Jest, Junit, Cucumber, Browserstack, JMeter. You may be embedded withing a cross functional engineering team, or you may be working in a test that is purely testing focused.

Data engineer / data analyst

These roles are focused on using data to provide insight to the rest of the business.

You may be working with Python, Pandas frameowork, DataBricks, Hadoop, EMR clusters.

Sometimes this will be a more client facing role if the company does a lot of customer reporting and sells their data as a product line. Other times this will be a purely internal role, providing data insights for the internal teams. Often there is also a machine learning element.

Typically a data engineer role will be focused on creating and maintaining the data platform, and the analyst role will be focused on creating reports and analysing the data to provide insight.

Consultancy and agency roles

There are frequently jobs within tech where you will be working for a software consultancy or agency. In this model you don’t work for the company who is selling the product, but you will be contracted to them for a set period of time. Sometimes you will be working with just one company, sometimes you may spend 50% of time with one company and 50% of time with another.

It can be a good way to get exposure to different companies, but at the same time you don’t always have any say in which projects you work on.