puncsky / system-design-and-architecture

Learn how to design large-scale systems. Prep for the system design interview.

Home Page:http://tianpan.co/hacking-the-software-engineer-interview

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

System Design and Architecture

⚠️ The 2nd Edition is still a work in progress.

The book System Design and Architecture has helped millions of software engineers worldwide to succeed in the Internet industry since 2015. Here is why it works:

  1. 🌎 Real-world engineering. It comes from real-world examples of FANNG and many other silicon valley companies. And it outlines how to build real-world Internet products and services.
  2. 🍕 Easy to digest. System design at the right level of abstraction is like a map to route you to your destination with the shortest cut. There are charts, diagrams, and step-by-step guides - all for you to acquire the minimum actionable knowledge to excel system design interviews and get started building.
  3. 🤲 Full-coverage. It strives to be "the book" for you to master most of the system design use-cases, from backend to frontend and from zero to hero.
  4. 🚶‍♀️ 4-step framework. This book approaches and solve problems in a systematic and repeatable way: 1) Clarify requirements 2) Sketch out the high-level design 3) Discuss individual components and how they interact with each other 4) Wrap up with blind spots or bottlenecks.

What's different in the 2nd Edition? From 2015 to 2022, we saw mobile ate the world, cloud-native computing came across Kubernetes, and web3 went through ups and downs. There are always new companies at different stages of their lifecycles taking the lead in the Internet industry. I am interested in how they work, aren't you? So in the 2nd Edition, I will

  • add more interesting content with new companies and products.
  • rewrite existing content with new trends in the industry.
  • add more charts and diagrams with step-by-step guides.
  • add a PDF edition of the book.
  • deduplicate repetitive content so that each design takes its unique abstraction.

What is out of this book's scope?

  • API design for specific domains. Please go to Google's API design guide.
  • Object-oriented design. Its importance is quite overestimated by mediocre engineers.

How to use this book?

  • For professionals (Google L5 or above), go directly to System Design in Practice.
  • For junior and intermediate programmers (Google L3/L4), go to System Design Theories and then read System Design in Practice.
  • For beginners, go to Prepare for an Interview effectively, then read System Design Theories, and finally go to System Design in Practice.

System Design in Practice

Product Question
Designing Instagram or Pinterest
Designing Uber
How Facebook Scale its Social Graph Store? TAO
How Netflix Serves Viewing Data?
How to design robust and predictable APIs with idempotency?
How to stream video over HTTP for mobile devices? HTTP Live Streaming (HLS)
Designing a distributed logging system
Designing a URL shortener
Designing a KV store with external storage
Designing a distributed in-memory KV store or Memcached
Designing Facebook photo storage
Designing Stock Exchange
Designing Smart Notification of Stock Price Changes
Designing Square Cash or PayPal Money Transfer System
Designing payment webhook
Designing a metric system
Designing a recommendation system
Designing Airbnb or a hotel booking system
Lyft's Marketing Automation Platform -- Symphony
Designing typeahead search or autocomplete
Designing a Load Balancer or Dropbox Bandaid
Fraud Detection with Semi-supervised Learning
Designing Online Judge or Leetcode

System Design Theories

Prepare for an Interview effectively

  • Introduction to software engineer interview
  • How to crack the coding interview, for real?
  • How to communicate in the interview?
  • Experience deep dive
  • Culture fit
  • Be a software engineer - a hero's journey

[Chinese Edition]

Who's Tian Pan?

Tian Pan has been a high-performing software engineer and engineering manager working in the San Francisco Bay Area for 10 years, previously worked at Uber, Oracle, IoTeX, and Microsoft.

Join us for further discussion!


License

GPL v3

If you found this resource helpful, give it a 🌟 otherwise contribute to it and give it a ⭐️.