Oct 15, 2021


How to Succeed in a System Design Interview

Software companies often test candidates on system design during interviews. It's now a standard part of how they figure out if someone can actually build real systems, not just write code on their own.

We recently hosted an event where a senior engineer and manager (L5/SDEIII) from a FAANG company ran a mock system design interview. The interviewee was an experienced developer (L4/SDEII) from another major tech company. Over a hundred software developers attended to watch and learn.

The interview lasted about an hour, and it was different from most system design content you'll find online. If you've watched YouTube videos on this topic, you might have noticed the same patterns we saw. Here's how our mock interview compared to what you typically see in online resources:

A typical system design interview video online Our mock system design interview
Requirements are quickly gathered within the first 5 minutes, and written down as "functional requirements" and "non-functional requirements" We spent 15 minutes breaking down high-level requirements into multiple critical user journeys
Detailed system design typically satisfies the full requirements Detailed system design focused on just one of several user journeys
Little to no discussion comparing alternative technology choices, such as what database to use (MySQL, DynamoDB, etc.) The interviewer and interviewee discussed consistency and performance characteristics of DynamoDB. The interviewer also expected additional alternatives to be presented, with clear justifications for design choices

After the interview wrapped up, our interviewer shared the essential skills he looks for in candidates. These aren't official FAANG rubrics, just observations from someone who's conducted many interviews across different companies and projects.

Soft skills:

Hard skills: