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 |
| 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. |
| How Notion Scaled to 100 Million Users Without Their Database Exploding | Doubling down on Postgres, scaling horizontally using shards and pgbouncer |
| 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 |
| Making services in an emergency | UK government guidelines on how to build a servce when time is of the essence |
| Rich Already Answered That! | Rich Hickey discusses the design of Clojure in depth |
| 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 |