
Books that shaped my thinking as a software engineer — from system design to psychology and productivity.
A curated list of books I've read or plan to read. These have directly influenced how I think about system design, team dynamics, and building better software.
Currently Reading
- Designing Data-Intensive Applications by Martin Kleppmann — The definitive guide to distributed systems, replication, partitioning, and transactions. Most of my distributed systems blog posts are notes from this book.
- Actionable Gamification by Yu-kai Chou — Framework for understanding motivation and engagement beyond superficial points/badges.
Already Read
- The Well-Grounded Rubyist by David A. Black & Joseph Leo — Deep understanding of Ruby's object model, blocks, procs, and metaprogramming. Essential for anyone writing Ruby professionally.
- Influence: The Psychology of Persuasion by Dr. Robert B. Cialdini — Six principles of persuasion that apply to everything from product design to negotiation.
- The Speed of Trust by Stephen R. Covey — How trust impacts team velocity and organizational effectiveness.
- Refactoring UI by Steve Schoger & Adam Wathan — Practical UI design tips for developers. Changed how I approach frontend work.
- Ikigai — The Japanese philosophy of finding purpose at the intersection of passion, skill, demand, and livelihood.
- Clean Code by Robert C. Martin — The classic on writing readable, maintainable code.
- Getting Things Done by David Allen — Productivity system for managing complex projects without losing track.
On My List
- Continuous Delivery by Jez Humble & David Farley — CI/CD pipelines, deployment strategies, and release engineering.
- Head First Design Patterns by Eric Freeman — Design patterns explained through visual, engaging examples.