AK / PORTFOLIOLibrary

03 / Library

Things I keep coming back to.

Books, papers, and talks that shaped how I think. Not a Goodreads dump — a small shelf I actually reread, each with a one-paragraph reason to be here.

11 entries/4 sections/shelf last touched July 2026

Books

  1. Designing Data-Intensive Applications

    Martin Kleppmann/2017

    The clearest map I've read of the trade-offs behind every “we picked X” decision — replication, consistency, batch vs stream. Every backend case study on this site owes it something.

  2. A Philosophy of Software Design

    John Ousterhout/2018

    Short book, sticky ideas. “Deep modules” is the vocabulary I now reach for whenever I'm arguing about API surface area or premature abstraction.

  3. The Design of Everyday Things

    Don Norman/1988

    The book that made me stop blaming users. If a person is confused, the product is broken — not them. Half of my accessibility instincts trace back to this.

  4. Working Effectively with Legacy Code

    Michael Feathers/2004

    Convinced me the harder skill isn't writing code from scratch — it's changing code you don't own without breaking it. Still the most useful book I've read about being on a team.

  5. On Writing Well

    William Zinsser/1976

    Applies to code comments, PRs, case studies, and Slack messages. The best programming book that isn't about programming.

Papers

  1. Out of the Tar Pit

    Ben Moseley & Peter Marks/2006

    Names the disease — accidental complexity — with a rigour I hadn't seen elsewhere. I reread it once a year and something new lands each time.

  2. A Note on Distributed Computing

    Waldo, Wyant, Wollrath, Kendall/1994

    Old paper, still right. “The network is not transparent” is the sentence I've quoted most in design reviews. Anyone shipping distributed systems today is still relearning it.

  3. No Silver Bullet

    Fred Brooks/1986

    Every generation of tooling promises to make software easy. Brooks explained — forty years ago — why it won't. Every generation is surprised again.

Talks

  1. Growing a Language

    Guy Steele/1998

    The most elegant argument I've seen for why the users of your abstraction become its co-authors. Also the most disciplined 40-minute talk I've ever watched.

  2. Simple Made Easy

    Rich Hickey/2011

    Split my vocabulary in two. “Simple” and “easy” are not the same thing, and confusing them is what makes codebases expensive to live in.

On the desk

Currently reading
  1. The Making of Prince of Persia

    Jordan Mechner/2011

    A programmer's journal, published verbatim. It's a good reminder that great things get built between the doubt paragraphs, not despite them.

Command palette

Search and jump to any page.