Interview

#system design #software engineering #interview

Interview Goals

To understand candidate’s ability to collaborate, to work under pressure, to solve problems, and to communicate — asking good question.

1. Understand the Scope

To understand the problem scope by asking questions. (3 - 10 minutes)

  • Features
    • Motivations
  • Users
    • Audience
  • Scaling
  • Tech Stack

2. High-level Design

(10 - 15 minutes)

  • Come up with a draft and ask for feedback. This is where the collaboration comes into play;
  • Illustrate the key components;
  • Do some Estimation before diving into it.

3. Deep Dive

Dive into each component by some priority. (10 - 25 minutes)

4. Wrap up

(3 - 5 minutes)

  • Recap
  • Improvement
  • Failures or issues
  • Operational components such as logging and monitoring
  • Next-level scaling

Dos and Don’ts

  • Do ask for clarification, feedback often
  • Do state your assumptions
  • Do understand the scope
  • Do propose alternatives
  • Do prioritize
  • Do not jump to conclusions
  • Do not dwell on small details
  • Do not hesitate to ask questions or hints
  • Do not think in silence