System Design Interview Must Know


Interview Thought Process

  • End Goal & Main Service Definition
    1. Confirm Requirements
      • Product Requirements
      • Engineering Requirements
    2. Define Services & APIs
      • List Services
      • Define APIs for Each Services
  • Quantity/Scale Analysis
    1. Quantify Workload/Capacity
      • Throughput Estimate
        • Ingress Estimate (Write)
        • Egress Estimate (Read)
      • Storage Estimate
    2. Design Data Model
      • SQL vs NoSQL
      • Schema
  • System Analysis & Tradeoff
    1. High-level Architecture Diagram
      • End-to-end Service Architecture
    2. Dive into Components
      • Database
        • Sharding/Partitioning
        • Replication/Fault Tolorence
      • Load Balancer
        • Dispatch Algorithm
      • Cache
        • Replacement Policy
      • Message Queue
        • Partitioning
        • Load Balance Logic
    3. Tradeoff for Bottlenecks & Failure
      • Tradeoff Component Choice
      • Failure Cases Handling
      • Architecture Improvement

Interview Mindset

  • Be Condident on What You Know
  • Be Calm and Honest If You Don’t Know
  • Know the Unknown from Assumption and Deduction
  • Show Tradeoff Analysis/Proof Not End Result from Your Memory
  • Serve & Support Your Interviewer All Time

Interview Prepare Process

  • Build System
    • Map Knowledge to Real World System
    • Full Picture & Implementation Details
  • Deep-dive into Each System Components/Toptics
    • Low-level Basics
    • Pro&Cons Comparison/Tradeoff
  • Mock & Communicate with Senior & Expert
    • Get Feedback
    • Ask Questions that Are Hard to Find an Answer

Top 10 System Design Questions

  • Design TinyURL or bitly (a URL shortening service)
  • Design YouTube, Netflix or Twitch (a global video streaming service)
  • Design Facebook Messenger or WhatsApp (a global chat service)
  • Designing Quora or Reddit or HackerNews (a social network + message board service)
  • Design Dropbox or Google Drive or Google Photos (a global file storage & sharing service)
  • Design Facebook, Twitter or Instagram (a social media service with hundreds of millions of users)
  • Design Uber or Lyft (a ride sharing service)
  • Design a Web Crawler or Type-Ahead (search engine related services)
  • Design an API Rate Limiter (e.g. for Firebase or Github)
  • Design Yelp or Nearby Places/Friends (a proximity server)

references:


Author: Zijun Zhou
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Zijun Zhou !
  TOC