Interviews
System Design Interviews Are Not About Stacking Components—They're About Defining the Problem
Translated from the original Chinese essay · Read the Chinese original →
Have you ever encountered a system design question like this: "Design a comment system that supports a million users."
Your mind immediately conjures Redis, Kafka, CDN, distributed caching, long-lived connections...
You pick up the pen, draw an entire architecture diagram, and confidently explain it.
Then the interviewer says flatly, "Thanks, that's all the questions I have."
Your heart sinks.
We think the diagram wasn't big enough or the components weren't comprehensive enough.
But often, the real problem is that we never figured out from the start what problem the question is actually asking us to solve.
System design is never about stacking components. It is a live exam in structured problem clarification.

Many candidates habitually start from technology, piling up technical solutions right away. But the first step of a system design question should never be "drawing the diagram"; it should be "asking questions."
For example: Does the comment system you are designing require strong real-time guarantees? Does it need sorting? Does it support editing? Do comments need moderation? Is it for consumers or an internal system? How long is data retained, and are there compliance restrictions?
If you open with "We can use Kafka and Redis to absorb traffic spikes," the interviewer may silently note: "Too early to solution. Didn't clarify the problem space."
It's not that what you said is wrong; it's that you jumped ahead too quickly.
I have personally experienced a very typical contrast.
One candidate started with: "We'll use CDN + Kafka + Redis + multi-active deployment."
Another candidate said: "I understand the goal is to support high-concurrency comment display, but I'd like to confirm a few points first: Is real-time required? Is moderation needed? What is the read/write ratio at the expected volume? What are the system SLA requirements? What is the business rollout timeline?"
The latter may have started drawing the diagram a minute later, but five minutes in, the interviewer had already decided to vote for him.
System design questions are not testing how many buzzwords you have memorized. They are testing whether you can stand from the perspective of requirements and find certainty amid uncertainty.
Sometimes it's not that your technical skills are insufficient; it's that you haven't exposed your thinking structure.
I recommend a five-question thinking skeleton that applies to most system design questions:
- What are the functional requirements?
- What are the non-functional requirements? Do we need performance, stability, or availability? In typical system design interviews, performance, availability, and scalability are usually the most important.
- Who are the users? Consumers, an internal platform, or third-party developers?
- What are the key scenarios and load? QPS, peak traffic, latency, storage volume?
- Where are the risk points? Single points of failure, data consistency, moderation delays?
These questions are not just for "showing off." They help you figure out what you are actually designing.

High-scoring candidates are not the ones who mention the most components; they are the ones whose judgment is steady.
They often don't answer immediately. Instead, they say something like:
"I want to make sure I understand the problem correctly. Our goal is to reliably display the comment stream, right? I'll start from the data path: first the write side, then the read side, then caching and consistency."
This is like a reliable architect kicking off a project with a team, not a student answering an exam question.
In fact, system design interviews really assess only four key points:
- Can you clarify requirements, including functional and non-functional requirements?
- Can you distinguish priorities?
- Can you articulate trade-offs?
- Can you build the solution incrementally?
Many people fail at the first step. They talk for ten minutes, and the interviewer still doesn't understand what problem they are solving.
Those who can do the last two steps already show signs of being able to land a system: you are not just assembling features; you understand the cost of each component.
I once interviewed a candidate designing a push notification system. He didn't rush into Pub/Sub. Instead, he first confirmed: "Who are the main users of this system? Does it need to be delivered within 100ms, or is minute-level latency acceptable?"
After confirming that "minute-level is acceptable," he decided that the overall design could sacrifice some real-time performance for higher stability.
That single statement carried more weight for technology selection than naming five middleware options.
Because he demonstrated real judgment.
One last thought: System design questions are not an architecture diagram showcase. They are a projection—a projection of your rhythm, method, and judgment when facing unknown problems.
They are a visible window into whether you have real project experience, and a proxy for whether you can drive things independently.
The real advancement for a technologist is not moving from writing code to drawing diagrams. It is moving from solving problems to defining problems.
And that is the true value of system design questions.
Finally, two YouTube channels that are must-watch for System Design Interview prep:
- Mikhail Smarshchok's https://www.youtube.com/@SystemDesignInterview is the best System Design Interview video series I have seen. There are only six videos, and they are worth revisiting. The only downside is that his Belarusian accent is quite strong, so you may need subtitles throughout. He also recorded Leetcode's System Design course, but it focuses more on foundational theory and requires payment, so I do not strongly recommend it.
- ByteByteGo https://www.youtube.com/@ByteByteGo — Alex Lu also has two companion books. This one is quite well known. I recommend subscribing to their newsletter to keep your knowledge up to date.