advanced
Requirements
Clarify users, use cases, scope, success metrics, and explicit non-goals before drawing boxes.
Start every system design interview by clarifying who uses the system, core use cases, scope for the session, success metrics, and explicit non-goals. This prevents building the wrong architecture for a vague prompt like "design Twitter."
Ask about scale hints, read/write ratio, geographic distribution, and compliance needs only after you understand product behavior. Non-goals ("no search in v1") save time and show prioritization judgment.
On interviews: spend five to eight minutes asking structured questions before drawing; repeat assumptions back to the interviewer for confirmation.
Common pitfalls: jumping to microservices before scope is clear; assuming global scale when the prompt is a startup MVP; forgetting mobile or offline users when they matter.
The trade-off is flexibility versus complexity—know when the simpler path is enough.
Checklist:
- Identify primary users and top use cases.
- State in-scope and out-of-scope features.
- Capture success metrics and constraints.
- Confirm assumptions aloud before designing.