Categorizing System Design interview types
System Design interviews are a common part of the hiring process for senior engineers and above. However, even though the interviews have the same name, they can vary in format. I’ve noticed this during my own interviews over the past two years. Surprisingly, there isn’t an existing classification for these formats. So, I’ll do my best to categorize them based on my experiences, in the hopes of providing candidates with a better understanding of what to expect and giving companies a shared language to communicate their interview process.
Classic System Design
The most common type of System Design interview involves the interviewer presenting a system that needs to be designed, along with a list of requirements and constraints. Candidates are then tasked with describing the high-level architecture of the system and how it would meet the given requirements. After the initial design, the interviewer dives deeper into specific parts of the system to assess the candidate’s depth of knowledge.
You can divide Classic System Design into two subtypes:
General system
This type of interview assesses your ability to design a system that does not require any specific prior knowledge.
Example: URL shortener, booking system, e-commerce site, scheduling system.
Companies using this type of interview format: Doctolib, Atlassian, Shopify, Spotify, Miro.
Specialized system
Specialized systems are hard to solve without any prior knowledge regarding how to build them.
Example: high-frequency trading platform, database.
Companies using this type of interview format: Revolut.
From scratch
From scratch interviews are the easiest and not very common. Interviewer provides a small task to which they would like to get the simplest possible solution. Based on the solution, the interviewer discusses shortcomings with the candidate and explores ways to improve it. The process continues and the system that initially was serving a very simple purpose and little traffic is being turned into a large scale system. Throughout this journey, the interviewer covers all the necessary aspects of system design.
Companies using this type of interview format: Reddit.
System design discussion
System design discussion is a mix of technical and behavioral interview. The interviewer asks about examples of system \ situations from candidates’ careers and they use it as a basis to deep dive into technical aspects of the discussed system. These interviews often include a small “General System Design” part, but they typically focus on one aspect of a system, such as the database, API, or scalability.
Companies using this type of interview format: Wolt, HelloFresh.