Use Template

Opens this plan in Hirezen, where one click makes it a position.

DevOps Engineer interview questionsDesign review — a release path where rollback is one commit round

A 60 min interview plan with a time-boxed script, what each question is for, and the signals to score against. Key skills: A release design review for a GitOps path: a migration that runs at startup under a canary, a gate too small to see broken refunds, one commit updating staging and production at once, and environments kept as copies..

The release that renames a column

17 min
What this section is for

Purpose

Runs over a two-page design document sent 48 hours ahead, written as if by a senior engineer on the orders team who wants it approved this month. Write it to this composition and add nothing else. The orders service runs six replicas in production, serves about 12 requests a second on average during working hours with a normal error rate of about 0.3%, and refunds are 0.5% of its requests. One: CI builds one image per merge and commits its digest to the deploy repository, in `envs/staging/orders/` and `envs/production/orders/` in the same commit, and a controller in each cluster syncs its directory within three minutes and undoes any change made to the cluster by hand — "so staging and production never drift". Two: every rollout starts as a canary taking 5% of traffic for 10 minutes, promoted automatically if the canary's error rate stays under 1% and its p95 latency under 300 ms, and rolled back automatically otherwise. Three: the service applies pending database migrations when it starts, "so the schema always matches the code that is running". Four: "rollback is always one commit" — revert the digest change in the deploy repository and the controllers converge. Five: every pull request gets a preview environment, created by the infrastructure pipeline in a workspace named for the pull request, with its own database restored from last night's production snapshot "because realistic data catches bugs fixtures miss", and destroyed by a job when the pull request closes; the two environment directories are full copies of the manifests today, and previews will copy staging. An appendix shows `diff -r envs/staging/orders envs/production/orders`: `replicas: 2` against `replicas: 6`, a readiness probe that exists only in staging, and a memory limit of 512Mi in staging against 256Mi in production. If the candidate asks, the probe was added to staging while someone debugged slow starts, and staging's limit was raised after out-of-memory kills; neither change was copied. Two things in the document are right and are there to be kept: building once and deploying by digest, and controllers that undo hand changes. It assumes Kubernetes with a GitOps controller and a progressive-delivery controller; the questions are about releases, not those products. Book 70 minutes; the candidate's questions come after the hour.

I'm [YOUR_NAME] and I own deploy tooling at [COMPANY_NAME]. You have read the proposal. Its author is a strong engineer who is tired of slow, manual releases, and they are right to be. Review it the way you would if they had sent it to you and asked for honest comments.

What this section is for

Purpose

Makes this a review of a colleague's proposal whose goal is legitimate, so criticism has to be specific to be useful, and a candidate cannot score by rejecting the whole thing.

The next release renames a column in the orders table. Walk me through that release under this design, from the merge to ten minutes later, and then through its rollback.

What this question is for, and what to listen for

Purpose

The load-bearing question. Each proposal sounds reasonable on its own; together they make a canary that migrates the shared database for everyone, a gate that cannot see the damage, and a rollback that makes it worse. The read is whether the candidate puts the proposals together rather than reviewing them one at a time.

Signals to score

  • Sees that the canary's first pod renames the column for the whole database while 95% of traffic is still served by code that uses the old name
  • Sees that the gate cannot catch it: the canary is the one version that works, so it passes the absolute thresholds and would look better than a broken baseline in any comparison
  • Sees that an automatic rollback of the canary at that point removes the only pods that match the schema
  • Says reverting the digest puts old code on the new schema, so rollback is one commit only for releases the previous version can run against
  • Replaces the rename with expand and contract across releases: add the new column, write both, backfill, read the new, stop writing the old, drop it later
  • Moves migrations out of startup into one step that runs before the rollout, and requires every migration to work with the version already running
  • Names what happens when several pods start together and each tries to migrate, unless the migration tool takes a lock
  • Says the old column can be dropped only once no release that reads it can be rolled back to
  • Does not rely on down migrations, because one that drops what a release added drops what was written to it
  • Proposes a CI check that flags a destructive schema change arriving in the same release as the code that needs it

Follow-up questions

  • The first canary pod starts. What happens to the other 95% of requests?
  • What does the canary gate see during those ten minutes?
  • The canary is rolled back automatically. What happens next?
  • How many releases does a safe rename take, and what is in each?
  • When can the old column finally go?

What ten minutes at 5% can see

12 min
What this section is for

Purpose

Release safety from a second direction: whether the candidate can tell a gate that exists from a gate that can detect anything at this service's traffic.

Take the canary gate on its own, with this service's traffic. What can it catch, and what would a release that broke every refund look like to it?

What this question is for, and what to listen for

Purpose

Arithmetic separates this one. Candidates who have tuned a canary work out how many requests it sees and how many of those touch the path at risk; candidates who have read about canaries argue about thresholds.

Signals to score

  • Works out the sample: 5% of 12 requests a second for 600 seconds is about 360 requests
  • Works out that refunds, at 0.5% of requests, are about two of those 360, so breaking every refund adds about half a point to the canary's error rate
  • Sees that on top of the normal 0.3% that comes to about 0.8%, under the 1% threshold, so the release is promoted
  • Says an absolute threshold ignores the baseline, and compares the canary with the baseline over the same minutes instead
  • Knows that telling 0.3% from 0.8% reliably takes thousands of requests, and says what that means for weight or duration at this traffic
  • Adds checks for the rare paths that matter — a synthetic refund against the canary, or refund success as a signal of its own — instead of relying on the aggregate
  • Steps the weight up in stages rather than jumping from 5% to all traffic
  • Uses a feature flag for a risky change to a low-traffic path, because a canary at this volume cannot protect it
  • Notes that a release outside working hours gives the gate even less traffic to judge

