My Reading List

This is a collection of software engineering and engineering management books that I have read and would recommend to others.

Generic Books

Books that I recommend to anyone, engineer or manager.

Engineering Books

These are books I learned a lot from, as a software engineer.

★★★★★

  • Clean Code: A Handbook of Agile Software Craftmanship A reference book of coding best practices/patterns for a healthy codebase with some case studies. I read this book after having about five years' professional coding experience. It changed how I approached code readability, testing, and maintenance.
    • A Philosophy of Software Design Well-written, practical advice on how to build good software. The lessons come from the author teaching semester-long courses at Stanford, and observing the most common mistakes people made, and ways they created more complex software than necessary. This book is a refreshing take on software design. It's a humble and useful read and will spark thoughts for anyone reading it.
  • Working Effectively with Legacy Code Legacy code has no test and is not written to be testable. Touching it this sphaghetti code somewhere breaks the system. And to refactor safely, we'd need to have tests first... but where to start? This book gives practical suggestions.
  • C# in Depth. C# is the language I probably understood down to the nitty-gritty details. Just when I thought myself of being an expert - knowing all that is to know on memory allocation, garbage collection, LINQ - I read this book. It made me realize how many things I did not know. I found the parts on how C# implemented generics under the hood and the sections on covariance and contravariance especially memorable.
  • Javascript: The Good Parts - Before this book I used to think that Javascript is "bad" or a "hacky" language. This book changed my perspective, understanding some tradeoffs and some remarkable strengths of this weakly typed language that is starting to take over the world.

★★★★☆

  • Release It! Design and Deploy Production-Ready Software - A useful read for more experienced engineers and those wanting to improve architecture and devops skills on designing and operating reliable systems. The content is excellent, but the book is not designed to be read in one sitting.
  • Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries - An eye-opening view on considerations going into building a widely used public API or reusable library. While the book focuses on the .NET framework, many of the conventions apply to maintainable and reusable components, in general. This book had an outsized impact on me as I read it when I was a mid-level .NET developer. The book is a bit dated, but its contents are still valuable.

★★★☆☆

  • Software Architecture Patterns by Mark Richards - a lightweight introduction to common design patterns that can be read in one sitting. Covers layered, event-driven, microkernel, microservices and space-based architecture.

(Engineering) Management Books

These are books that helped me level up, being a tech lead and engineering manager.

★★★★★

  • The Manager's Path - a short reference handbook for managers at all levels.
  • An Elegant Puzzle - a long overdue read for engineering leads. The most hands-on read on engineering management I've picked up. See my in-detail review and book notes.
  • The Goal - written in the '80s, yet a timeless novel on what management is about, may that be a manager of a team, an organization or an industrial plant.
  • The Five Dysfunctions of a Team - a hard to put down story about a company struggling and how the leadership team comes together under a new leader, doing small things that end up making big differences.
  • Turn the Ship Around - a novel on empowerment, teamwork and breaking down the hierarchical structure. All of it taking place onboard a nuclear submarine (really!).
  • The Phoenix Project - a novel inspired by the Goal, this time playing inside an enterprise in 2010.

★★★★☆

★★★☆☆

  • First, Break all the Rules - Gallup interviewed thousands of high-performing teams and managers and found a dozen of things each of these teams had in common. While the insights are good, the content itself was quite dry for my taste.

Distributed Systems Books

These are books that helped me level up, being a tech lead and engineering manager.

★★★★★

★★★★☆

  • Site Reliability Engineering: How Google Runs Production Systems - Hardcover & (free) online book - a good overview of SRE at Google. For those who worked at places with oncall, much of the first part of the book will likely be very familiar. Keep in mind that your mileage might vary: what works at Google scale, might not be the ideal fit for your use case.

Newsletters

Curated nwsletters are my preferred way to stay up to speed with what's new and relevant on software engineering. I've tried out many newsletters and here are my favorite ones, which I keep reading though every week. (Note: I also send a newsletter on engineering, tech leadership and distributed systems once a month).

Tech Leadership

  • Software Lead Weekly by Oren Ellenbogen, VP of engineering at Forter. Five articles per week on technology and leadership. 22,000+ readers.
  • Engineering Impact, curated by the team at GitPrime. Five articles per week on technology and leadership. Read by 15,000+ engineering leaders.
  • Level Up from Pat Kua, Chief Scientist at N26. 15-20 interesting links on leadership, tech, organisations and processes.

Software Engineering

  • Programming Digest, curated by Jakub Chodounsky, CTO at Hatch. One email per week, 5 links of programming, big data, architecture, development processes and databases. 5,500+ subscribers.
  • The Pointer. A reading club for software developers, curated by Suraj Kapoor, fullstack engineer, product person and former VC. 10-15 links with a concise tl;dr; for each article. 7,000+ subscribers.
  • Software Weekly. The newsletter accompanying the Software Engineering Daily podcast, curated by Abdallah Abu-Ghazaleh. A recap of top episodes for the week and another 10 interesting picks on software engineering and architecture.
  • iOS Dev Weekly. A high-quality newsletter on everything iOS and Swift with lots of easily digestible content. 40,000+ readers.

Note: As an Amazon Associate I earn a small amount from qualifying purchases.