Skip to main content

Command Palette

Search for a command to run...

How to Succeed in Your System Design Interview

Follow these 4 steps to excel in system design interviews

Published
2 min read
How to Succeed in Your System Design Interview
T

I am a college student and eager to share my knowledge and experiences with other fellow coders. Lets connect and enhance our Knowledge!!

Every system design interview is different. A great system design interview is open-ended and there is no one-size-fits-all solution. However, there are steps and common ground to cover in every system design interview.

Step 1 - Understand the problem and establish design scope

One of the most important skills as an engineer is to ask the right questions, make the proper assumptions, and gather all the information needed to build a system. So, do not be afraid to ask questions.

🫠 What kind of questions to ask?

Ask questions to understand the exact requirements. Here is a list of questions to help you get started:

• What specific features are we going to build?

• How many users does the product have?

• How fast does the company anticipate to scale up? What are the anticipated scales in 3 months, 6 months, and a year?

Step 2 - Propose high-level design and get buy-in

In this step, we aim to develop a high-level design and reach an agreement with the interviewer on the design. It is a great idea to collaborate with the interviewer during the process.

• Come up with an initial blueprint for the design. Ask for feedback. Treat your interviewer as a teammate and work together. Many good interviewers love to talk and get involved.

• Draw box diagrams with key components on the whiteboard or paper. This might include clients (mobile/web), APIs, web servers, data stores, cache, CDN, message queue, etc.

• Do back-of-the-envelope calculations to evaluate if your blueprint fits the scale constraints. Think out loud. Communicate with your interviewer if back-of-the-envelope is necessary before diving into it

Step 3 - Design deep dive

At this step, you and your interviewer should have already achieved the following objectives:

• Agreed on the overall goals and feature scope

• Sketched out a high-level blueprint for the overall design

• Obtained feedback from your interviewer on the high-level design

• Had some initial ideas about areas to focus on in deep dive based on her feedback

Sometimes, the interviewer may give off hints that she likes focusing on high-level design. Sometimes, for a senior candidate interview, the discussion could be on the system performance characteristics, likely focusing on the bottlenecks and resource estimations.

Step 4 - Wrap up

In this final step, the interviewer might ask you a few follow-up questions or give you the freedom to discuss other additional points.

  • Never say your design is perfect and nothing can be improved. There is always something to improve upon.

  • It could be useful to give the interviewer a recap of your design. This is particularly important if you suggested a few solutions.