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.