Skip to content

System Design Interviews

1 min

System design interviews are an essential component of tech hiring acrosss a variety of technical roles (e.g. SDEs, SDMs, TPMs). Below I share my top four tips to ace such interviews:

1️⃣ Ask Clarifying Questions: System design questions are intentionally vague, and help the interviewer assess the candidate's ability to deal with ambiguity. Be sure to start with some questions that help you narrow down the scope of the problem to be solved and the complexity that your design must accomodate. For instance if asked to design a certain application, a clarfying question could be: "Does the system need to support both mobile and web users, or just one or the other?". Jumping straight into the design without asking a single question is generally a red flag. A litmus test for what is appropriate to ask is anything that (basis the answer) would significantly change your design.

2️⃣ Talk through your Solution: As you are working on your design, showcase your design thinking to the interviewer. This will help them gather essential datapoints on your clarity of thought and logical thinking. Pay particular attention to showcasing the why behind the design decisions you are making. For instance, I am introducing a relational database here because of the relational nature of our data (one user has several posts) and the simplicity/efficiency with which such database can deal with this requirement.

3️⃣ Consider Non-functional Requirements: While you may not have the time to address every non-functional aspect of the solution (e.g. scalability, security) in the time allocated, your interviewer does need to observe you acknowledging and to the extent possible accounting for these. For example, we will need to compress the content crawled given its size, would you like for me to get into more details about this aspect? Brushing over these important aspects of the design (without even an acknowledgment) is generally a red flag.

4️⃣ Practice, Practice, Practice: There is no shortcut to readiness without practicing. Luckily, there are tons of resources available online (youtube videos, blogs, forums, books) that you can leverage. One of my favorite resources in this area is Alex Xu’s website: https://bytebytego.com/ .