Describe how you would approach a high-stakes technical decision with significant uncertainty
cs-sys-005
Your answer
Answer as you would in a real interview — explain your thinking, not just the conclusion.
Model answer
STAR answer structure for system-level behavioural questions. Situation: leading a team deciding between a Postgres-backed message queue (simple, known) and migrating to Kafka (powerful, operational overhead). Task: needed to make a call quickly because the current queue was causing data loss under load spikes. Action: (1) wrote an ADR (Architecture Decision Record) listing the forces — team familiarity, operational cost, scale requirements, reversibility. (2) Ran a one-week spike: a proof of concept with real production traffic patterns. (3) Used a decision matrix with weighted criteria (reliability > cost > team learning curve). (4) Presented findings with an explicit 'reversibility' section — how hard it would be to undo each choice in 12 months. Result: chose Kafka after the spike confirmed it could handle 10x the load; documented the decision so future engineers understand the tradeoffs. The principle: when uncertain, invest in a time-boxed spike rather than debate in the abstract — data beats intuition.
Follow-up
How do you write an Architecture Decision Record (ADR) and why are they valuable in a long-lived codebase?