My Reading & Listening List

This page is based on the reading list from Gergely Orosz. I think it’s a splendid format to share books that I recommend.


The list below is a collection of software engineering and engineering management books I have read and recommend to others.

Engineering Books

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

★★★★★

  • Grokking Algorithms. A great intro or a refresher for all the algorithms you’d likely need to use at a tech company. This book breaks down complex algorithms into digestible pieces with clear examples, making it ideal for both beginners and experienced developers.
  • Clean Code - A book of coding best practices/patterns for a healthy codebase with some case studies. I read this book after having about five years of professional coding experience, and it changed how I approached code readability, testing, and maintenance. It’s a must-read for anyone serious about writing quality code.
  • Domain-Driven Design - Great book to learn all the basics from DDD. You can learn a lot from ubiquitous language to bounded context in this book. It’s especially useful for tackling complex software projects by aligning your code with business needs.

★★★★☆

  • Refactoring - A book by Martin Fowler. It has unique patterns for refactoring your code smart and iterative. It’s a must-read for every engineer. This book provides a catalog of refactoring techniques, helping you improve the design of existing code without changing its behavior.
  • Clean Architecture - From the same writer of Clean Code, this book covers the architecture gotchas that we need to be careful of. It also gives us many tips on how to build effective architecture. It’s an essential read for anyone involved in designing scalable and maintainable software systems.
  • 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 on-call, much of the first part of the book will be very familiar. Remember that your mileage might vary: what works at Google scale might not be the ideal fit for your use case. It offers deep insights into the practices and principles of running reliable production systems.
  • Staff Engineer - This book provides a roadmap for senior individual contributors looking to make a larger impact on their teams and organizations. It offers practical advice on leadership, technical strategy, and career development for staff engineers.

(Engineering) Management Books

These books helped me level up as a tech lead and engineering manager.

★★★★★

  • The Manager’s Path - A concise guide for managers, from tech lead, through line managers, managers of managers, all the way to CTO. It offers practical advice and real-world examples to help you navigate the challenges of engineering management at various levels.
  • The Phoenix Project - A novel inspired by The Goal, this time playing inside an enterprise in 2010. It provides valuable insights into DevOps and the importance of effective IT management through an engaging story.
  • An Elegant Puzzle - A long overdue read for engineering leads. The most hands-on read on engineering management I’ve picked up. Apart from the book, the Recommended Papers section in the appendix lists excellent engineering reads. See my in-detail review and book notes for more insights. This book covers a wide range of topics, from team dynamics to scaling organizations effectively.

★★★★☆

  • The Engineering Executive’s Primer - This book provides foundational knowledge and practical strategies for engineering executives. It covers various aspects of leadership, strategic thinking, and organizational development, making it a valuable resource for aspiring and current engineering leaders.

Newsletters

Curated newsletters are my preferred way to stay up to speed with what’s new and relevant in software engineering. I’ve tried out many newsletters, and here are my favorite ones, which I keep reading through 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. 23,500+ readers. This newsletter provides a curated selection of articles that help you stay updated on the latest trends and best practices in tech leadership.
  • Level Up from Pat Kua, Chief Scientist at N26. Another brilliant persona that I had the privilege to work with. His newsletter offers 15-20 exciting links on leadership, tech, organizations, and processes. Pat’s insights are invaluable for anyone looking to grow as a tech leader.
  • The Weekly Hagakure by Paulo André, previously director of engineering at HelloFresh, I worked with. A weekly newsletter with three articles, two videos, and one book recommendation for technical leaders. Paulo provides a balanced mix of content that is both informative and inspiring.

Software Engineering

  • Changelog - Interesting weekly links about what’s happening in the engineering industry. This newsletter keeps you informed about the latest developments, tools, and technologies in the software engineering world.

Podcasts

I frequently listen to the below podcasts.

Tech Leadership

  • The Critical Channel - A podcast I co-host. It’s about leadership, culture, and much more. We delve into various aspects of tech leadership, sharing our experiences and insights to help you become a better leader.

Software Engineering

  • The Ladybug Podcast - A fresh take on the industry with three women software engineer hosts. Shorter episodes every week or two. This podcast offers diverse perspectives on software engineering topics, making it a refreshing listen.
  • Kubernetes - Weekly news and interviews from the Kubernetes community. Stay updated with the latest news and insights from the world of Kubernetes, directly from experts and community members.
  • Go Time - A weekly podcast with various discussions around the Go community. Whether you’re a seasoned Go developer or just starting out, this podcast provides valuable discussions and insights into the Go programming language and its ecosystem.