Whether you’re a software developer or a Technical Project Manager, you can expect to encounter System Design rounds in the tech interview process. System Design Interviews assess your ability to design large-scale distributed systems. As technologies from internet to artificial intelligence (AI) increasingly rely on distributed systems, most tech companies expect candidates to have a certain level of knowledge in System Design fundamentals.
System Design interview prep should take up a good amount of your tech interview prep — but how much System Design interview preparation time should you plan for? As a former FAANG systems engineer who has conducted hundreds of System Design Interviews, I’ll share my take on how to optimize your interview prep for success in the System Design round.
System Design Interviews are a unique type of technical interview. Unlike with coding interviews, a System Design Interview question can have more than one right answer. As such, interviewers are more interested in your thought process throughout the interview than your final design. This means a successful System Design Interview heavily depends on your ability to communicate your thought process and hold a discussion. You will often have access to a whiteboard (in-person or virtual) that you can use to share your process with your interviewers.
After introductions and ice-breakers, System Design Interviews typically take the following format:
Keep in mind: Mastering your technical fundamentals is essential to your System Design Interview prep. However, holistic System Design Interview prep should account for both technical System Design concepts and the soft skills to show your ability to communicate and collaborate with others. Keep this in mind — and now let’s move on to planning your interview prep time.
To succeed in the System Design Interview, your interview prep should cover various areas:
Note: Like behavioral interviews, System Design Interviews are opportunities to showcase your culture fit with a company. Make sure your company research explores not only the company’s tech stack, but their cultural values as well. Large tech companies such as Amazon, Microsoft, Apple, and Netflix freely share their company values online.
If you can commit 2-3 hours a day, for 5 days a week, you can expect your System Design Interview prep to take:
That said, preparation time is always variable. Depending on your circumstances, you might plan for up to 16 weeks of preparation.
The amount of System Design Interview prep time you’ll need will largely depend on three factors:
These are circumstances unrelated to your technical skills that can impact your prep time, such as:
Everyone learns at a different pace. If System Design concepts are entirely new to you, you should budget some extra time. Some of us also live busy lives and don’t have the time to commit 2-3 hours of study time each day. If this is your case, you should certainly plan for more weeks if possible.
This factor can concern your:
The more new ground you need to cover between these two factors, the more study time you should budget. If System Design is new to you, just know that it will take time for new concepts to settle.
The interview is not a memory test — you can’t rely on flash cards and memorization of certain principles. You have to internalize your learnings so you can apply the concepts to the unique problem that’s given to you. You need to be able to articulate trade-offs, and how your design fulfills requirements given the scope or limitations of a system. This requires some time for internalization.
If time allows, don’t rush or place undue pressure on yourself. The true mastery of concepts takes time, especially with complex, nuanced matters such as designing scalable systems.
If you’re not familiar with a company’s tech stack, this is not always a deal-breaker for employers. Many tech companies train new employees and may not expect you to come in with any previous experience. So your priority between these two factors is honing your System Design skills.
The role or level you’re interviewing for will impact the depth of System Design knowledge you need to showcase.
While every company is different, the following list demonstrates the topics you should be comfortable discussing for different roles and levels.
Junior & Mid-level Software Engineer
Senior Software Engineer
Note: Each advanced software engineering level should have knowledge on the same topics of preceding software engineering levels (e.g., Senior software engineers should have knowledge on the junior and mid-level topics).
Staff Software Engineer
Principal/Distinguished Engineer
Technical Product or Project Manager
Depending on how these factors affect you, you may need to budget more time to ensure you ace the System Design Interview. You might be a slow learner, have a busy schedule, or have a lot of new material to study. If you can afford the time, you can give yourself up to 16 weeks to prepare for the interview.
System Design Interviews are not going away anytime soon. Mastering these tech interview rounds will be crucial to helping you advance in a long-term tech career.
The amount of System Design Interview preparation time you budget can range from the following:
System Design Interview prep should gear you toward solving real-world System Design problems — but practicing System Design Interview problems won’t be enough. As we discussed, your soft skills will be what leaves a lasting impression on your interviewers.
To help you make a hireable impression in your interview, I’ve created a free course: The System Design Interview Prep Handbook. This course shares interview tips from my 15 years of experience designing distributed systems and conducting System Design Interviews. Unlike other System Design courses, this course prepares you to grok the behavioral aspects of the System Design round — an aspect that even advanced engineers failed.
Happy learning!
Free Resources