The System Design Interview Framework
A Repeatable Framework
The biggest mistake candidates make is jumping straight to boxes and arrows. Use a structured method so you never freeze. A common one is RESHADED — but you can use any consistent flow:
1. Requirements (5 min)
Clarify scope out loud. Nail down:
- Functional: the 2–3 core features (ignore the rest).
- Non-functional: scale, latency, availability, consistency needs.
- Constraints: read-heavy or write-heavy? Global or regional?
Ask questions. Interviewers want you to narrow the problem.
2. Estimation (5 min)
Do back-of-the-envelope math: DAU → QPS → storage → bandwidth. This drives every later decision (do we need sharding? a CDN? a cache?).
3. High-level design (10 min)
Draw the major components and how a request flows through them: client → load balancer → service → cache → database. Keep it simple first.
4. Deep dive (15 min)
The interviewer picks a component to drill into. Be ready to detail:
- The data model and API.
- How you partition/shard data.
- Caching strategy and invalidation.
- Failure handling and bottlenecks.
5. Wrap up (5 min)
Name the bottlenecks, the trade-offs you made, and what you'd improve with more time.
A reusable checklist
- Read/write ratio identified
- Single points of failure removed
- Data partitioning strategy chosen
- Caching layer justified
- Consistency model stated explicitly
- Monitoring / metrics mentioned
Memorise the flow, not a specific answer. The flow is what keeps you calm.