Incident Response and Management Questions
The end-to-end operational lifecycle of a production incident: detection, triage, mitigation, resolution, and handoff. Covers response coordination, ownership of an active incident, and the mechanics of restoring service quickly. This is the generalist backbone topic that most operational roles are drilled on.
During initial triage, what signs would make you suspect you are looking at a security incident rather than a purely operational one, and what changes once you suspect that?
Sample Answer
Direct answer
Signs pointing toward a security incident rather than a purely operational one include unexplained privilege or permission changes, authentication failures or account lockouts clustering in an unusual pattern, traffic or data-access patterns that look like exfiltration rather than normal load, and any sign of unauthorized file or configuration changes that nobody on the team made. Once you suspect any of these, the biggest change is that you stop trying to 'just fix it': you preserve evidence instead of immediately remediating, and you loop in a security responder rather than continuing to triage it as a routine outage.
Structured elaboration
- Signals that lean operational: the timing correlates with a known deploy or infrastructure change, the failure pattern matches a resource exhaustion or a known dependency issue, and the behavior is explainable by something the team did on purpose.
- Signals that lean security: access or configuration changes nobody recognizes, authentication anomalies (a spike in failed logins, logins from unusual locations, tokens being used in ways that don't match normal patterns), data being read or moved in volumes or patterns that don't match normal usage, or any indicator resembling a known attack pattern (credential stuffing, privilege escalation, lateral movement).
- What changes once you suspect it. You stop applying your normal 'fix it fast' instincts on the affected system, because touching it (restarting a process, wiping a disk, rotating credentials without first documenting state) can destroy evidence a security investigation needs. You loop in whoever owns security response, and from that point the deep investigation, containment technique, and evidence-handling discipline live with that team rather than being improvised by whoever happened to be on call.
- Who to involve: the security on-call or incident response function, as early as suspicion arises, not after you've already tried to resolve it yourself.
Worked example
A service starts throwing errors and the on-call engineer initially assumes it's a bad deploy, since that's the most common cause. But checking recent deploys shows nothing changed, and instead they notice a spike in failed authentication attempts against an admin endpoint in the minutes before the errors started, followed by a permissions change on a service account that nobody on the team made. That combination (no correlated deploy, authentication anomaly, unexplained permission change) is the tell that this isn't a routine outage; the engineer stops attempting further remediation, preserves the current state (avoids restarting the affected service, which could wipe useful logs), and escalates to the security team rather than continuing to debug it as an availability problem.
Trade-offs and pitfalls
The main risk under pressure is dismissing security signals too quickly because restoring service feels more urgent, which can mean actively destroying evidence (restarting a compromised host, deleting suspicious files 'to clean up') before anyone with security expertise has looked at it. The opposite risk is over-escalating every anomaly as a security incident, which burns the security team's time and can create alert fatigue that makes real security incidents harder to distinguish from noise; the right calibration is a small, well-understood set of signals (like the ones above) rather than a vague sense that 'something feels off.'
Walk through the lifecycle of a production incident end to end, from before anything goes wrong through the post-incident review. For each phase (preparation, detection, triage, containment, mitigation, recovery, and post-incident review), name the key activity, one artifact you would expect to see (a dashboard, a ticket, a timeline), and who is typically involved. Use a concrete example action at one phase to ground your answer.
Sample Answer
Direct answer
A production incident moves through seven phases: preparation, detection, triage, containment, mitigation, recovery, and post-incident review. Preparation happens before anything breaks (runbooks written, on-call staffed, alerts wired up); detection is the moment you learn something is wrong; triage scopes and prioritizes it; containment stops it from getting worse; mitigation reduces the pain customers feel; recovery restores full normal service; and the post-incident review turns the experience into a lasting fix. Each phase has a different owner, a different artifact, and a different question it answers.
Structured elaboration
- Preparation. Activity: writing and testing runbooks, defining on-call rotations, wiring alerts to real signals. Artifact: the runbook itself and the on-call schedule. Owner: the team that runs the service, done continuously, not reactively.
- Detection. Activity: an alert fires or a human notices something is off. Artifact: the alert or the first ticket. Owner: whoever is paged, or whoever notices first.
- Triage. Activity: scoping how bad it is and who needs to know. Artifact: an incident ticket with severity, scope, and a first status note. Owner: the first responder, sometimes handed to an incident commander for anything large.
- Containment. Activity: stopping the blast radius from growing (isolating a host, throttling a bad client, disabling a feature flag). Artifact: a decision log entry noting what was done and why. Owner: whoever is closest to the failing component.
- Mitigation. Activity: making the customer-visible symptom smaller even before the root cause is fixed (failing over, serving cached data, degrading gracefully). Artifact: an updated status note describing customer impact before and after. Owner: the responder or incident commander.
- Recovery. Activity: restoring full functionality and confirming it holds, not just that one metric blipped green. Artifact: a recovery validation checklist and the all-clear message. Owner: the responder, with sign-off from anyone whose data or workflow was affected.
- Post-incident review. Activity: reconstructing the timeline, finding the root cause, and turning it into owned action items. Artifact: the postmortem document. Owner: usually the incident lead, with input from everyone involved.
Worked example
An API starts returning 5xx errors to 15% of traffic. Preparation already exists: there's a runbook for 'elevated 5xx rate' and an on-call SRE. Detection: a synthetic check pages the on-call engineer. Triage: the engineer opens a ticket, sees the error rate and which endpoints are affected, and judges this a SEV2. Containment: they notice the errors correlate with a recent deploy and freeze further deploys to that service so nothing else changes mid-investigation. Mitigation: they roll back the deploy, which drops the error rate from 15% to under 1% within two minutes. Recovery: they watch the error rate and latency stay at baseline for 20 minutes before declaring the incident resolved, since a single good data point after a rollback isn't proof the fix held. Post-incident review: a review two days later finds the deploy introduced a null-pointer bug in an edge case, and the action items are a missing test case plus a canary step that would have caught it before full rollout.
Trade-offs and pitfalls
The most common mistake is skipping straight from detection to mitigation without a real triage step, which means responders end up mitigating the wrong thing or missing that three separate alerts are actually one incident. The second common mistake is calling recovery too early: one healthy-looking dashboard refresh is not the same as a service that has held steady long enough to trust. A third, subtler pitfall is treating containment and mitigation as the same step; containment is about preventing the problem from spreading (a freeze, an isolation), while mitigation is about reducing what customers currently feel (a rollback, a failover) - conflating them means teams sometimes stop at containment and believe the incident is handled when customers are still seeing errors.
Two people disagree on how to respond to a bad deployment: roll it back, which loses a day of writes, or patch forward, which risks the underlying problem spreading further. Walk through how you would decide, what information you would gather first, and how you would explain the decision to the people affected by whichever data loss or risk you accept.
Sample Answer
Direct answer
The real question isn't which option is faster, it's which one is cheaper to be wrong about given what you currently know. I'd gather a quick read on how quantifiable and recoverable the rollback's data loss actually is, and how bounded or open-ended the patch's propagation risk is, before deciding, and I'd document the decision and get a second person's sign-off given the stakes.
Structured elaboration
- Quantify the rollback's cost. Is the lost day of data truly unrecoverable, or can some of it be reconstructed from logs, upstream systems, or replay? A rollback that loses genuinely unrecoverable customer data is a much bigger deal than one that loses data you can mostly reconstruct.
- Bound the patch's risk. Is 'risking propagation' a vague fear or a specific, boundable failure mode? If you can identify exactly what could go wrong and put a guard around it (a feature flag, a canary rollout of the patch itself), the risk becomes much more manageable than an open-ended 'we're not sure how bad this could get.'
- Consider reversibility of each option, not just its immediate outcome. A rollback is usually fast to reverse if it turns out to be wrong (roll forward again); a patch that goes wrong under time pressure is often harder to cleanly undo, especially if it's already started propagating.
- Decide who needs to sign off. For a decision with real data loss or real risk of making things worse, this shouldn't be a unilateral call under pressure; loop in whoever owns the data (for the rollback) or whoever understands the propagation risk best (for the patch), even if briefly.
- Document the decision and the reasoning, not just the action taken, so it can be explained afterward and revisited in the postmortem.
- Explain the decision honestly to the people who bear its cost. If you accept the rollback's data loss, tell the specific team or customers whose day of writes is gone what was lost and why, rather than a vague status update; if you accept the patch's propagation risk, tell whoever owns the systems it could spread to what you're watching for. People affected by a real cost should hear the reasoning, not just the outcome.
- Watch for a subtlety: your 'safe' default might not be safe. Sometimes the rollback mechanism itself is the risky part (a rollback tool that has its own failure modes, or that could trigger a different kind of cascading failure), so the instinct to always default to rollback as 'the safe choice' needs the same scrutiny as the riskier-looking option.
Worked example
A bad deployment has two disagreeing camps: roll back (losing a day of writes) or patch forward (risking the underlying bug spreading to more data). First, the team checks whether the day of writes can be reconstructed from an upstream event log; it turns out about 80% of it can be replayed after rollback, meaningfully reducing the real cost of that option. Second, they check whether the patch's propagation risk can be bounded; the bug only affects a specific, identifiable code path, so a scoped patch with a feature flag around just that path is possible rather than a full risky redeploy. Given both, the team chooses the scoped patch behind a flag, since the true data loss from rollback (even reduced by replay) is now higher-cost than a well-bounded patch, and they get a second engineer to review the patch's blast radius before shipping it, given the stakes.
Trade-offs and pitfalls
A common mistake is defaulting to rollback simply because it feels psychologically safer ('undo the thing we just did'), without actually quantifying whether the data loss is worse than the alternative risk; rollback is not automatically the conservative choice. Another mistake, at the opposite extreme, is defaulting to a quick patch because it avoids acknowledging any data loss, without honestly bounding how far the underlying problem could actually spread. A related edge case: sometimes the rollback path itself carries risk (a partial rollback failing midway, or a rollback tool triggering a separate cascading failure under load), so 'roll back, it's the safe option' deserves the same scrutiny as the alternative, not an automatic pass.
A data pipeline has been silently writing corrupted output for months before anyone noticed. As the incident lead, describe how you determine the exact time range and scope of the corruption, what you do to stop it from getting worse while you investigate, and how you decide between a rollback and a forward-fix once you understand the cause.
Sample Answer
Direct answer
When the problem is silently wrong output rather than downtime, the first job is bounding the blast radius in time and scope, not immediately trying to fix the pipeline. I'd find the last point where output was verifiably correct, stop the corruption from spreading further with the smallest possible change, and only then decide between rolling back to reconstruct the correct state or fixing forward and reprocessing.
Structured elaboration
- Determine the affected time window. Find the most recent known-good checkpoint by comparing current output against an independent source of truth (a snapshot, a source system, an upstream event log) and working backward until you find where they diverge. This is usually the hardest and most time-consuming part, because silent corruption by definition wasn't caught by any existing check.
- Stop it from getting worse. Pause or disable the specific step that's producing bad output (not necessarily the whole pipeline, if only one stage is at fault), so you stop adding more corrupted data while you investigate. This is a narrow, reversible action, not a fix.
- Decide rollback versus forward-fix. Roll back when you can cheaply reconstruct the correct state from an upstream source and downstream consumers haven't yet acted irreversibly on the bad data. Fix forward and reprocess when a rollback would lose legitimate data that arrived after the corruption started, or when downstream consumers have already consumed and acted on the bad output in ways that can't simply be undone by reverting the pipeline.
- A materially easier variant worth distinguishing: a pipeline job that fails outright and produces no output at all is a much simpler case than one that runs successfully and produces wrong output, because a failed job is self-evidently incomplete, while silently wrong output can go unnoticed for a long time and requires you to first prove where correctness broke down before you can fix anything.
- Communicate honestly, and only once scope is bounded. Resist announcing a scope estimate before you've actually confirmed it; an early guess that turns out to be wrong (in either direction) damages trust more than a slightly later but accurate one.
Worked example
A billing metrics pipeline has been silently under-reporting a subset of transactions for three months due to a filter condition introduced in a change that nobody flagged as a behavior change. To bound the window: compare monthly transaction counts from the pipeline's output against the upstream transaction log, and find the first month where the two diverge, narrowing the corruption window to a specific start date. To stop it from getting worse: disable the filter step (a single, reversible change) so new data stops being under-reported, without touching anything else in the pipeline. To decide rollback versus forward-fix: because the upstream transaction log still has the correct raw data for the entire affected window, a full historical backfill (reprocessing the affected months from the source) is both possible and safer than trying to patch the already-corrupted output in place, so the team chooses to reprocess rather than attempt a partial in-place correction.
Trade-offs and pitfalls
The most common mistake is rushing to fix forward before the blast radius is actually understood, which risks fixing the pipeline while leaving a chunk of already-corrupted historical data unaddressed. A close second is under-scoping the impact to avoid a harder conversation with stakeholders, announcing 'a few days affected' when the real window is months; this is worse for trust than taking longer to give an accurate number. A genuinely hard case is when downstream consumers have already made real-world decisions based on the bad data (a customer was billed incorrectly, or a business decision was made on a wrong metric); you can correct the data going forward, but you can't retroactively undo an action someone already took based on it, which is a different and harder remediation problem than a pure data-correctness fix. The same underlying challenge (bounding scope, deciding rollback vs. forward-fix, and being honest about what's still unknown) applies whether the corrupted data is a metric, a set of duplicate billing records from a faulty sync job, or a downstream executive dashboard that broke because an upstream team changed a schema without warning; the specific technical trigger varies, but the response shape does not.
You receive three alerts at once: a public API returning errors to a fifth of users, a payment service with a small but high-value failure rate, and a non-critical nightly batch job failing. Decide which you respond to first and in what order, and justify the ranking using impact, scope, and business criticality. Describe your first concrete action on the top-priority item.
Sample Answer
Direct answer
Of the three, I'd respond to the payment failures first, then the public API errors, then the batch job. The payment failures affect a small percentage but include high-value customers and touch money directly, which makes the per-incident cost disproportionately high even at low volume. The API errors affect a much larger share of users (a fifth), which makes them close behind despite lower per-user stakes. The batch job failing on non-critical reports has the lowest urgency because nothing customer-facing depends on it in the next few minutes.
Structured elaboration
Prioritization among simultaneous alerts should weigh three factors together, not any one alone:
- Impact per affected user. A failed payment is a much sharper failure than a slow page load; money and trust are on the line in a way that compounds if it isn't caught quickly.
- Scope. How many users or how much revenue is actually affected right now, not how loud the alert is. A noisy alert with low real impact should never outrank a quiet one with high impact.
- Business criticality and reversibility. Some failures get worse the longer they run (money moving incorrectly, data corrupting further); others are simply delayed (a report that's a few hours late is annoying but recoverable).
A good way to communicate this under pressure: state the ranking and the one-line reason out loud or in the incident channel immediately, then explicitly assign or acknowledge who is covering the lower-priority items so they aren't silently dropped, even while you focus on the top one.
Worked example
For the three alerts given: payment failures affecting 1% of transactions, including high-value customers, go first, because even a small volume of incorrect financial outcomes needs immediate first-action (typically confirming whether payments are failing safely, i.e., not charging without fulfilling, versus failing unsafely). Second, the public API 5xx errors affecting 20% of users across regions, because the sheer scope makes it the next highest-impact item even though each individual failure is less severe than a payment error. Third, the internal nightly batch job, which is deprioritized to 'someone will pick this up after the first two are stable' since it affects no external users right now. First concrete action on the payment issue: check whether failures are being safely rejected (no charge, clear error to the user) or unsafely processed (charge succeeds but order fails), since that distinction determines whether this needs an urgent stop-the-bleeding action or can tolerate a few more minutes of investigation.
Trade-offs and pitfalls
A common pitfall is anchoring on whichever alert is loudest or has the highest raw volume, rather than the one with the highest actual business impact; a batch job failing nightly can generate more page noise over time than a rare but severe payment issue. Another pitfall specific to this pattern: sometimes a single root cause produces what looks like several simultaneous alerts (a bad deploy triggering a flood of unrelated-looking alerts across a fleet), and prioritizing them as independent problems wastes time that a single fix would resolve; it's worth a quick check for a shared root cause before treating three alerts as three separate incidents. At a higher level, a manager juggling multiple simultaneous incidents across teams faces the same decision with an added dimension: whether the aggregate is severe enough to formally declare a larger, cross-team incident rather than three parallel smaller ones.
Unlock Full Question Bank
Get access to all 14 Incident Response and Management interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.