Roles in an engineering team
On This Lesson 11 topics
Lesson Overview
In the previous lesson you saw that building software is more than writing code: someone has to design it, test it, release it, and keep it running. In a real team these jobs are usually shared among people with different roles. A role is a set of responsibilities, such as "builds what the user sees" or "keeps production reliable". It is not the same as a job title, and one person may play several roles.
In this lesson you will meet seven roles you will hear about constantly: frontend, backend, full-stack, QA, DevOps, SRE, and architect. You will learn what each one is mainly responsible for, what it hands to the next, and where the roles overlap. You will also learn why the list is blurry in real life: a small startup may have three people covering all seven roles, while a large company may have separate teams for each.
The house picture from the previous lesson helps. The architect draws the overall plan. The frontend is the rooms and furniture that people see and touch. The backend is the plumbing, wiring, and foundations that make the house work behind the walls. QA are the inspectors. DevOps is the system that delivers materials and lets builders work quickly and safely. SRE is the caretaker team that makes sure the house stays livable, including when a pipe bursts at night.
Why this matters: when you read job posts, plan your learning, or join a team, you need to know who does what, whom to ask, and where your own work fits. This lesson also prepares the next one, which follows a single feature as it moves from role to role.
A warning that applies to the whole lesson: there is no official standard for these roles. Companies define them differently and the boundaries move. What follows is the common, simplified picture, not a rulebook.
Learning Objectives
By the end of this lesson you will be able to:
- Describe the main responsibility of the frontend, backend, full-stack, QA, DevOps, SRE, and architect roles.
- Explain how the roles hand work to each other when a feature is designed, built, checked, released, and operated.
- Choose which role to ask when given a simple problem (for example "the page looks broken on a phone" or "the service is down").
- Explain why DevOps and SRE are related but not the same, and why role names vary between companies.
- Explain why a backend engineer needs to understand the neighboring roles, even without doing their work.
- Say which role you would start in and which adjacent skills you would need to add.
Written Explanation
Roles, not job titles
A role describes what someone is responsible for. A job title is the label on a business card. A person titled "Software Engineer" might do frontend work on Monday, backend work on Tuesday, and QA-style checking on Friday. Conversely, two people with the title "Backend Engineer" at different companies may have very different duties. Use the roles below as a map, and expect that real teams smudge the borders.
Frontend engineer: what the user sees
The frontend is the part of an application that runs where the user is: in a web browser or inside a mobile app. In the browser, frontend code is written in the languages the browser understands (HTML, CSS, and JavaScript, covered by the MDN web documentation). A frontend engineer builds the screens, buttons, forms, and layout, makes them work on different devices and sizes, and sends requests to the backend when data is needed.
Typical concerns: Does the page look right on a phone? Is it fast to load? Can someone who uses a screen reader use it? Does it show a helpful message when the backend is slow?
You first met the idea in the module on software: a website's frontend and its backend are not the same thing. The frontend asks, the backend answers.
Backend engineer: the hidden service, data, and rules
The backend is the part that runs on servers. It receives requests from frontends (and sometimes from other services), applies the business rules, stores and retrieves data, and sends back responses. It is the role this entire course prepares you for.
Typical concerns: Is this request allowed? Is the price calculated correctly? Is the data stored safely and kept consistent? Does the service stay fast when many requests arrive? If the data is wrong, who gets hurt?
A good backend engineer needs to be careful, because many people and programs depend on the service, and mistakes in rules or data can be costly.
Full-stack engineer: both sides
A full-stack engineer works on both the frontend and the backend of the same product. "Stack" means the layers of technology that make up an application, from what the user sees down to where the data is stored. Full-stack engineers are common in small teams, where one person owns a feature from the screen to the database.
Full-stack does not necessarily mean "expert in everything". Many full-stack engineers are stronger on one side. The value is that they can follow a feature across the layers and understand the other side's needs.
QA: finding problems before users do
QA stands for quality assurance. QA engineers (sometimes called testers) check that the software does what the requirements say, and look for the cases nobody thought of: strange inputs, unusual sequences of actions, many users at once. They may test by hand, write automated tests (programs that check the software), or help the team design a test strategy.
Many modern teams have the developers write tests for their own code too, with QA engineers focusing on harder questions: what should we test, what is risky, and how do we know the product is good enough to release? In some teams there is no dedicated QA role and everyone shares the testing work.
QA is not the "last line of defense" that excuses everyone else from care. The best result is a team where quality is built in from the requirements stage on.
DevOps: automating the road to release
The word DevOps joins "development" and "operations". Microsoft's documentation describes it as a way of bringing development, operations, and related roles together through shared culture, practices, and tools. Because DevOps is both a culture and a set of practices, you will see it used in two ways:
- As a way of working, in which developers and operations people collaborate and share responsibility across the life of the software.
- As a job role, usually called DevOps engineer: the person who builds and maintains the automatic systems that build, test, and release software, and the infrastructure it runs on.
The automatic route from "a developer saves a change" to "the change is checked and available to users" is often called a pipeline. Setting up pipelines is a typical DevOps task. Continuous integration (CI) is one practice you will meet: team members merge their changes into the shared code often, and each merge triggers an automatic build and set of tests, so that mistakes surface in minutes instead of weeks.
SRE: keeping production reliable
SRE stands for site reliability engineering. The idea, described in Google's SRE book, is to hire software engineers to run production services, and to have them build software that automates operations work instead of doing it all by hand. An SRE team typically cares about how available the service is, how fast it responds, how changes are rolled out, how it is monitored, what happens in an emergency, and whether there is enough capacity for the demand.
The book also describes a useful shared measure, the error budget: a chosen amount of allowed unreliability, based on how reliable the service needs to be. While there is budget left, the team can release new things boldly. When it runs out, the team slows down and focuses on reliability. This turns a typical argument ("ship faster" versus "keep it stable") into a measurable agreement.
DevOps versus SRE in one sentence: DevOps is mainly about developers and operations working together and automating the path to release; SRE is a specific approach to running production using software engineering. They overlap a great deal. Many companies use one word for what others call the other, or have one team doing both. Do not worry about getting an exact line; focus on the responsibility each name points to.
Architect: how the big pieces fit
An architect decides, or leads the decisions about, how the large pieces of a system fit together: what the main parts are, how they talk to each other, where data lives, what rules the whole system follows, and which trade-offs to accept (cost, speed, safety, simplicity). Architects look at a longer time horizon and a wider area than a single feature.
Architect work appears at several levels: a senior backend engineer may make architecture decisions for a service, while larger organizations have people whose main job is architecture across many teams (the career map in lesson 4 returns to this). In a good team, architects explain their decisions and stay close to the code, rather than handing down a drawing and disappearing.
The roles at a glance
| Role | Main question | Typical output |
|---|---|---|
| Frontend | What does the user see and touch? | Screens that run in the browser or app |
| Backend | What rules and data sit behind the screens? | A service that answers requests and stores data |
| Full-stack | Does the whole feature work, screen to data? | A feature across both layers |
| QA | Does it really work, and what did we miss? | Test plans, automatic tests, bug reports |
| DevOps | How do changes get built, checked, and released safely and quickly? | Pipelines and automation |
| SRE | Is it reliable in production? | Monitoring, incident response, reliability improvements |
| Architect | How do the big pieces fit and what are the trade-offs? | Plans and decision records |
How the roles hand work to each other
A feature does not belong to one role. It moves, and often loops back. A simplified picture:
Architect/team design -> Frontend + Backend build -> Review -> QA + automatic tests
-> DevOps pipeline releases -> SRE/operations team runs and watches
-> feedback and problems return to the team for the next changeIn words: the design says what the pieces will be. The frontend and backend engineers build their parts and agree on how they talk (what the request looks like and what comes back). Teammates review the code. QA and automatic tests check it. The pipeline that DevOps maintains builds and releases it. The people who run production watch it, and what they see feeds back into the next piece of work. Lesson 3 follows this path step by step.
Two things to notice:
- The handoffs are conversations, not walls. If the backend changes how its answers look and does not tell the frontend, the screen breaks. Teams reduce this by agreeing on the shape of requests and responses early, and by testing them.
- The arrows go both ways. QA sends bugs back to the builders. SRE sends reliability findings back to developers. The architect hears from builders that a design is too hard to implement.
Who to ask?
Matching a problem to a role is a good test of understanding:
- "The login button overlaps the logo on a phone." Frontend.
- "The service answers 'price: -5'." Backend (the rule is wrong), perhaps with QA to add a test for it.
- "Deploying takes two hours of manual steps." DevOps.
- "The service has been failing every Monday morning." SRE/operations with the backend team.
- "Should the orders and payments live in one service or two?" Architecture, with the backend team.
In practice you ask the team, and you find out who is best placed. But knowing the map tells you which questions to bring.
Where do you start?
This course follows the backend role. But a backend engineer constantly touches the neighbors: reading frontend requirements, writing tests, understanding the pipeline, and being involved in operating the service. At work you do not need to be an expert in the other roles. You need to know what they need from you, and to speak enough of their language to collaborate.
Examples
Example 1: a small bakery's website (simple)
A bakery has a site where customers can order bread.
- Frontend: the order page, with photos of bread and an "Order" button.
- Backend: receives the order, checks the stock, stores the order, and tells the shop it needs to bake.
- QA: tries ordering zero loaves, a thousand loaves, and ordering after closing time.
- DevOps: sets up the automatic path that puts each new version of the site online.
- SRE or operations: notices if the site is down at 5 a.m. when the bakers check it.
- Architect: decides whether the order system should be separate from the shop's stock system.
In a team of two people, one person would handle several of these. That is normal.
Example 2: tracing one bug across roles (practical)
A customer reports: "I added a coupon and the total became negative."
- Operating team sees the report and a spike of failed payments. They tell the backend team and give examples.
- Backend engineer finds the rule: a fixed coupon larger than the cart total is subtracted without a limit. The rule is wrong, so the fix is in the backend.
- Frontend engineer notices that the screen also shows the negative total without any warning, and adds a friendlier display for refused coupons.
- QA adds tests: coupon larger than cart, coupon equal to cart, expired coupon.
- DevOps pipeline runs the tests on the fix and releases it.
- Operating team watches whether the problem stops.
No single role fixed the problem. The fix was cheap because each person did their part and spoke to the others.
Example 3: the same product in a startup and in a large company (realistic)
| Startup with six engineers | Large company with several hundred engineers | |
|---|---|---|
| Frontend/backend | Everyone is full-stack | Separate teams for web, mobile, and several backend services |
| QA | Developers write tests; one person helps with test planning | A QA group, plus quality engineers inside teams |
| DevOps | One engineer builds the pipeline in addition to their feature work | A platform team provides pipelines for all other teams |
| SRE/operations | Everybody takes turns being on call | A dedicated SRE team for critical services |
| Architect | The most experienced engineer makes the big decisions | Architects at several levels, with review processes |
The jobs are the same, but the arrangement is different. When you read a job post, ask which of these roles it expects you to cover. "Backend engineer" at a six-person startup and at a bank may feel like different careers. The table is a simplified illustration, not data about any specific company.
Backend Insight
For a backend engineer, other roles are your closest neighbors:
- Frontend engineers are your most frequent users. You will agree with them on what a request looks like and what the response contains. A clear, stable agreement lets both sides work in parallel. A change you make without telling them can break their screens. Later modules teach the web technology behind this agreement.
- QA and automatic tests are your safety net. Backend mistakes can silently corrupt data. Writing testable code, and tests that run automatically, makes your work safer to change.
- DevOps and SRE influence how you write code. Code that is easy to deploy, restart, and watch is easier to run. A service that writes useful messages about what it is doing helps the on-call person find the cause at night.
- Architecture decisions shape your daily work. The way services are split decides what you can change without asking another team.
- Being on call may be part of the job. In some teams, backend engineers take turns being the first person alerted when their service fails. In others a separate SRE or operations team handles the first response, and the developers join for harder problems. Ask about this when you apply for a job.
So even if you never do frontend, QA, or DevOps work, the better you understand them, the better your backend code will be.
Common Mistakes
Mistake 1: Treating role names as strict rules
- Incorrect: "I am a backend engineer, so testing and deploying are someone else's problem."
- Correct: "My main role is backend, and I still write tests for my code and understand how it is released."
Role names describe emphasis, not a wall.
Mistake 2: Mixing up DevOps and SRE
They are close cousins. A helpful rule: DevOps is about people and automation across development and operations, and SRE is about running production reliably with a software engineering approach. If you are unsure which one a company means, read the responsibilities in the job post, not the title.
Mistake 3: Thinking QA's job is to catch everything
- Incorrect: "QA will find the bugs, so I do not need to check my code."
- Correct: "I test my own work and write automatic tests, and QA adds a fresh perspective and looks at risks I did not think of."
Testing late is expensive. Quality is everyone's job.
Mistake 4: Thinking the architect only draws pictures
Architecture decisions only count if they work in code. Architects who do not listen to the people building the system choose designs that are hard to build or run.
Mistake 5: Believing "full-stack" means "knows everything"
It means working across layers. Nobody is equally deep in all of them. Be wary of both job posts and self-descriptions that suggest otherwise.
Exercises
Try each exercise yourself before opening the solutions.
Level A: Foundation
A1. In one sentence each, say what frontend and backend are responsible for.
Show solution A1
A1. Frontend: builds the part users see and touch, running in the browser or a mobile app. Backend: builds the hidden service that applies the rules, stores data, and answers requests.
A2. What does QA stand for, and what is its main job?
Show solution A2
A2. Quality assurance. Its main job is to check that the software works as required and to find problems (bugs and missed cases) before users do.
A3. Write the roles in the order a feature usually passes through them: DevOps pipeline releases it, architect/team designs it, QA checks it, frontend and backend build it, SRE/operations runs it.
Show solution A3
A3. Architect/team designs it, frontend and backend build it, QA checks it, DevOps pipeline releases it, SRE/operations runs it. (Code review by teammates also happens between building and QA checking.)
Level B: Application
B1. Match each problem to the role most likely to start working on it: (a) the checkout page is slow to load images on mobile, (b) the order service saves two copies of the same order, (c) deploying a new version needs 30 manual steps, (d) the site was down last night for two hours and nobody noticed, (e) the team cannot decide whether to split the shop into several services.
Show solution B1
B1. (a) Frontend. (b) Backend, with QA adding a test. (c) DevOps. (d) SRE/operations (monitoring and alerts are their concern), with the backend team. (e) Architect, together with the backend team.
B2. Explain the difference between DevOps as a way of working and DevOps as a job role.
Show solution B2
B2. As a way of working, DevOps means developers, operations, and other roles collaborating and sharing responsibility for the whole life of the software, supported by practices and tools such as automation. As a job role, a DevOps engineer is the person who builds and maintains the automatic systems for building, testing, and releasing software.
B3. A new backend engineer says: "I only write backend code, so I do not need to talk to the frontend engineer." Write a short reply explaining what could go wrong.
Show solution B3
B3. Example: "The frontend depends on what your service sends back. If you change a field name or the shape of a response without telling them, their screens may break after your release. Talk to them early to agree on what requests and responses look like, so both of you can work in parallel and test the agreement."
Level C: Challenge
C1. You join a team of four people building a small recipe-sharing app. List which roles you would expect the four people to cover, and which roles will be shared or skipped. Explain who you think should be responsible for noticing a night-time outage.
Show solution C1
C1. Example: with four people, probably two or three do both frontend and backend (full-stack), one also builds the pipeline (DevOps), nobody is dedicated to QA so everyone writes tests, and the most experienced person makes architecture decisions. There is no SRE; the team shares on-call duty. Responsibility for a night-time outage would be a rota among the four, with an automatic alert. Any consistent answer that explains who covers what is fine.
C2. Choose one of the seven roles, other than backend, that you would like to know more about. Write three sentences: what it is responsible for, what a backend engineer must give it, and what it gives back to the backend engineer.
Show solution C2
C2. Example (QA): QA is responsible for finding problems before users do, by designing and running tests. The backend engineer must provide testable behavior, clear requirements, and a way to try the service with test data. QA gives back bug reports with steps to reproduce, and ideas about unusual cases the backend engineer had not considered.
Mini Challenge
Pick an app you use every day and imagine the team behind it. Draw or write a row of boxes, one for each of the seven roles in this lesson. Under each box write one sentence describing what that role would plausibly do for this app. Then draw arrows for the handoffs, and write on one arrow a thing that could go wrong if the two roles did not talk (for example, a field name that changed). Mark which role you could realistically start in, and which neighboring skill you would learn first.
Check your work: every box has a concrete, app-specific sentence, the arrows show a feature moving from design to operation, and you described one real way a missed handoff could cause a problem. You are guessing, because you cannot see inside the company, so say that on your page.
Summary & Next Lesson
Key takeaways
- A role is a set of responsibilities, not a job title. Real teams combine and split roles differently.
- Frontend builds what the user sees. Backend builds the hidden service, data, and rules. Full-stack works on both.
- QA finds problems by checking the software. DevOps automates building and releasing. SRE keeps production reliable. The architect decides how the big pieces fit.
- Work passes from design to build, review, test, release, and operation, and feedback travels back.
- Handoffs are conversations: agree on what is passed, and keep talking.
- A backend engineer works closely with all the other roles and should understand what each one needs.
Next lesson
Now you know who is on the team. In "How a feature travels from idea to production" you will follow one feature step by step: from the first idea, through requirements, design, code, review, tests, and release, to monitoring it in production.
Self-check
- Which role builds what users see on screen?
- Which role is mainly responsible for keeping production reliable?
- What is a pipeline in the DevOps sense?
- Why can changing a backend response without telling the frontend cause problems?
- Why are role names not a reliable guide to what someone does?
Show answers
- Frontend.
- SRE (site reliability engineering), often together with the teams that built the service.
- The automatic route that builds, tests, and releases a change after a developer saves it.
- The frontend relies on the shape of the response; if it changes, the screens that read it may break.
- Companies define and combine roles differently, and one person can play several roles.
References
- Microsoft Learn, What is DevOps?. Supports the description of DevOps as uniting development, operations, quality, and related roles through culture, practices, and tools, and the description of continuous integration as automatically merging and testing code.
- Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy (eds.), Site Reliability Engineering, chapter 1 "Introduction". Supports the description of SRE as software engineers running production services, the areas an SRE team owns (availability, latency, change management, monitoring, emergency response, capacity planning), and the error budget idea.
- Mozilla, MDN Web Docs: What is JavaScript?. Supports the point that frontend code runs in the browser, on the user's device, as opposed to code on a server.
- Martin Fowler, Continuous Integration. Supports the description of merging changes often with an automatic build and tests.
- I did not find an authoritative standard that defines the QA, full-stack, or architect roles, so those descriptions are the course's common, simplified picture and are hedged accordingly. The startup versus large company table is illustrative, not data.
Practice
Apply this lesson with the module's lab, exercises and quiz.
Marking a lesson complete is optional and you can undo it any time. Your progress stays in this browser.