1. How to Approach a Design Question
Interview questions
Interview questions (with the counter-questions you'll get)
These questions come up in nearly every design round, whatever the system. For each: what they're really testing, a strong answer, the counter-questions they're likely to throw back, and the trap to avoid.
Q1. "Design X." (The opening.) What do you do in the first two minutes?
They're testing: whether you clarify before solving.
Think about your answer first, then open it.
Q2. What are the functional and non-functional requirements here?
They're testing: whether you know the difference and can prioritise.
Think about your answer first, then open it.
Q3. "How much traffic should we expect? You tell me."
They're testing: whether you can turn vague scale into numbers.
Think about your answer first, then open it.
Q4. Why did you choose this database?
They're testing: whether choices come from requirements, not habit.
Think about your answer first, then open it.
Q5. What's the bottleneck in your design?
They're testing: whether you can find the weak point yourself.
Think about your answer first, then open it.
Q6. What happens if this component fails?
They're testing: whether you design for failure.
Think about your answer first, then open it.
Q7. How would this change at 10 times or 100 times the scale?
They're testing: whether you know which parts break first and why.
Think about your answer first, then open it.
Q8. What are the trade-offs in your design?
They're testing: honesty about costs.
Think about your answer first, then open it.
Q9. What would you do with more time?
They're testing: whether you know where your design is thin.
Think about your answer first, then open it.
Q10. "Have you used X?" when you haven't.
They're testing: honesty and reasoning from first principles.
Think about your answer first, then open it.
Q11. "Why not just use microservices / Kafka / [popular tool]?"
They're testing: whether you can resist over-engineering.
Think about your answer first, then open it.