Technical Decision-Making Under Ambiguity

Final Prep · People Management — how to drive a decision when the data is thin, the stakes are real, and the team is split — without stalling and without gambling.

This question tests whether you can make good calls when there is no obviously right answer — the defining situation of senior leadership. Two failure modes disqualify you: analysis paralysis (endless investigation while the window closes) and reckless gambling (a confident call with no signal behind it). The interviewer wants a disciplined process: frame the decision and its criteria, gather signal cheaply, size the reversibility (one-way vs two-way doors), decide and write it down, get a split team to disagree and commit, and revisit with data as reality lands. Answer in CARL shape, and show you can drive alignment when the team itself is divided.

Answer flow for technical decision-making under ambiguity
The spine: frame the decision and criteria → gather signal cheaply → size one-way vs two-way doors → decide and write it down → disagree and commit → revisit with data → moved and learned.

What this question is really testing

Whether you have a calibrated bias to action: you move fast on reversible decisions and slow down only for the irreversible ones, rather than treating every call with the same weight. The central mental model is one-way vs two-way doors — reversible decisions should be made quickly by whoever’s closest, and only genuinely irreversible ones deserve heavy deliberation. They’re also testing whether you can write decisions down (so reasoning is legible and revisitable), and whether you can get a divided team aligned through disagree-and-commit rather than letting a stalemate rot or forcing a call no one will support.

How to answer What the interviewer is looking for

A worked example (CARL)

Context. On Ads Events Infra we hit a decision with real stakes and thin data: our events-storage layer was approaching a scaling ceiling, and we had to choose a path before the next traffic peak — roughly a quarter out. Two credible options, and the team was genuinely split. One camp wanted to adopt a new internal storage engine that promised much better write throughput but was newer and less battle-tested for our access pattern. The other camp wanted to extend our existing system with a sharding change — lower ceiling, but a known quantity. Both camps were led by strong engineers, both had real arguments, and the debate had been looping in design reviews for two weeks without converging. The cost of getting it wrong was high (a re-platforming on an infra layer is expensive to unwind) and the cost of not deciding was also high (we’d miss the runway to be ready for peak).

Actions. I started by reframing, because the debate had become “new engine vs sharding” in the abstract, which was unwinnable. I rewrote the decision as a concrete question with explicit criteria: which path gets us safely through the next two peaks on throughput, without regressing the billing-freshness SLA, at acceptable operational risk and cost? Naming the criteria immediately narrowed the argument. Next, instead of continuing to debate, I bought down the key uncertainty cheaply: the real unknown was whether the new engine held up under our fan-out read pattern, so I scoped a two-week bounded spike — a shadow-traffic replay of both options against those exact criteria — and had one engineer from each camp run it together, which also defused the tribalism. Crucially, I classified the reversibility out loud: fully adopting the new engine was close to a one-way door (expensive to unwind on a live infra layer), while the sharding extension was much more reversible. That framing told me the new engine needed to clear a higher bar of evidence, not just be marginally better on paper. The spike data came back mixed but decisive on the thing that mattered: the new engine won on write throughput but showed a read-tail risk against our pattern that the team couldn’t fully de-risk in the runway we had. Given the one-way-door nature and the hard freshness SLA, I made the call: ship the sharding extension now to be safe for the upcoming peaks, and fund a parallel, lower-stakes evaluation of the new engine for the longer-term ceiling. I wrote the decision up in a short decision doc — the question, the criteria, both options, the spike data, the reasoning, and explicitly what would make us revisit (specifically, the new engine de-risking its read-tail behavior). Then I brought the split team back together, walked through the reasoning transparently, acknowledged the new-engine camp’s case directly, and asked for disagree-and-commit — with the honest framing that this wasn’t “sharding wins forever,” it was “sharding now, revisit the engine with data.”

Results. The sharding extension shipped in time and carried us through the next two traffic peaks with the freshness SLA intact — the safe outcome the criteria demanded. The new-engine camp committed genuinely, partly because the decision doc made the reasoning legible and the revisit condition concrete, so they didn’t feel overruled — they felt deferred with a path. And the parallel evaluation paid off: two quarters later the new engine had matured and de-risked the read-tail concern, we revisited exactly as the doc said we would, and adopted it for the longer-term ceiling — this time with the evidence to make it a low-risk call.

Learnings. The two moves that mattered were reframing the decision around explicit criteria and reversibility, and buying down the core uncertainty with a cheap bounded spike instead of continuing to argue. The one-way-door framing is what kept me from making an exciting but irreversible bet on thin data. And writing it down — with the revisit condition named — is what turned a split team into a committed one: people commit to a call they understand and know will be re-examined. The lesson: match rigor to reversibility, decide in time, and make the reasoning legible.

Common follow-ups

How do you decide when you don’t have enough data?

How to answer

What’s the one-way vs two-way door model, and how do you use it?

How to answer

How do you get a divided team aligned behind a decision?

How to answer

How do you handle a decision that turns out to be wrong?

How to answer
Where to get your data (Meta)