Please read part 0 to get an overview of what to expect in this article series. Part 1 lists out the study material required to nail the system design interview. In this article, we will cover the format you should follow during the system design interview.
Typically system design interviews will focus on a narrow part of a larger problem. For e.g. you are way more likely to be asked to design a service for tracking driver locations rather than to “design Uber”. Interviewers do this because it’s much easier to gauge your performance on a problem that is narrow & well understood by them than something broad (which runs the risk of the interview getting derailed).
Let me start off by saying that you should be leading/driving the system design conversation. If most of the talking is done by the interviewer, you’re probably not doing too well. Your interviewer will often interject & challenge what you say, so be prepared to explain the rationale behind your design recommendations & decisions. Usually there is no single right answer — there are typically many good ways to solve the problem, and it’s about making trade-offs.
The rubric used to assess you
It’s important to keep in mind how you’ll be assessed. Although this will vary to some degree from company to company, by and large the rubric for the system design interview assesses the following:
- Can you navigate an ambiguous problem space?
- Are you structured in your problem solving?
- Do you make the right trade-offs?
- Do you think through failure cases?
- Do you identify & address constraints?
Some other companies (e.g. Facebook) might also assess your ability to come up with accurate back of the envelope calculations which you would be expected to translate to the physical resources necessary to make the system work. Other companies might focus more on product APIs and assess your ability to think about how your decisions impact the end user experience.
Structure of the interview
Start your interview by providing an outline of the structure that you intend to follow. This not only provides structure to your interview but also provides a signal to the interviewer that you intend to be comprehensive in your design. I recommend that you follow the following structure: