Run a system design interview
Use a repeatable framework to turn a vague prompt into a defensible design.
- Structure a 45-minute design interview into clear phases.
- Separate functional requirements from non-functional ones.
- Explain why every component should trace back to a requirement.
A system design interview starts with a deliberately vague prompt such as “Design a URL shortener.” There is rarely one right answer. The interviewer is watching how you handle ambiguity, make reasonable assumptions, communicate trade-offs, and drive toward a design that works. A repeatable framework stops you from jumping straight to boxes and arrows.
A framework you can reuse
- Clarify requirements. Functional requirements say what the system does (“users can create short links”). Non-functional requirements say how well it must do it: scale, latency, availability, consistency, durability.
- Estimate scale. Rough requests per second, storage, and bandwidth - just enough to guide decisions.
- Define the API and data model. The key endpoints and the main entities with their access patterns.
- Sketch the high-level design. Clients, load balancers, services, data stores, caches, and queues.
- Deep-dive. Pick the hardest parts (often where the interviewer steers you) and go into detail: bottlenecks, failure modes, scaling limits.
- Wrap up. Summarize trade-offs, what could fail, and what you would build next.
A 45-minute budget, as a starting point: requirements 5 minutes, estimation 5, API and data model 5, high-level design 10, deep dives 15, wrap-up 5.
The time budget is a guide, not a script. Some interviewers skip estimation; others spend the whole deep dive on one component. What matters is that you lead the conversation, check in with the interviewer at each transition (“Does this high-level design look reasonable before I go deeper?”), and adapt when they steer you.
Practice: sort the requirements
Try it
Up to 15 XPFunctional or non-functional?
You’ve just been asked to design a URL shortener. Sort what you’ve learned: what the system does, and how well it has to do it.
“Users can create a short link.”
“Redirects finish in under 100 ms at p99.”
“Links can expire.”
“The service is 99.9% available.”
“Short codes aren’t guessable.”
“Users can choose a custom alias.”
Practice: open an interview
Try it
Up to 15 XPThe first ten minutes
The first few minutes set the tone of the whole interview. Choose what you’d say, then start over and try a different path.
- InterviewerDesign a URL shortener.
What do you say?
Key takeaways
Clarify requirements before drawing anything.
Functional requirements are features; non-functional requirements are qualities like scale, latency, and availability.
Lead the conversation, state assumptions, and check in with the interviewer between phases.
Lesson quiz
6 questions · pass with 5 correct · up to 50 XP
Passing this quiz completes the lesson and keeps your streak going. Questions you miss come back in review sessions later.
Questions about this lesson
Stuck? Ask. Figured something out? Share it. Explaining is one of the best ways to learn.
Loading posts…