DEV Community

Discussion on: How Would You Approach Systems Design Interview Questions?

Collapse
 
animesh371 profile image
Animesh Gaitonde

What are some "good" clarifying questions we can ask the interviewer?

1) System design interviews are open-ended and the interviewee is expected to come up with basic feature and get clarification from the interviewer. Divide your requirements into functional and non-functional.
i) Try to cover all basic features in functional requirements. For eg: If you are asked to design Facebook, your basic requirement would be Users must be able to friend/unfriend each other, News Feed generation, Timeline, Profile. You can rule about features such as Messaging, posting videos & other media.
ii) In non-functional requirements, you can speak about system being Highly available, durable, fault-tolerant and resilient

2) In most of the system design interviews, candidate is supposed to come up with a solution to basic features and not the complex ones due to time constraints. Also, think about the bottlenecks your solution might run into. For eg: In case you are asked to design Instagram, think about how to generate the timeline for a user who has been inactive most of the time. What model would you use for celebrities that have millions of followers?

3) Questions such as the number of users, volume of data, number of requests, etc should be a part of the next step that is a Capacity estimation. Here, the candidate has to come up with realistic guestimates. This will further help during the optimization step & also influence the choice of database, type of scaling approach (Horizontal or Vertical), etc that the user can apply

Collapse
 
liaowow profile image
Annie Liao

Thanks so much, Animesh, for taking the time to share these tips!