Site Reliability Engineer Interview Question

Why do naive retries make an outage worse, and how would you design a safe retry policy?

What the interviewer is probing, how to structure your answer, and a spoken example you can adapt.

Quick answer

Naive retries multiply load exactly when a service is already struggling, and synchronized clients retry in lockstep waves. Use exponential backoff with full jitter, cap total attempts, and only retry idempotent operations on retryable errors. Add a client side retry budget so retries stay a small fraction of traffic, plus a circuit breaker to stop calls entirely when failure rates spike. Never retry independently at every layer of the stack.

Why interviewers ask this

Retry storms are one of the most common causes of a small failure turning into a full outage, so this question separates candidates who have debugged a real cascading failure from ones who have only configured a client library. The interviewer wants jitter, budgets, idempotency, and above all the point about layered retries multiplying attempts.

How to structure your answer

  • Explain the amplification: retries add load during the failure.
  • Name jitter specifically, not just exponential backoff.
  • Restrict retries to idempotent operations and retryable status codes.
  • Add a retry budget and a circuit breaker as the ceiling.
  • Warn about multiplication across nested layers.

Example answer

Spoken example, first person

The problem is that retries are extra load applied at the worst possible moment. If a service is failing at 50% and every client retries three times, you have just tripled the traffic hitting something that is already over capacity, and it never gets a chance to recover. Plain exponential backoff is not enough either, because all your clients failed at the same instant, so they all wake up at the same instant. Full jitter fixes that, so the sleep is a random value between zero and the current backoff ceiling. Beyond that I would only retry idempotent calls, only on 503, 429 and connection level errors, never on a 400, and I would enforce a retry budget so retries are capped at something like 10% of total requests. The one that bit us was layering. The SDK retried three times, the mesh retried twice, and the job runner retried again, which is eighteen attempts for one logical call.

Walking into this interview soon? GhostPilot listens to your live call, spots the question the moment it is asked, and puts a structured answer on your screen in real time. Try it on your next mock, or grab a $29 Session Pass, no subscription, for the real thing.

See how it works

Follow-up questions to expect

  • What is full jitter versus decorrelated jitter?
  • Which HTTP status codes are safe to retry and why?
  • How would you stop retries multiplying across a service mesh?

Related site reliability engineer questions

Your interviewer will ask their own version of this. Paste your actual job description into the free Question Predictor and get the 20 questions that role is most likely to ask, with what each one is really probing.

Predict my questions

Rehearse the hard questions before they are asked

Practise with a live copilot, then walk in ready. A $29 Session Pass gets you through the interview with no subscription and no lock-in.

Get GhostPilot