Skip to content

Senior Engineering Interview Handbook / Chapter 117

Failure, Incidents, and Changed Opinions

A project-deep-dive chapter covering incident reflection, changed opinions, failure ownership, interviewer probes, weak and senior answers, drills, rubric, and field reference.

“What did you get wrong?”

The reconciliation migration has survived questions about architecture, ownership, and impact. Then the interviewer asks where your judgment failed.

“I learned to communicate better” is an easy answer to agree with and an impossible one to inspect. A useful failure answer names the operating belief that the work disproved. Perhaps you thought a rollout was more reversible than it was, an aggregate alert was enough for diagnosis, or a rare case could wait because it was rare. The interviewer is listening for the point where evidence changed how you now make decisions.

This is the other side of impact evidence. Impact asks what the project changed. Reflection asks what the project changed in you. A story with no miss, near miss, regret, or reversed opinion often sounds less trustworthy than one with a bounded failure.

A rare case that was not a small case

During the first partner-group ramp, the reconciliation system encountered a late-adjustment category that the team had deferred. This was not carelessness. The test plan had concentrated on duplicate retries, ledger checkpoints, and replay safety because those were the most frequent failure modes in the old system. The new boundary handled them correctly.

The plan still failed. Some late adjustments were rare across a month but urgent near financial close. Finance operations escalated several cases to engineering, the dashboard labels did not match the way analysts triaged the work, and the ramp paused. There was no data loss. There was nevertheless a real operational consequence at exactly the time the workflow carried the most pressure.

The interesting mistake is not “we missed an edge case.” It is the assumption underneath the miss: frequency had been allowed to stand in for importance. That assumption shaped the test inventory, the readiness review, and the list of work considered safe to defer.

Now ownership can be stated precisely. The candidate led the exception-model review and should have brought finance operations into it earlier. The partner file timing and the entire team’s choices were not theirs alone. The controllable miss was accepting a review lens that described technical behavior while omitting operational urgency.

The team stopped the ramp, added a distinct adjustment path, changed the dashboard language, and made finance validation a partner-readiness gate. Later groups passed through that review before ramp, and the same escalation pattern did not recur in the same form. That evidence supports a narrow claim: the review and surprise path improved. It does not prove that every exception was eliminated.

The answer has now earned its changed rule:

I used to let frequency dominate edge-case prioritization. I now ask
separately whether a rare case is deadline-sensitive, financially material,
or operationally stressful before I accept it as follow-up work.

That sentence can govern a future decision. “I learned to involve stakeholders earlier” cannot.

Keep the original decision intelligible

Hindsight can make any miss look obvious. Resist it. The original decision must be described with the information and constraints that existed then. In this case, the highest-volume risks were real, and protecting the ledger from duplicate retries was necessary. The failure was treating that necessary view as complete.

This distinction prevents two bad performances. One rewrites the past so the candidate appears to have foreseen everything; the other makes former colleagues look foolish so the candidate can appear wiser now. Neither shows judgment. A mature answer preserves what was defensible, identifies the condition the old model missed, and changes only the rule that the evidence invalidated.

A design regret works the same way. Keeping three fast-changing partner rules in application code may be sensible while product fit is uncertain. If those rules later become a release bottleneck, the lesson is not that a full rule engine should have existed on day one. A more credible rule is to introduce a small declarative boundary when partner count and exception ownership become roadmap constraints. The candidate retains the benefit of the original simplicity and names the condition that now justifies a different design.

Own the controllable part

Senior accountability is accurate attribution, not theatrical self-blame. Separate three boundaries before the interview:

  • what you owned and could have changed directly;
  • what you influenced through review, readiness criteria, or escalation;
  • what lay outside your control, along with the detection, ramp size, rollback, or response that remained within it.

“Product gave us bad requirements” pushes discovery outside engineering judgment. “The whole incident was my fault” can be just as misleading. In the reconciliation story, the exact claim is stronger: “I owned the exception-model review. My miss was not separating frequency from operational urgency and not bringing finance operations into readiness earlier.”

The consequence also needs proportion. Do not inflate a rollout pause into a catastrophe or minimize operational stress because no data was lost. State who or what was affected, how long the condition mattered if you can safely say, and what did not happen when that boundary prevents a false inference.

Let the follow-up test the new rule

An interviewer will often press where a rehearsed apology ends.

Interviewer: How do you know the fix worked?

Candidate: Later partner groups went through finance readiness before ramp,
and we did not see the same late-adjustment escalation pattern recur in that
form. I would not claim that we eliminated every exception. The evidence is
stronger for the changed review gate and reduced surprise path.

The answer connects repair to evidence without borrowing certainty from a metric that does not exist.

Interviewer: What if product still wanted to ship?

Candidate: I would separate ramp size, reversibility, and the affected
workflow. A low-urgency gap with a clean manual fallback might permit a narrow
ramp. A gap touching close, compliance, money movement, or a customer
deadline would need a readiness gate before widening it.

Now the lesson is doing work. The candidate is applying it to a new decision, including a condition under which shipping could still be reasonable.

An incident answer should survive the same pressure. If a partner retry loop once saturated the service while an aggregate alert hid the responsible tenant, “we added a dashboard” is only the repair. The judgment change is more specific: an alert is insufficient when the on-call engineer cannot isolate blast radius from it. Per-partner saturation views, a retry budget, and a circuit breaker then follow from the rule rather than appearing as a list of post-incident tasks.

Build the answer from evidence

Choose a real, bounded miss from your primary project and one from a backup project. It need not be the most dramatic event. It needs enough substance to show a failed assumption, a consequence, your controllable part, a repair, and a changed rule without exposing confidential or personnel details.

Before writing a polished answer, make short notes:

  1. What did you know at the time, and why did the choice make sense?
  2. Which assumption, review lens, or operating belief proved incomplete?
  3. What consequence did users, operators, the system, delivery, or the team experience?
  4. What did you own, influence, and not control?
  5. What changed in the system, rollout, observability, ownership, or review?
  6. What evidence suggests the repair helped, and what can it not prove?
  7. What narrow rule would change your next decision under similar conditions?

Say the answer aloud, then interrupt it with “Why did you miss that?”, “Was that your fault?”, “How do you know it improved?”, and “Would you make the same trade-off again?” If the original choice starts sounding absurd, restore its constraints. If the ownership expands into the whole team’s work, narrow it. If the ending becomes a virtue such as communication or humility, ask what future decision would actually change.

A useful final shape is:

At the time, [constraint] made [choice] reasonable. The assumption that failed
was [assumption]. The consequence was [bounded effect]. My controllable part
was [owned or influenced action]. We changed [repair and prevention], and
[evidence] showed [carefully bounded result]. I now use [decision rule] when
[condition].

Stop once the rule is clear. The follow-up tree will prepare the deeper branches; this answer only needs to create honest ones.