1. How to Approach a Design Question
1
The picture to keep in your head2
1.1 What is a system design interview, and what isn't it?3
1.2 What is the interviewer actually scoring?4
1.3 What's the step-by-step framework?5
1.4 How do you manage a 45-minute round?6
1.5 What questions should you ask first?7
1.6 What's the difference between functional and non-functional requirements?8
1.7 What's an API, and why define it before drawing boxes?9
1.8 How do you sketch the data model?10
1.9 What does a good high-level design look like?11
1.10 How do you choose what to deep dive into?12
1.11 How do you talk about trade-offs?13
1.12 What if you get stuck or don't know something?14
1.13 What are the most common mistakes?15
1.14 What does the bar look like: fresher vs SDE-2?16
Memory card and where the analogy breaks17
Practice: five levels18
Interview questions19
Solutions20
Sources21
Code lab1. How to Approach a Design Question
1.2 What is the interviewer actually scoring?
3 min read+10 XP
At the architect's desk: A family judges an architect on more than the final drawing. Did she listen? Does the plan actually work? Did she think hard about the risky parts, like the staircase in a narrow house? Did she explain the options honestly? Could they follow her?
In the interview: Every company has its own scorecard, but almost all of them check the same five things. Call them the 5 Cs:
| C | What they check | What it sounds like |
|---|---|---|
| Clarify | Did you pin down the problem before solving it? | "Before I start, can I ask who uses this and how much?" |
| Create | Does your high-level design actually meet the requirements? | "Here's every piece. Let me walk one request through it." |
| Crack open | Can you go deep on the hard part? | "The tricky bit is generating unique codes at scale. Here's how." |
| Compare | Do you see trade-offs, not just one answer? | "I picked X because Y. The cost is Z." |
| Communicate | Can they follow you the whole time? | Thinking out loud, checking in, a clear diagram |
Notice what's not on the list: naming the most tools. A simple design with clear reasons beats a complicated one with none.
Memory code: "The 5 Cs." Clarify, Create, Crack open, Compare, Communicate.