System Design Interview Questions, Organized by Difficulty

Author
System Design Interview Questions, Organized by Difficulty

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.

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.

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.

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 changesLevel 1Level 2Level 3
Parts in the designthree to fourfive to eightnine or more
Read and write pathsthe samedifferentdifferent, plus a background pipeline
What it testsbuilding blockskeeping two designs in agreementreasoning without a known answer
Usual candidate leveljunior and midmid and seniorsenior and staff
Where candidates lose pointsstopping too earlyignoring one of the two pathsnaming 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.

Enjoyed this article?

Explore our courses to master system design and ace your next interview.