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