Chapter 3 of the book System Design Interview by Alex Xu.

For any problem posed in the system design interview, we will follow the following steps.

Step 1: ask questions:

  • What features will we build?
  • What’s the scale? How much are we expecting to ramp up in 3,6,9,12 months?
  • Is there existing tech in company we can leverage?

Step 2: Propose high-level design and get feedback

  • Make initial blueprint, get feedback, work together. Finalise this
  • Go through some concrete use case to test the blueprint
    • Find edge cases also through this
  • Do calculation to see if it fits scale. Also consider if calculations are necessary

Step 3: Deep dive:

  • Interviewer might indicate where they want us to deep dive
  • Time is precious, don’t go unnecessarily into detail

Step 4: Recap and Wrap up:

  • Identify bottlenecks & potential improvements. Don’t say design is perfect
  • Error cases are interesting
  • Operationally how will it work? How to monitor the status of this system