Skip to content

shawlu95/system-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Design Interviews

What to Evaluate

From the interviewers point-of-view, the goal is to assess a person's:

  1. technical design skills
  2. ability to collaborate
  3. work under pressure
  4. resolve ambiguity

Red flags in interview:

  • over-engineering: delight in design purity, ignore trade-off
  • narow mindedness, stubbornness
  • giving out answer without thinking & talking through the problem

4-Step Framework

1. Understand the Problem and Scope (3-10 mins)

Ask the right questions:

  • what specific features
  • how many users, traffic
  • scaling plan
  • tech stack (mobile/web): language, cache service

2. Propose High-level Design (10-15 mins)

Make a initial design and ask for feedback

  • draw box diagrams
  • back-of-the-envelope estimation on storage
  • look for edge cases

3. Design Deep Dive (10-25 mins)

Depending on job level, the interview may focus on high-level design, or performance characteristics (bottleneck)

  • do not try to explain technical details (e.g. how an algorithm works)
  • careful with time management. Don't get carried away by trivia

4. Wrap-up (3-5 mins)

Answer follow-up questions, including:

  • identify system bottleneck and potential improvement
  • recap of design (especially if more than one solutions are suggested)
  • failure cases
  • operation and monitoring (metrics, error logs)
  • scale to next level

Example Problems


Databases

alt-text

Topics

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published