CORE.DUMP
Resources

System Design

Curated books, repositories, blogs, courses, and papers for learning system design and distributed systems.

Resources for moving from "I can code" to "I can design systems that don't fall over." Mix of interview prep and the deeper distributed-systems foundations.

My own notes and case studies live in the System Design section.

Books

  • Designing Data-Intensive Applications — Martin Kleppmann. The single best starting point; covers storage, replication, partitioning, and consensus with rare clarity. (dataintensive.net)
  • System Design Interview, Vol. 1 & 2 — Alex Xu. Interview-focused, with worked examples and clear diagrams.
  • Understanding Distributed Systems — Roberto Vitillo. A concise, modern tour of the fundamentals.
  • Database Internals — Alex Petrov. How storage engines and distributed databases actually work under the hood.

Repositories & guides

Blogs & references

Lectures & Videos

  • MIT 6.824 - MIT's course on distributed systems
  • Hello Interview - A YouTube channel with resources about system design

Papers

  • Papers We Love — Papers from the computer science community
  • MapReduce — A paper on Google's large-scale data processing model
  • The Google File System — A paper on Google's distributed file system
  • Spanner — A paper on Google's globally-distributed database
  • Raft — A paper on a consensus algorithm for managing a replicated log
  • Worth reading directly: MapReduce, The Google File System, Bigtable, Dynamo, and Spanner, plus Raft for an understandable take on consensus.

Last updated on