You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tech-interview-handbook/experimental/design
Yangshun 98b8081efc
contents: proofread contents untll coding interview
3 years ago
..
README.md contents: proofread contents untll coding interview 3 years ago
collaborative-editor.md misc: restructure contents 6 years ago
news-feed.md misc: restructure contents 6 years ago
search-engine.md misc: restructure contents 6 years ago

README.md

Design Questions

Guides

Flow

A. Understand the problem and scope

  • Define the use cases, with interviewer's help.
  • Suggest additional features.
  • Remove items that interviewer deems out of scope.
  • Assume high availability is required, add as a use case.

B. Think about constraints

  • Ask how many requests per month.
  • Ask how many requests per second (they may volunteer it or make you do the math).
  • Estimate reads vs. writes percentage.
  • Keep 80/20 rule in mind when estimating.
  • How much data written per second.
  • Total storage required over 5 years.
  • How much data reads per second.

C. Abstract design

  • Layers (service, data, caching).
  • Infrastructure: load balancing, messaging.
  • Rough overview of any key algorithm that drives the service.
  • Consider bottlenecks and determine solutions.

Source: https://github.com/jwasham/coding-interview-university#system-design-scalability-data-handling

Grading Rubrics

  • Problem Solving - How systematic is your approach to solving the problem step-by-step? Break down a problem into its core components.
  • Communication - How well do you explain your idea and communicate it with others?
  • Evaluation - How do you evaluate your system? Are you aware of the trade-offs made? How can you optimize it?
  • Estimation - How fast does your system need to be? How much space does it need? How much load will it experience?

Specific Topics