The Complete System Design Interview Checklist

A practical, end-to-end checklist for system design interviews: what to do before the interview, how to structure your answer, and the common failure modes to avoid.

·

System design interviews are rarely about “the right architecture.”

They’re about whether you can make good decisions with incomplete information and communicate them clearly.

Use this checklist to make sure you hit the signals interviewers are grading: scope, assumptions, numbers, trade-offs, and iterative refinement.

Before the interview (prep checklist)

In the interview (live execution checklist)

1) Start with clarifying questions (do not skip)

Ask 2–4 questions before you draw anything:

If the interviewer won’t answer, state assumptions and move on.

2) State assumptions explicitly (and keep them editable)

Say it out loud:

“I’ll assume 1M DAU, peak 5k QPS reads, 1k QPS writes, and a 200ms p95 target. If that’s off, we can adjust.”

This is one of the strongest senior signals you can send.

3) Do a back-of-the-envelope estimate (rough is fine)

You’re not being tested on math. You’re being tested on whether you can reason about constraints.

Checklist:

4) Define the core entities and APIs

Before components, define the “shape”:

This prevents an architecture that can’t answer the actual question.

5) Draw the high-level architecture (one clean diagram)

Keep it minimal:

Label each box with what it does (not just the name of the technology).

6) Walk the happy path end-to-end

Pick one critical flow and narrate it:

If you can’t walk it, the diagram is not real yet.

7) Identify bottlenecks and failure modes

Checklist:

Say:

“Here’s what breaks first, and here’s what I’d do next.”

8) Name trade-offs (explicitly)

Most candidates describe one design. Strong candidates compare.

Checklist:

Example:

“I’d start with Postgres for speed of iteration and correctness. If write volume or partitioning becomes painful, I’d move the write path to a sharded store and keep Postgres for relational queries.”

9) Iterate with the interviewer

Invite pushback:

This turns the interview into a collaborative design review.

10) Close with a summary (30 seconds)

Checklist:

Common failure modes (quick self-audit)

The “one page” system design template (copy/paste)

  1. Goal + success metric
  2. Assumptions (scale, latency, consistency)
  3. Rough estimates (QPS, storage, bandwidth)
  4. Entities + APIs
  5. Architecture diagram (minimal)
  6. Happy path walkthrough
  7. Bottlenecks + failure modes
  8. Trade-offs + why this design
  9. Scaling plan (next steps)
  10. Summary

If you follow this every time, you’ll stop losing points to missing structure—and you’ll start sounding like someone who has actually designed systems in production.


Explore Related Topics

Related Reading