Summarize

Dos

• Always ask for clarification. Do not assume your assumption is correct.

• Understand the requirements of the problem.

• There is neither the right answer nor the best answer. A solution designed to solve the problems of a young startup is different from that of an established company with millions of users. Make sure you understand the requirements.

• Let the interviewer know what you are thinking. Communicate with your interview.

• Suggest multiple approaches if possible.

• Once you agree with your interviewer on the blueprint, go into details on each component. Design the most critical components first.

• Bounce ideas off the interviewer. A good interviewer works with you as a teammate. • Never give up.

Don’ts

• Don't be unprepared for typical interview questions. • Don’t jump into a solution without clarifying the requirements and assumptions.

• Don’t go into too much detail on a single component in the beginning. Give the high- level design first then drills down.

• If you get stuck, don't hesitate to ask for hints.

• Again, communicate. Don't think in silence.

• Don’t think your interview is done once you give the design. You are not done until your interviewer says you are done. Ask for feedback early and often.

Time allocation on each step

System design interview questions are usually very broad, and 45 minutes or an hour is not enough to cover the entire design. Time management is essential. How much time should you spend on each step? The following is a very rough guide on distributing your time in a 45- minute interview session. Please remember this is a rough estimate, and the actual time distribution depends on the scope of the problem and the requirements from the interviewer.

  • Step 1 Understand the problem and establish design scope: 3 - 10 minutes

  • Step 2 Propose high-level design and get buy-in: 10 - 15 minutes

  • Step 3 Design deep dive: 10 - 25 minutes

  • Step 4 Wrap: 3 - 5 minutes

Last updated