Most system design questions fall into three levels. The topic does not set the level. The number of separate problems inside the question does.
A URL shortener and a video streaming service both need storage, a cache, and a load balancer. The shortener has one write path and one read path. The streaming service has upload, encoding, delivery, and playback. Each of those four fails in a different way, and you have to cover all four.
This article lists the questions asked at each level. It explains what each level tests, and it gives an order to practice them in.
What makes a system design question difficult
Three things raise the difficulty of a question. The subject matter is not one of them.
How many parts the design needs. A design with three services is easier than one with eight. More parts means more connections between them. Every connection is a place where an interviewer can ask a follow-up question.
Whether reads and writes need different designs. Some systems are read far more often than they are written to. When the two paths need different storage or different caching, your design splits in two. You then have to explain both halves and how they stay in agreement.
Whether the question contains a known hard problem. Some questions hide a problem with no clean answer. Keeping messages in order across many servers is one. Keeping a counter accurate under very heavy traffic is another. These are the problems an interviewer will spend the last fifteen minutes on.
Level 1: Single-purpose systems
These questions have one main job. The read path and the write path use the same data. You can draw a working design in about ten minutes, which leaves time for depth questions.
Level 1 tests whether you know the building blocks and what each one costs. Interviewers use these questions for junior and mid-level candidates. They also use them as an opening question for senior candidates before moving to something larger.
- Design a URL shortener
- Design a paste service like Pastebin
- Design a rate limiter
- Design a unique ID generator
The most common mistake at this level is finishing too fast. Candidates draw the boxes, stop, and wait. A strong answer keeps going into the parts that are actually interesting. For the URL shortener, that is how you generate short keys without two servers producing the same one.
Level 2: Systems with two different paths
Here the read path and the write path need separate designs. You will also need a queue, a background worker, or a second data store. A queue is a service that holds messages so the sender and the receiver can work at different speeds.
Level 2 tests whether you can keep two designs consistent with each other. Most mid-level and senior interviews land here.
- Design a social media feed
- Design a notification system
- Design a web crawler
- Design an autocomplete system
- Design a key-value store
- Design a distributed cache
- Design a file storage service like Dropbox
- Design a photo sharing platform like Instagram
- Design a hotel booking system
- Design a food delivery system
The social media feed is the most common question in this group. It is also the one that follow-up questions most often turn into a level 3 question. The core decision is whether you build each user's feed when someone posts, or when the user opens the app. Building it on write is fast to read but expensive for users with millions of followers.
Grokking the System Design Interview works through most of this list. Each design shows the reasoning behind every decision.
Level 3: Systems with a known hard problem
These questions contain a problem that has no clean answer. You are not expected to solve it perfectly. You are expected to name it, give an approach, and say what that approach costs.
Level 3 appears in senior and staff interviews. It also appears at mid-level when the company wants to see how you behave without a ready answer.
- Design a messaging system like WhatsApp
- Design a video streaming service like YouTube
- Design a search engine
- Design a ride sharing service like Uber
- Design a metrics and monitoring system
- Design a social graph like LinkedIn connections
Each one has a specific difficulty. In messaging it is message order and delivery receipts. In ride sharing it is matching drivers to riders by location, which needs a way to index a map. In monitoring it is write volume, because every server sends measurements every few seconds.
The three levels side by side
| What changes | Level 1 | Level 2 | Level 3 |
|---|---|---|---|
| Parts in the design | three to four | five to eight | nine or more |
| Read and write paths | the same | different | different, plus a background pipeline |
| What it tests | building blocks | keeping two designs in agreement | reasoning without a known answer |
| Usual candidate level | junior and mid | mid and senior | senior and staff |
| Where candidates lose points | stopping too early | ignoring one of the two paths | naming a product instead of a property |
Which level should you expect?
The level tracks the role, not the company. A mid-level role usually gets a level 2 question. A senior role usually gets level 2 or level 3.
The company shapes the topic rather than the level. System Design Interview Questions by Company maps the common ones.
There is one common pattern worth knowing. Many interviewers open with a level 1 question and then add constraints until it becomes level 2 or level 3. "Design a URL shortener" becomes "now it serves ten million redirects per second." The question did not change. The number did, and the number is what makes the design change.
How to practice these in order
Do not work down the list from top to bottom. Practice in this order instead.
Start with two level 1 questions. Do the URL shortener and the rate limiter. The goal is not the design. The goal is the habit of asking about scale, users, and storage before you draw anything.
Then do four level 2 questions from different groups. Pick the feed, the notification system, the crawler, and one storage question. Four is enough to see the patterns repeat. You will notice that the same four or five decisions come back every time.
Then do two level 3 questions. Choose the two closest to the company you are interviewing with. A company that runs a marketplace will ask something shaped like ride sharing.
Then go back to level 1 and add constraints yourself. This is the step most candidates skip, and it is the one that matches what interviewers actually do.
Eight questions practiced this way work better than thirty read passively. The study plans in the handbook give a structured order. Grokking System Design Fundamentals covers the building blocks these questions assume you already know.
Frequently asked questions
How many system design questions should I practice? Between eight and twelve, practiced out loud with a timer. The questions repeat their underlying decisions, so more than twelve gives you very little that is new. Depth on ten questions beats shallow coverage of thirty.
Are system design questions different at each company? The questions are similar and the emphasis differs. A company that runs large storage systems will push on data layout. A company that runs real-time products will push on latency and message delivery. Look at what the company actually builds and pick your practice questions to match.
Do I need to memorize the solutions? No, and memorizing tends to hurt. Interviewers change one constraint and a memorized answer stops applying. Learn the decisions instead: how to shard data, when to add a cache, and when a queue is worth its cost.
What should I do if I get a question I have never seen? Treat it as a level 1 question first. Ask what it must do, for how many users, and what the read and write volumes are. Then draw the smallest design that works. Almost every unfamiliar question reduces to a familiar shape once you have the numbers.
How long should my answer take? Plan for about forty minutes of design in a forty-five to sixty minute round. Spend the first five minutes on questions, about ten minutes on a working design, and the rest on depth and failure cases. Reaching a working design too slowly is the most common timing mistake.
Related reading
- The System Design Interview, on how the round is structured
- Thinking Like a System Designer, on the habits these questions test
- Study Plans, for a week-by-week order
- How to Prepare for a System Design Interview in Four Weeks, for fitting these questions into a schedule
- System Design Interviews: What Actually Matters, on what interviewers score
