System Design — From Hire to Strong Hire
Entering an interview is anxious. Especially when no preparation at all. I would like to share the resources and the tips that I learned from my interview preparation.
First of all, what is System Design Interview? I have the exact same question when preparing for the interview. I spent hours of learning and practice with mock interviews. It turns out to be a unique interview process that requires practice just similar to code interview. It essentially doesn’t requires experience in any large scale distributed system but the understanding of what the interviewer is looking for.
Exactly, the communication is key to pass the interview. I know it sounds a bit odd, but that is how you are going to win a “Hire” from interviewer. The question is what does that mean for “good” communication? It is different than being a salesperson that sale goods to someone. To win the right impression meaning you fully understood how to set up a system design discussion and drive the meeting completely. In this article, I will focus on how to structure the interview and how to drive the discussion. I would highly recommend to read the fundamental and couple example before structure your interview. See https://www.educative.io/courses/grokking-the-system-design-interview
Here’s how I setting the discussion with step by step
- Functional Requirement
- Non-functional Requirement (Estimation on Scale and QPS)
- Other assumption
- Data Schema (Estimation)
- database/storage choices
3. High level design
- Sequence diagram
- Components diagram
- Availability(Fault tolerance and failover)