Readings


A curated list of books, articles, and resources I return to when thinking about software engineering, system design, and the craft of building things.

Books

  • A Philosophy of Software Design

    John Ousterhout's guide to managing complexity in software systems. The concept of 'deep modules vs. shallow modules' is one of the most practically useful mental models I've found.

  • Designing Data-Intensive Applications

    Martin Kleppmann's deep dive into the principles behind reliable, scalable, and maintainable systems. Essential reading for anyone building distributed systems.

Articles

  • The Grug Brained Developer

    A beloved meditation on complexity and simplicity told from the perspective of a developer who deeply fears the complexity demon. Required reading.

  • The Wrong Abstraction

    Sandi Metz on why 'duplication is far cheaper than the wrong abstraction' — a short post that permanently changed how I think about refactoring.

Other Resources

  • Coding Horror

    Jeff Atwood's long-running programming blog. One of the formative voices on what it means to write software thoughtfully and with care for the humans who read it.

  • Martin Fowler's Bliki

    A continuously updated collection of essays on software design, architecture, and process. The entry on strangler fig pattern alone is worth bookmarking.