← Logan Kane

Tips for leading a system design interview

Fair warning, this is a long one. Brew a pot of coffee (or tea!) and read on.

The purpose of a system design interview is to gauge whether the candidate can identify and refine what needs to be built. This can help understand the candidate’s level of experience with designing non-trivial scalable systems.

In general, a system design interview should follow certain steps, but the order of some steps can change.

Suggested steps

1. Gathering requirements

2. Define API

Frontend focus: How does the frontend fetch data? How do we ensure it doesn’t over-fetch or under-fetch? How do we manage state to keep a pleasant UX? How should we respond when the backend throws an error?

3. High level diagrams

4. Data model and schema

Frontend focus: How can we break our frontends down into appropriately sized components? Are there shared components within a page or within a component? What behaviour do these components have?

5. Deep dive on the design


It’s important that:

The candidate asks questions to clarify the requirements

There is a system that is designed in the end that applies well to the problem

The candidate doesn’t get sidetracked; guide them back on track with the topics you want to focus on

Get them to make a diagram early on because it:

Dive into their choices at every stage

If they can define the API endpoints, discuss:

Don’t move to scaling out too early. There are a lot of questions to be asked in every stage. No rushing!

Scaling: look at some of the questions written and answered here.


The candidate rushed through everything and I can’t think of questions!

Try introducing changes to the requirements:

“This system worked well for us, and we ended up scaling up massively. But now we want to aggressively target a new segment that were previously not reachable.”

Some directions you can take this:

Or try a different scenario:

Still stuck? Go back through this page and see if there are topics that weren’t touched on. There likely are!

In closing

Hope this helps with how to structure the conversation, what to probe for at each stage, and how to keep candidates on track without leading them by the hand. Running a great system design interview is harder than it looks, but having a consistent framework makes it a lot easier.