How to deal with the "System Design"? Interview?

How to deal with the "System Design" Interview?

“Think of a system design interview as a brainstorming session, driven by open-ended questions, in which you'll be expected to competently discuss a complex system. Consider it an opportunity to work with your interviewer, just as two team members would, to solve a real problem related to the company's goals.”

The real purpose of a system design interview:

  • Your knowledge — gained either through studying or practical experience.
  • Your ability to articulate your thoughts.

Why do companies care for System Design?

  • If you’re preparing for interviews with great product companies or companies known for good quality software.
  • A good performance in system design always results in a better offer (higher position and salary), since it shows the candidate’s ability to handle a complex system or to lead a team.
No alt text provided for this image


  • If you want to create good designs for the scalable cloud software.
  • “Great software design leads a great software”

It was initially started by FAANG but now followed by almost all the product companies.

The Problem

I have seen people struggling in system design because they don’t know where to start. 

Why? Because:

  • They are not structured, it’s open-ended questions.
  • Their lack of experience in developing large scale systems.
  • They did not prepare for SDIs. 
  • They hardly participate in system design.
  • They don’t get a chance to design systems from scratch.

The Solution

Let's structure the solution by following these steps!

Step 1: Requirement gathering/clarifications

Step 2: API / Interface design 

Step 3: Estimate the capacity or scale

Step 4: Defining the data model 

Step 5: High-level architecture design

Step 6: Detailed component design

Step 7: Identifying and resolving bottlenecks


Why asking a good clarification question is important?

A good clarification question helps you achieve one, or more, of several things:

  • Helps you narrow the scope of what you’re supposed to do.
  • Helps clarify what the user expectation of the system is.
  • Gives you direction about where to proceed.
  • Informs you of possible bottlenecks/problem areas.

If we follow this formula, a set of criteria or steps you will be able to cover most of it.

Some of the things in my mind when I work on a new system are:

  • What is the goal of the system?
  • Who are the users of the system?
  • What is the scale we’re working with?
  • Is this a new/old system? How do we handle versioning?

Recommended Book for System Design

I will continue this series. Let me know your feedback.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了