Signals
Good
- Collaborate
- Work under pressure
- Resolve ambiguity constructively
- Ask good questions
Bad
- Over-engineering
- Narrow mindedness
- Stubbornness
4-Step Process
1. Understand the problem and establish the design scope (3-10 mins)
- Answering without a thorough understanding of the requirement is a huge red flag
- Ask right questions, make proper assumption, gather all the information needed to build a system, write them down.
- Example questions:
- What features?
- What volume? How many users?
- How fast anticipate to scale up?
- What’s the technology stack to leverage?
2. Propose high-level design and get buy-in (10-15 mins)
- Develop a high-level design and reach an agreement with the interviewer on the design. Collaborate with the interviewer.
- Come up with initial blueprint. Ask for feedback.
- Draw box diagrams with key components on whiteboard/paper.
- Do back-of-the-envelop calculations to evaluate blueprint can scale. Think out loud.
- (Optionally) Go through a few concrete use cases.
3. Design deep dive (10-25 mins)
At this stage, should have achieved:
- Agreed on overall goals and feature scope.
- Sketched out a high-level blueprint for overall design.
- Obtained feedback from interviewer on high-level design.
- Had some initial ideas about areas to focus on in deep dive.
4. Wrap up (3-5 mins)
Interviewer ask followup questions or discuss additional points.
- Recap of the design. Especially important if suggested a few solutions.
- Identify system bottlenecks and discuss potential improvements.
- Error cases (server failure, network loss, etc).
- Operation issues. Monitor metrics and error logs. Roll out system.
- Handle scale curve.
- Propose other refinements.
Dos and Don’ts
Dos
- Ask for clarification.
- Understand the requirement.
- Fit the scale of the business.
- Think out loud.
- Suggest multiple approaches.
- Go into details after finalize blueprint.
- Design critical part first.
- Bounce ideas off the interviewer.
Don’ts
- Be unprepared for typical questions.
- Jump into solution without clarifications.
- Go into too much details at the beginning.
- Hesitate to ask for hints if get stuck.
- Don’t think it is done until the interviewer says so.
Leave a comment