- Be bold
- Try to question the requirements, don’t be afraid to ask even simple questions.
- Have the conversation with the interviewer to convert/scope the requirement into a requirement that can be done in 45 minutes to 1 hour.
- Derive what are the Functional requirements. (what is the basic minimum functionality that the interviewer wants to see)
- Derive what are the non Functional requirements (try to see the scale), then try to derive what are the system requirements in terms of latency, availability, reliability, scalability, fault tolerance.
- Solutioning
- Simple solution end to end through APIs/methods
- Think about input parameters.
- Identify storage systems, queue systems. Think if it is read heavy or write heavy, batch or messaging based, consistency heavy or availability heavy.
- Show Fault tolerance handling. When node is down, how does the system handle it.
- Calculate cost of the systems (number of machines, CPU, storage), think of how can you reduce the cost
- https://towardsdatascience.com/system-design-interview-checklist-a-gateway-to-faangs-2b7fac80e423