Books that shaped how I think about software, decisions, and behavior. Grouped by what they changed rather than when I read them. See also the mental models and behaviour change sections for where these ideas show up in practice.
How to think clearly
Books about decisions, biases, and making fewer predictable mistakes.
- Thinking, Fast and Slow — Daniel Kahneman. The book that made me notice how often System 1 runs the show.
- Poor Charlie’s Almanack — Charles T. Munger. Mental models as a latticework; the reason the /models section exists.
Embracing uncertainty
Nassim Nicholas Taleb’s Incerto series, read roughly in order. Changed how I think about risk, robustness, and what “planning” actually means in systems that surprise you.
- Fooled by Randomness — why we see patterns in noise.
- The Black Swan — why the events that matter most are the ones you did not predict.
- The Bed of Procrustes — aphorisms on what we hide from ourselves.
- Antifragile — things that gain from disorder, and how to build more of them.
- Skin in the Game — why symmetry of risk is the only honest incentive.
Shipping software
What actually works when you need to deliver, maintain, and improve software with other people.
- The Phoenix Project — Gene Kim, Kevin Behr, George Spafford. DevOps as a novel; the constraints are always where you do not look.
- The DevOps Handbook — Gene Kim, Jez Humble, Patrick Debois, John Willis. The practical companion to The Phoenix Project.
- Scrum — Jeff Sutherland. Useful as a starting framework; less useful as a religion.
- Grokking Algorithms — Aditya Bhargava. The gentlest introduction to algorithms I have found.
Craft and practice
- Kaizen — Masaaki Imai. Continuous improvement as a habit, not a project.
- Learning Python — Mark Lutz. The reference that got me past copy-paste scripting.
- The Rust Programming Language — Steve Klabnik, Carol Nichols. The official book; still the best entry point for Rust.
Outside software
- Het Zeilboek — Jan Peter Hoefnagels. The Dutch sailing manual. Not everything has to be about code.