Stay humble. Stay hungry. Stay foolish.

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.

Tags

Leave a comment