System Design · Workspace
Resources
Blogs, books, tools and channels worth your time after a lesson. Each one goes further on something this course teaches.
Blogs29
Engineering blogs where teams explain how their systems work and what broke along the way.
ByteByteGo NewsletterWeekly illustrated breakdowns of how large systems work, from caching layers to payment flows. (opens in a new tab)
Arpit BhayaniEssays on database internals, distributed systems and the algorithms beneath them. (opens in a new tab)
Uber EngineeringHow Uber runs real-time dispatch, payments and maps for riders around the world. (opens in a new tab)
Netflix Tech BlogHow Netflix streams to every kind of device, and how it breaks its own systems on purpose to test them. (opens in a new tab)
Cloudflare BlogNetworking, DNS, DDoS defence and honest outage reports, often down to the packet. (opens in a new tab)
Stripe EngineeringHow Stripe designs APIs, keeps requests idempotent and migrates data without downtime. (opens in a new tab)
Discord EngineeringHow Discord stores trillions of messages and why it moved hot paths from Go to Rust. (opens in a new tab)
Meta EngineeringThe systems behind Facebook, including TAO, Memcache at scale and global data centres. (opens in a new tab)
GitHub EngineeringHow GitHub ships many times a day, scales MySQL and keeps a large Rails monolith fast. (opens in a new tab)
Figma EngineeringHow Figma built real-time multiplayer editing and scaled Postgres as it grew. (opens in a new tab)
Slack EngineeringHow Slack keeps messages flowing in real time, and what it learned from its own outages. (opens in a new tab)
Shopify EngineeringHow Shopify survives flash-sale traffic spikes on a modular Rails monolith. (opens in a new tab)
Ramp BuildersFintech engineering at Ramp: payments, card systems and the internal tools behind them. (opens in a new tab)
Modal BlogServerless GPUs, fast container start-up and the infrastructure behind AI workloads. (opens in a new tab)
Replit BlogHow Replit runs code for millions of people in the browser and builds its AI coding agent. (opens in a new tab)
CognitionThe team behind Devin and Windsurf on building AI agents that write code. (opens in a new tab)
Cursor BlogResearch and product notes from the Cursor editor team, including how they train and serve coding models. (opens in a new tab)
VALORANT’s 128-tick serversOne long post from Riot Games on fitting every server frame into a 2 ms budget. A clear lesson in profiling. (opens in a new tab)
Martin KleppmannWriting on distributed systems, CRDTs and local-first software from the author of Designing Data-Intensive Applications. (opens in a new tab)
High ScalabilityA long-running archive of architecture write-ups showing how real companies grew their systems. (opens in a new tab)
Instagram EngineeringHow Instagram scaled Django, Postgres and Cassandra as its user base grew. (opens in a new tab)
LinkedIn EngineeringWhere Kafka came from, plus feed ranking, search and the data systems behind LinkedIn. (opens in a new tab)
Google Cloud BlogArchitecture posts on Spanner, Bigtable, Pub/Sub and running systems on Google Cloud. (opens in a new tab)
AWS Architecture BlogReference architectures and design patterns for AWS, mapped to the Well-Architected Framework. (opens in a new tab)
Fly.io BlogRunning apps close to users: edge deployment, distributed SQLite and Postgres, and frank incident write-ups. (opens in a new tab)
Cockroach Labs EngineeringHow a distributed SQL database handles consensus, transactions and replication, from the people building it. (opens in a new tab)
Datadog EngineeringObservability at scale: metrics pipelines, tracing and storage for huge volumes of telemetry. (opens in a new tab)
Dropbox TechHow Dropbox built Magic Pocket, its own exabyte-scale storage, and keeps files in sync across devices. (opens in a new tab)
JepsenTests of real databases and queues under network failures, showing exactly where each one breaks its promises. (opens in a new tab)
Books12
For when you want the whole picture, not one article.
- Designing Data-Intensive ApplicationsThe standard book on how data systems work: storage, replication, partitioning, transactions and streams. (opens in a new tab)
- System Design Interview – An Insider’s Guide (Vol. 1)A step-by-step method for interview questions, worked through classics like a URL shortener and a chat system. (opens in a new tab)
- System Design Interview – An Insider’s Guide (Vol. 2)Harder interview designs, from a payment system and a stock exchange to Google Maps. (opens in a new tab)
- Web Scalability for Startup EngineersA practical tour of scaling a web app layer by layer: front end, services, data, caching and queues.
- Building MicroservicesWhen to split a system into services, where to draw the boundaries and how to live with the result. (opens in a new tab)
- Database InternalsHow storage engines and distributed databases work inside: B-trees, LSM trees, replication and consensus. (opens in a new tab)
- Understanding Distributed SystemsA short, readable introduction to communication, coordination, scaling and resilience. (opens in a new tab)
- Fundamentals of Software ArchitectureArchitecture styles, the trade-offs between them and the qualities you design for. (opens in a new tab)
- System Design for the LLM EraPatterns for running LLMs in production: gateways with fallbacks, semantic caching, model routing and prompt-injection defence. (opens in a new tab)
- Governed Autonomy
- Release It!Patterns that keep production systems up, such as timeouts, circuit breakers and bulkheads, and the failures they prevent. (opens in a new tab)
- Site Reliability EngineeringGoogle’s book on running production systems: SLOs, error budgets, on-call and postmortems. Free to read online. (opens in a new tab)
Tools23
The software behind the boxes in your diagrams. Their docs are some of the best free teaching there is.
RedisAn in-memory key-value store used for caching, sessions, rate limiting and pub/sub. (opens in a new tab)
Apache KafkaA distributed, replicated log for moving large volumes of events between services. (opens in a new tab)
PostgreSQLThe open-source relational database most teams start with: strong SQL, JSONB, extensions and reliable transactions. (opens in a new tab)
NginxA fast web server, reverse proxy and load balancer that sits in front of many web apps. (opens in a new tab)
DockerPackages an app and its dependencies into an image that runs the same way everywhere. (opens in a new tab)
KubernetesPlaces containers on machines, restarts them when they fail and scales them with load. (opens in a new tab)
PrometheusCollects time-series metrics by scraping your services, and alerts when they cross a threshold. (opens in a new tab)
GrafanaTurns metrics, logs and traces from many sources into dashboards and alerts. (opens in a new tab)
ElasticsearchFull-text search and analytics over large sets of documents, built on Apache Lucene. (opens in a new tab)
RabbitMQA message broker for queues and routing that speaks AMQP, MQTT and STOMP. (opens in a new tab)
ConsulLets services find each other, checks their health and stores shared configuration. (opens in a new tab)
etcdA strongly consistent key-value store built on Raft. Kubernetes keeps its cluster state here. (opens in a new tab)
EnvoyA proxy for traffic between services, handling load balancing, retries, timeouts and metrics. (opens in a new tab)
TerraformDescribes cloud infrastructure in config files, then creates and updates it to match. (opens in a new tab)
JaegerFollows one request across many services so you can see where the time goes. (opens in a new tab)
OpenTelemetryA vendor-neutral standard and SDKs for sending traces, metrics and logs. (opens in a new tab)
RocksDBAn embedded LSM-tree key-value store from Meta, used inside many databases. (opens in a new tab)
CockroachDBA SQL database that shards and replicates itself across nodes, using Raft for consensus. (opens in a new tab)
FoundationDBAn ordered key-value store with ACID transactions across the whole cluster, used by Apple and Snowflake. (opens in a new tab)
MinIOS3-compatible object storage you can run yourself, with erasure coding for durability. (opens in a new tab)
Apache FlinkStateful processing of event streams in real time, with exactly-once guarantees. (opens in a new tab)
Apache AirflowSchedules and monitors data pipelines written as Python DAGs. (opens in a new tab)
PostGISAdds geographic types, spatial indexes and location queries to PostgreSQL. (opens in a new tab)
Channels12
Video, for when you’d rather watch someone draw it.
ByteByteGoYouTubeShort animated explainers of system design ideas from Alex Xu’s team. (opens in a new tab)
Gaurav SenYouTubeWhiteboard walkthroughs of interview questions and the reasoning behind each choice. (opens in a new tab)
Hussein NasserYouTubeLong-form backend engineering: networking, databases, proxies and protocols from first principles. (opens in a new tab)
System Design InterviewYouTubeCalm, detailed walkthroughs of classic problems, built up one component at a time. (opens in a new tab)
sudoCODEYouTubeSystem design concepts explained in Hindi and English. (opens in a new tab)
Tech DummiesYouTubeSystem design basics and interview walkthroughs with practical examples. (opens in a new tab)
NeetCodeYouTubeCoding and system design interview preparation, organised as structured roadmaps. (opens in a new tab)
FireshipYouTubeFast explainers of tools and ideas, many in about 100 seconds. (opens in a new tab)
ThePrimeagenYouTubePerformance, systems programming and opinionated commentary on the industry. (opens in a new tab)
ArjanCodesYouTubeSoftware design in Python: patterns, clean architecture and refactoring. (opens in a new tab)
SriniouslyYouTubeBackend engineering from first principles: HTTP, routing, authentication and the basics underneath. (opens in a new tab)
Hayk SimonyanYouTubeSoftware and AI engineering: LLM apps, RAG pipelines, vector databases and system design. (opens in a new tab)