Follow-up questions

  • How many requests does the canary see in its ten minutes?
  • Every refund fails in the canary. Does the gate stop it?
  • The normal error rate is 0.3%. What is the 1% threshold comparing against?
  • How long would the canary have to run to see the refund failure, and is that the right fix?
  • What should the gate look at besides the error rate?

From staging to production

15 min
What this section is for

Purpose

CI/CD pipeline design, the second read. The pipeline review asked whether what is tested is what ships; this asks what has to happen between the two environments, and who decides.

Under this design, how does a change get from staging to production? Tell me what is missing, and redesign that step.

What this question is for, and what to listen for

Purpose

The document builds once and deploys by digest, which is right, and then updates both environments in one commit, which removes promotion altogether. The read is whether the candidate sees that staging now verifies nothing, and designs a promotion that is automatic without being blind.

Signals to score

  • Notices that one commit updates staging and production, so both clusters take the change within minutes of each other and a failure in staging stops nothing
  • Separates building once, which the document gets right, from promotion, which it leaves out
  • Makes promotion a separate commit to the production directory carrying the digest that passed staging, made automatically after named checks or by a person
  • Names what staging must show before promotion — a completed rollout, smoke tests against it, a period without a rise in errors — and what fails it
  • Decides what happens when merges arrive faster than promotions: promote the newest digest that passed, never one that did not
  • Restricts who and what can write to the production directory
  • Says when production may change and what the path is for an urgent fix, given that controllers undo hand changes
  • Uses the deploy repository's history to say what was running in production at a given minute
  • Says deploying every merge to production still fits, as long as each one is verified first

Follow-up questions

  • A merge breaks staging. When does production find out?
  • The document says staging and production never drift. Should they?
  • Three merges land within ten minutes. What gets promoted?
  • Who or what may write to `envs/production`?
  • What was running in production at 14:05 yesterday, and how do you know?

Environments made of copies

16 min
What this section is for

Purpose

Infrastructure as code, the second read. The infrastructure review was one risky diff against production; this is the code as the source of every environment, including ones that exist for an afternoon.

The document wants a preview environment for every pull request, copied from staging. Before you agree, tell me what the appendix says about copying, and what you would change about how environments are defined and how previews are made.

What this question is for, and what to listen for

Purpose

Reads whether the candidate uses infrastructure code to make environments the same by construction, and whether they see the data, credentials, cost and clean-up that a per-pull-request environment brings with it.

Signals to score

  • Reads the appendix and separates the difference someone chose — the replica count — from the two nobody did: the missing readiness probe and the lower memory limit in production
  • Says what the missing readiness probe does in production: new pods get traffic before they can serve, on every rollout and every canary
  • Defines each environment once with per-environment inputs, so an intended difference is a value and an unintended one has nowhere to live
  • Refuses to put production's personal data in environments that every engineer and every pull request's code can reach, and proposes synthetic or masked data
  • Notes that code from a pull request would run with credentials for that database
  • Shares expensive pieces between previews — one database server with a database per pull request — rather than an instance each
  • Plans for teardown failing: resources labelled with the pull request and an expiry, a scheduled job that destroys anything without an open pull request, and a cap on how many exist
  • Asks which bugs the author expects realistic data to catch, and whether something cheaper would catch them

Follow-up questions

  • Which of the three differences in the appendix did anyone choose?
  • Production has no readiness probe. When does that hurt?
  • Whose data is in last night's snapshot, and who can reach a preview?
  • The teardown job fails one Friday. What does the account look like a month later?
  • What bug is realistic data supposed to catch here?

That's the document. What would you like to ask about how releases work here — how migrations ship today, what our rollbacks look like, whether anything like this proposal is already running?

What this section is for

Purpose

Not scored. The close gives the candidate what they need to judge the job; keep any observations in the notes.

One honest detail before we finish: [tell them one true, specific gap in your own release process — a migration that could not be rolled back, a canary whose arithmetic nobody has checked, an environment kept as a hand-edited copy]. You would be the one to close it.

What this section is for

Purpose

A specific, true gap is the most credible thing you can offer the engineer this round is written for, and fair warning to one who wanted a finished platform. Check it is still true before you say it.

DevOps Engineer interviews — common questions

Who is this DevOps Engineer interview plan for?
It is written for the interviewer, not the candidate: the hiring manager, engineer or panel member running the Design review — a release path where rollback is one commit round for a DevOps Engineer role. It gives you a 60 min script to follow in the conversation — 4 questions with what each one is for and the signals to score against — so you are not writing the round from scratch the night before.
What does the Design review — a release path where rollback is one commit round assess?
This round is focused on: A release design review for a GitOps path: a migration that runs at startup under a canary, a gate too small to see broken refunds, one commit updating staging and production at once, and environments kept as copies.. It works through The release that renames a column, What ten minutes at 5% can see, From staging to production and Environments made of copies, scoring against 36 observable signals, with follow-up prompts on all 4 questions for going deeper where an answer is thin.
How is the 60 min split up?
The release that renames a column (17 min), What ten minutes at 5% can see (12 min), From staging to production (15 min), Environments made of copies (16 min). The timings are there so the round stays on schedule and every candidate gets the same shape of interview — which is what makes two candidates comparable afterwards.