Skip to content

Latest commit

 

History

History
95 lines (81 loc) · 4.48 KB

README.md

File metadata and controls

95 lines (81 loc) · 4.48 KB

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