Lesson 1 of 5
The DevOps/SRE Interview
"Hope is not a strategy. Everything eventually fails, so plan for it — and interview for the person who already has." — the SRE mindset, distilled
You have spent this entire volume learning to run software: to package it into containers, ship it through pipelines, schedule it on Kubernetes, provision the cloud beneath it as code, watch it with metrics and traces, and defend it. Now we turn that knowledge toward a specific, high-stakes conversation — the one across a table (or a video call) where someone decides whether to hand you the pager for a system real people depend on. This Part is about the DevOps, SRE, and Platform interview: what it actually tests, why it feels different from the backend interviews you may have prepared for, and how to walk in ready.
Here is the reframe that changes everything. A backend interview mostly asks can you build it? A DevOps or SRE interview asks can you build it, deploy it, run it at 3 a.m., observe it, secure it, and keep it up when it — inevitably — breaks? The center of gravity shifts from write to operate. Interviewers stop being satisfied by working code and start probing the edges: what happens under load, on failure, during a bad deploy, when the database is slow and the pager is screaming. This chapter orients you to that whole gauntlet before the deep-dive chapters that follow arm you for each round.
And the demand is real. DevOps, SRE, and Platform Engineering are among the best-compensated, most sought-after tracks in the industry, and even "pure" backend and full-stack loops now routinely wander into "how would you deploy this?" and "what do you do when it goes down?". Whether you're aiming for an ops title or just want to stop losing points on the operational half of every interview, this Part is your map.
What is a DevOps/SRE interviewer actually listening for — and how do you prepare for a loop that spans Linux internals, pipelines, Kubernetes, cloud, networking, reliability math, scripting, and a system-design round with an ops slant?
What the role actually does (so you know what they test)
Titles blur across companies, but the shape of the work is consistent, and the interview mirrors the work. A DevOps/SRE/Platform engineer is the person who owns the build → ship → run layer:
- Automate the path to production — CI/CD pipelines so a merge becomes a safe deploy with no human hand-offs.
- Operate the runtime — containers and orchestration (Kubernetes), autoscaling, rollouts, rollbacks.
- Provision infrastructure as code — cloud resources defined in Terraform/CloudFormation, versioned and reviewable.
- Make systems observable and reliable — metrics, logs, traces, SLOs, alerting, on-call, incident response, postmortems.
- Reduce toil and pave roads — build the platform and tooling that lets product teams ship themselves, safely.
- Debug live — when the site is slow or down, be the person who methodically finds and fixes it under pressure.
Because that is the job, the interview tries to simulate slices of it. Nobody asks you to reverse a binary tree to prove you can carry a pager; they hand you a slow server, a broken pipeline, a flaky deploy, or a reliability target and watch how you think.
Analogy A backend interview is like a driving test on an empty course — can you steer, park, signal? A DevOps/SRE interview is a test for an ambulance driver: the same driving skills, but now under sirens, at night, in traffic, with a patient in the back and a radio asking for your ETA. They're not just checking that you can code — they're checking that you stay calm, systematic, and safe when the system is on fire and the clock is running.
The interview loop: the rounds you'll face
A DevOps/SRE loop is usually a mix of the rounds below. You rarely get all of them in one company, but across a few interview cycles you'll meet every one. Here is the topic map, then the detail.
The round types, and what each one is really assessing
| Round | Typical prompt | What they're really assessing |
|---|---|---|
| Linux & systems fundamentals | "A server is slow / a process is eating memory — walk me through it." | Do you know the OS under the app? Processes, memory, file descriptors, disk, top/ps/vmstat/ss/strace. Systematic, not lucky. |
| Live troubleshooting | "The site is down. Go." (shared terminal or verbal) | Calm, methodical debugging under pressure. Form a hypothesis, test it, narrow the layer — measure, don't guess. |
| CI/CD & pipeline design | "Design a pipeline for this service from commit to prod." | Stages, gates, artifacts, environments, rollback, secrets. Safety and speed together. (Deep-dive: the pipeline-design chapter next.) |
| Containers & Kubernetes | "What happens when you kubectl apply?" / "Write a Dockerfile." |
Image layers, the container lifecycle, K8s objects (Pod/Deployment/Service), scheduling, probes, rollouts. |
| Cloud & IaC | "Provision a highly-available web tier in AWS with Terraform." | VPC/subnets, load balancers, autoscaling, IAM least-privilege, state management, immutable/idempotent infra. |
| Networking | "A request from the browser reaches your pod — trace every hop." | DNS, TCP/TLS, HTTP, load balancers, ingress, service mesh, firewalls/security groups, the OSI layers in practice. |
| Observability / SRE | "Define an SLO for this service and an alert off it." | SLI/SLO/SLA, error budgets, the golden signals, alerting on symptoms not causes, incident response, blameless postmortems. |
| Coding / scripting | "Parse this log file and report the top error rates" / "automate this task." | Real automation in Bash/Python/Go — string/log processing, APIs, idempotency. Not LeetCode-hard; practical. |
| System design (ops slant) | "Design a deployable, reliable, observable URL shortener." | Same as classic system design plus how you deploy, scale, roll out, monitor, and recover it. (Cross-ref System Design, Vol 5 and the pipeline-design chapter.) |
| Behavioral | "Tell me about an incident you handled / a time you disagreed with a dev team." | Ownership, calm under fire, blamelessness, collaboration across the old dev/ops wall. (Cross-ref Behavioral, Vol 6.) |
From the notebook The single most common opener in the whole loop is some version of "a server is slow — debug it live." It is a gift, because it's pure method. A senior answer sounds like a decision tree, spoken aloud: "First I'd confirm the symptom and scope — one host or all of them, one endpoint or everything? Then I'd walk the layers: is it CPU, memory, disk, or network? top for load and CPU, free/vmstat for memory and swap, iostat for disk, ss and latency checks for network. Is the app itself slow or is it waiting on a downstream — the database, a cache, an API? I'd check the golden signals on the dashboard before I SSH anywhere. What changed recently — a deploy, a config, a traffic spike? I'd form one hypothesis, test it, and narrow." You don't need to be right instantly. You need to be systematic — that's the whole grade.
The mindset interviewers are probing
Underneath every round, interviewers are testing for a way of thinking more than a stack of facts. Four mental habits recur, and naming them for yourself will change how you answer:
- Operational thinking — "what happens when it fails?" For every design you propose, they'll ask the follow-up: at 3 a.m., under 10x load, when a node dies, when the network partitions, when the deploy is half-rolled-out. Senior candidates volunteer the failure modes before being asked. Assume failure is normal, not exceptional.
- Automation-first. If a human does it twice, it should be scripted. When you catch yourself describing a manual step ("then someone SSHes in and restarts it"), that's a flag — the better answer automates it, or explains why it can't be. Toil is the enemy.
- Measure, don't guess. Reach for data — a metric, a log, a trace, a benchmark — before opinion. "I'd check the p99 latency and error rate" beats "it's probably the database." Instrument first; conclude second.
- Ownership. You build it, you run it. The answer that ends "…and I'd own the rollback and write the postmortem" lands differently from one that ends "…and then it's ops's problem." There is no wall to throw things over.
Think about it Take any system you've built and ask the interviewer's favorite question about it — "what happens when it fails?" — five times, one layer deeper each time. The process dies. The host dies. The datacenter loses power. The database is up but slow. The deploy is half-finished when it breaks. If you have a crisp answer for each, you're thinking like an SRE. If some of those make you wince, that wince is exactly where the interview will push.
How this differs from a pure backend interview
The overlap with backend is real — you must still know HTTP, databases, concurrency, and data structures. But the emphasis moves, and knowing where it moves lets you spend your prep wisely.
| Dimension | Backend interview | DevOps / SRE interview |
|---|---|---|
| Central question | Can you build it? | Can you build it, ship it, run it, and recover it? |
| Coding | Algorithms & data structures, correctness | Practical scripting — automate, parse logs, call APIs |
| Design | Feature & data modeling, API design | Same, plus deploy/scale/observe/rollback/secure |
| Failure | An edge case in the code | A node down, a bad deploy, a network partition, an outage |
| Success looks like | The tests pass | The service stays up and recovers fast when it doesn't |
| The killer follow-up | "Now handle this input" | "Now it's down at 3 a.m. — what do you do?" |
The takeaway isn't that backend prep is wasted — it's that you must extend it. Every design answer should grow an operational tail: how it deploys, how it scales, how you'd know it's healthy, and how you'd recover it. That tail is the difference between a backend answer and an SRE answer.
The SRE flavor: reliability as a math problem
Site Reliability Engineering — Google's implementation of DevOps — adds a distinctive quantitative layer that shows up hard in interviews. Three ideas do most of the work.
SLI / SLO / SLA. A Service Level Indicator is a measurement (e.g. the fraction of requests served in under 200 ms). A Service Level Objective is your internal target for it (e.g. 99.9% of requests succeed over 30 days). A Service Level Agreement is the external, contractual promise (usually looser than the SLO, with penalties). Interviewers want you to define a good SLI — one that tracks user happiness, measured at the right place — and set a realistic SLO.
Error budgets. This is the idea that makes SREs sound different from everyone else. If your SLO is 99.9% success, then 0.1% is your error budget — a permitted amount of unreliability, and a currency you can spend. Budget left over? Ship faster, take more risk. Budget exhausted? Freeze risky changes and pour effort into reliability. It's the mechanism that finally aligns dev (who want to ship) and ops (who want stability): they're now spending from the same account.
The budget is concrete, and being able to compute it live is a strong signal:
Reduce toil. Toil is manual, repetitive, automatable operational work that scales with traffic and produces no lasting value — restarting a service by hand, copying config, clicking through a runbook. SRE culture caps toil (Google famously targets under 50% of an SRE's time) and spends the rest engineering it away. In interviews, spotting toil in a scenario and proposing to automate it is a reliable way to sound senior.
Where this came from In 2003, Google put a software engineer named Ben Treynor in charge of a production operations team and let him design it as he thought a software engineer would. The result was SRE: treat operations as a software problem, budget for a tolerable amount of failure instead of chasing an impossible 100%, and free engineers from toil so they can automate. The 2016 Site Reliability Engineering book turned it into an industry standard. When a Google interviewer asks about error budgets, they're asking whether you understand the founding trade-off: perfect reliability is the wrong goal, because the last "nine" costs more than it's worth and blocks all velocity.
In production The error budget isn't a metaphor on real teams — it's a policy with teeth. When a service blows its budget, the on-call lead can invoke a change freeze: no feature deploys until reliability work brings the budget back into the black. That's why the concept is beloved by interviewers — it converts an emotional, political fight ("stop breaking prod!" vs. "stop blocking my launch!") into a number both sides agreed to in advance. Show that you understand it as an alignment mechanism, not just arithmetic, and you're speaking the language of the discipline.
How to prepare
This is a hands-on discipline, and it rewards hands-on prep. Reading about Kubernetes is worth a fraction of running it and breaking it. A concrete plan:
- Build the real thing, end to end. Take a small app and carry it all the way: write a Dockerfile, wire a CI/CD pipeline (GitHub Actions is free and enough), deploy it to a local Kubernetes (
kind,minikube, or Docker Desktop), put a metric and a dashboard on it. The muscle memory of having done it is what makes your answers specific instead of vague. - Break things on purpose. Kill a pod and watch it reschedule. Push a bad image and practice the rollback. Fill a disk. Max out CPU with a stress tool and debug it with
top. Interviewers can hear the difference between someone who has seen aCrashLoopBackOffand someone who has only read about one. - Know the fundamentals cold. Linux (processes, memory, filesystems, networking, the
top/ss/stracetoolkit), TCP/TLS/HTTP/DNS, and how a request physically travels from a browser to your code. These are the rounds you cannot bluff, and they're the ones that separate levels. - Sharpen practical scripting. Be fluent parsing logs and automating chores in Bash and Python (and read Go — it's the language of cloud-native tooling). Practice: "given this access log, report the top 10 IPs by error count." That's a real DevOps coding question.
- Rehearse the reliability vocabulary. Be able to define an SLI, set an SLO, compute an error budget, and name the golden signals (latency, traffic, errors, saturation) without hesitating.
- Prepare incident STAR stories. Have two or three crisp on-call/incident narratives ready — Situation, Task, Action, Result — emphasizing calm, method, ownership, and a blameless postmortem. This is where the behavioral round lives; the Behavioral, Vol 6 frameworks apply directly, just pointed at outages and cross-team friction instead of feature work.
Analogy Preparing for this interview is like training to be a pilot, not memorizing an aircraft manual. You can recite every system, but what earns the seat is hours in the simulator handling engine failures, crosswinds, and instrument outages until the response is automatic. Spin up the clusters. Pull the plugs. Read the logs. The calm you'll show in the live-debug round is a deposit you make now, at your own keyboard, where mistakes are free.
Common Mistakes
- Preparing like it's a backend interview. Grinding only algorithms and skipping Linux, networking, and the deploy/observe/recover half leaves you silent in exactly the rounds that define the role. Extend your prep; don't just reuse it.
- Reciting tools instead of reasoning. Naming Kubernetes, Terraform, and Prometheus proves nothing. Interviewers probe the why and the what-happens-when-it-fails. Concepts first, tools as illustration.
- Jumping to a fix in the live-debug round. Guessing "restart it" or "it's the database" before forming and testing a hypothesis reads as luck, not skill. Narrate a method: confirm the symptom, scope it, walk the layers, test one hypothesis at a time.
- Ignoring the operational tail in system design. A design that never mentions how it deploys, scales, is monitored, or recovers is a backend answer in an ops round. Always grow the tail.
- Chasing 100% reliability. Insisting nothing should ever fail signals you don't understand error budgets or cost. The senior answer picks a realistic SLO and spends the budget deliberately.
- Behavioral stories with blame. "The dev team pushed bad code and I had to clean it up" fails the culture check. Frame incidents blamelessly, with shared ownership and a systemic fix.
Thought experiment An interviewer says only this: "It's 3 a.m. You're on call. Your phone buzzes: the checkout service is throwing 500s and revenue is dropping. Go." No architecture diagram, no logs — just that. Where do you start, out loud? (A strong answer: acknowledge the page and start a timer; check the dashboard for the golden signals and blast radius — all users or some? Look at what changed in the last hour — deploys, config, feature flags — because most incidents are self-inflicted; form a hypothesis; if a recent deploy correlates, roll back first and diagnose after — mitigate, then investigate; communicate status the whole time; write the blameless postmortem tomorrow.) That structure — detect → assess → mitigate → resolve → learn — is the spine of every incident round.
Hands-on Build your interview map. On one page, list the ten round types from the table above and rate yourself 1–5 on each, honestly. For your two lowest scores, write the single concrete prep action that would move the needle — "run a kind cluster and force a CrashLoopBackOff," "parse a real nginx access log with awk and Python," "write out my SLI/SLO/error-budget definitions from memory." Then draft one incident STAR story end to end: the situation, what you did, the outcome, and the blameless lesson. Keep this page; it's your syllabus for the rest of this Part, and each deep-dive chapter ahead fills in one row of it.
Summary
- A DevOps/SRE interview tests build → ship → run, not just build: the center of gravity moves from writing code to deploying, operating, observing, securing, and recovering it.
- The loop is broad — Linux/systems, live troubleshooting, CI/CD, containers/Kubernetes, cloud/IaC, networking, observability/SRE, practical scripting, an ops-slanted system-design round, and behavioral on-call stories.
- Interviewers probe a mindset: operational thinking ("what happens when it fails?"), automation-first, measure-don't-guess, and end-to-end ownership.
- The SRE layer is quantitative — SLI/SLO/SLA, error budgets (the currency that aligns dev and ops), the golden signals, and reducing toil. Being able to compute an error budget live is a strong signal.
- Prepare hands-on: build a real pipeline, run Kubernetes locally, break things on purpose, know Linux and networking cold, sharpen log-parsing scripts, and rehearse blameless incident STAR stories (cross-ref Behavioral, Vol 6).
Next, we go straight into the round most likely to open your loop and most rewarding to master — designing a CI/CD pipeline from commit to production, safely — the deep dive behind the "design a pipeline" prompt you just met.
Editorial reflection The DevOps interview is really a test of whether you can be trusted with something that matters while it's live. Anyone can make code work in a quiet room; the question this whole Part answers is whether you stay systematic when the room is loud — when the graph is red, the pager won't stop, and people are waiting. That calm isn't a personality trait you're born with. It's built, one broken cluster and one recovered outage at a time, until "what happens when it fails?" stops being a scary question and becomes the first one you ask. Prepare so that the version of you in the interview — and the version on call six months from now — is the one who already knew the answer.
Q&A · 0
Enrol to ask questions and join the discussion.
No questions yet — be the first to ask.