A few system design & architecture experiences, low-level debugging stories and post-mortems
A living document of some nice real life dev experiences, documented elsewhere on the internet:
Title | Notes |
---|---|
Bank python | Simple & accessible interfaces for everything. Seemingly the anti-thesis of clean code |
How Notion Scaled to 100 Million Users Without Their Database Exploding | Doubling down on Postgres, scaling horizontally using shards and pgbouncer |
Brendan Gregg: The Speed of Time | Flamegraphs discovers reading current time took longer on Ubuntu than CentOS |
How Instagram Reduced Web Page Load by 50% | Many optimization patterns for front-end, from HTTP transportation, to asset fetching order, to caching locally (and avoiding conflicts with new state updates) |
How Instagram Scaled to 14 Million Users With Only 3 Engineers | Postgres: pgbouncer, ID strategy for finding correct shard, (stateless) Django, Gearman, etc. |
Java Pattern: Algebraic Data Types | Using the visitor pattern to mimic ADT in a relatively readable manner, despite Java™ |
LISP in Space | Debugging hardware in orbit |
Unix and Google | 'Coding at the perimiter', an approach to tackle the n^3 matrix of system ✕ feature ✕ platform - write programs that work together (pipes, everything-is-a-file, etc.). Examplifies with Multics vs UNIX |
Using A Genetic Algorithm For Table Seating | A solver with an interesting UI: choose between a timeout or a certain number of generations |
War rooms vs. deep investigations | A debugging journey lasting a couple of weeks, of a Facebook crash |