Books perfect as reading or gifts during the end-of-year break for those working in tech. 102 book recommendations.
I’ve always found books are an underrated way to learn something new. Great books contain years of hard-earned experiences compressed into what you can read in hours. However, you do need to give hours-long attention to them. This allows books to convey ideas that shorter-form content like Twitter, blogs, or even this newsletter can not do.
With the holidays coming up, it was me who asked the question on Twitter:
What are the best books you've read as an engineering manager or software engineer this year?— Gergely Orosz (@GergelyOrosz) December 13, 2021
Books that taught you something new related to your job, provided inspiration, ideas.
People replied with titles that taught them something new related to work, provided inspiration or ideas. I’ve collected the most-mentioned books with a quote from a reviewer - either the person recommending it on Twitter, or one from one of the most helpful reviews.
⭐ I’m marking books that are also my choice with a star. These are books I've read and would also recommend.
Books by genre
- Engineering management
- Engineering leadership and organization design
- Software engineering careers
- Software engineering interviews
- Software engineering
- Software engineering: specific domains or technologies
- Product and strategy
- Leadership and business
Become an Effective Software Engineering Manager by James Stanier. ⭐
“What I most like about the book is that it is a "modern", 2020 take on engineering management - with the focus being on the "hard to get right the first time" parts.” - my take. Read my longer review.
The Art of Leadership by Michael Lopp
"The "small things" are like finely crafted gemstones -- faceted and polished to focus their light of wisdom. Each small thing manages to capture and distill an “unspoken truth” about what makes effective management and leadership (as well as the difference between them!)"
The Making of a Manager by Julie Zhou
"The first half of the book is excellent and helpful for almost anyone. The second half of the book may be for you if you work at Facebook or a company very much like it."
Multipliers by Liz Wiseman & Greg Mckeown
"We've all worked with the opposite of multipliers, what the book calls 'dimishers' and this book gives helpful tips on how to develop the skills to be a multiplier."
High Output Management by Andrew S. Grove
"Former Intel CEO, Andy Grove's thoughts on management, what is important and what's not. He provides a detailed analysis of the methods he used to become the success he was."
Engineering leadership and organization design
Team Topologies by Matthew Skelton and Manuel Pais. ⭐
“As someone that has had to build teams, and not just manage them in an existing structure, it was game changing for me” - John Wards, head of engineering at The Economist
The DevOps Handbook by by Gene Kim, Jez Humble, Patrick Debois, John Willis and Nicole Forsgren
“Describes the essence and philosophy of DevOps with real-world examples.” - Edwin Torres, software engineer at MITRE
Ask Your Developer by Jeff Lawson
“Not just because the philosophy behind it is spot on, but also because it hit the nail on the head around the biggest problem in tech – estimating timelines and roadmaps.” - Ben Furfie, development manager at The Webinar Vet
Accelerate by Nicole Forsgren, Jez Humble and Gene Kim ⭐
"A study of thousands of companies, the development practices they use and whether they succeed or not."
The Mythical Man-Month by by Frederick Brooks Jr.
"It is remarkable how well this book has aged after 20 years. We continue to invent new methodologies and structural fads in the software and computing industry - and we continue to stub our toes and rediscover much of what is in this book"
Scaling Teams by Alexander Grosse & David Loftesness
"Packed with practical, battle-tested advice, Scaling Teams is an essential read for managers and founders seeking to grow their teams. Rather than present broad philosophical approaches to management, the book focuses on the practical"
Leading Lean Software Development by Mary and Tom Poppendiek
"Leading Lean Software Development speaks to a variety of leaders in an IT organization. While managers will benefit greatly, architects will also find great value."
Software engineering careers
Staff Engineer by Will Larson (ebook) ⭐
“Incredibly helpful in both better understanding how to operate at Staff+ and how to better support the sr engineers on my team as they move toward those roles.” - Luis Ramiez, engineering manager at Loom
Building a Career in Software by Daniel Heller
"Written by my former colleague at Uber. I like the opinionated and concise advice Dan presents across a variety of topics." - my take
The Effective Engineer by Edmond Lau
"This book changed how I approach problems and prioritize work. I've recommended it to everyone I work with."
The Pragmatic Programmer by David Thomas, Andrew Hunt
"I am reading in small chunks to give me time to thoroughly digest each nugget. It should be required reading for all programmers."
The Software Craftsman by Sandro Mancuso
"This author is a passionate developer who walked a long journey to mastery and is sharing with us all the real life stories, gotchas and mistakes that he (or people he worked with) made along the way."
The Passionate Programmer by Chad Fowler
"This book was a mixed bag of discussions about becoming a passionate programmer and advancing your career. Some of the tips were useful, while others were pure anecdotes from the author, not backed by much evidence."
The Missing README: a guide for new software engineers
"The Missing Readme covers all the practical aspects of day-to-day engineering that are not covered in most CS studies or technical books."
Growing as a Mobile Engineer by Gergely Orosz ⭐ - I wrote this book.
"This book concentrates on the career strategies instead of the technologies. It helps to connect the existing parts of a bigger mental model in my head."
Communication for Engineers by Chris Laffra. Chris was my colleague at Uber.
“A great introductory book on communication skills for developers, especially those early in their careers or developers whose career has hit a plateau.”
Software engineering interviews
Systems Design Interview: an Insider's Guide (also as an online course) ⭐
"I've so far not seen good book resources to prepare for the systems design / architecture interview. This book from Alex Xu is the most promising one as of yet." - my take. Read my full review here.
Grokking Algorithms by Aditya Bhargava⭐
"A great intro, or refresher for all the algorithms that you'd likely need to use at a tech company." - my take
Cracking the Coding Interview by Gayle Laakmann McDowell
"A classic to prepare for the data structures and algorithms interviews. The author, Gayle, trains large and small tech companies on how to do coding interviews well: she did this at Uber, where we made changes following her help." - my take
A Common-Sense Guide to Data Structures and Algorithms by Jay Wengrow
"This book got me to finally understand how quicksort works. I have a CS degree and a decade of work experience and to this day there was no resource that explained sorting as well as this book. I highly recommend this for interview prep."
A Philosophy of Software Design by John Ousterhout ⭐
“There are few books that discuss software design in a simple and approachable way, while leaving the reader novel and practical concepts to use. A Philosophy of Software Design is a standout and recommended read for this reason.” - my take. Read my full review here.
Designing Data Intensive Applications by Martin Kleppmann ⭐
"The most practical book I've found so far on distributed systems. It covers the different large scale concepts - both those that I've gone through in this post on distributed systems - together with real-world examples" - my take
Software Engineering at Google by Titus Winters & others. Read it for free here.
"Not targeting on algorithm, language, tools or libraries, it focuses on “Software Engineering” as a system, i.e., stuff that is not taught at any school. The book disambiguates “programming” from “engineering”, and walks through the hardest engineering challenge - how to scale."
Understanding Distributed Systems by Roberto Vitillo
"Fills the void between the deep theory and the 'interview preparation' focused books. The book walks through practical concepts like failure detection, replication, scalability, resiliency, and operating large systems. It's the book I'd recommend to start with if you have less hands-on experience with distributed systems." - my take.
Working in Public: The Making and Maintenance of Open Source Software by Nadia Eghbal ⭐
"The book gives a nuanced overview of the many communities and economics of open source, from the idealistic communities of 30 years ago that we usually think about to the modern GitHub era."
Seriously Good Software by Marco Faella
"It’s quite a good book about how to design a simple system and improve it from different perspectives."
Refactoring by Martin Fowler
"For those who don't know what to do when handed a bunch of legacy code, but don't know where to start, this book is for you."
The Timeless Way of Building by Christopher Alexander
“Discovering this book has changed how I think about building software more than anything I've ever read before it.” - Greg Hynds, software at Tesco
Thinking in Systems by Donella H. Meadows
"This book so simply and elegantly explains any and every problem, scenario, and reality out there. Once you read and understand it (which is so easy because meadows writes so straightforward and beautifully) you can't unsee all of the systems traps and levers that are being used in the real world everyday."
Good Code, Bad Code by Tom Long
"If you are a seasoned or a rookie software engineer, you will find a lot to benefit from."
Kill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones) by Marianne Belotti
"Despite the flashy title, this book does not urge to throw away “legacy code” but does a great job of dispelling the myths around it."
Implementing Service Level Objectives by Alex Hidalgo
"This book has transformed the way I view SRE. A definite must read for anyone working in the field."
The Architecture of Open Source Applications by Amy Brown & Greg Wilson
"This is a good book about real world software architecture and how it came to be. It consists of essays on many different software systems by the designers of those systems."
Code: The Hidden Language of Computer Hardware and Software by Charles Pretzold
"It is truly a book on code, and not just "how to code" or "what to do with code" but "what on earth is code" and where did it come from."
Dependency Injection Principles, Practices and Patterns by Mark Seemann & Steven van Deursen
"I thought I knew what dependency injection was until I read this book. The authors broke the concept down to its core and I finally understood the 'why' of DI, not just the 'how'. "
Software engineering: specific domains or technologies
Creative Selection: Inside Apple's Design Process During the Golden Age of Steve Job by Ken Kocienda
"This is the real deal, written by an insider (I was also there during that time). This book accurately describes Apple's software engineering during the second Steve Jobs era."
Androids: The Team That Built the Android Operating System by Chet Haase
"This is a fantastic book; not too technical for non-techy people (but in that case why would you read a book about the inception and delivery of Android?!) and delightful for techier people. I would warmly recommend this book to anyone interested in Android."
Building Mobile Apps at Scale: 39 Engineering Challenges by Gergely Orosz ⭐ - I wrote this book.
"An interesting journey for several important topics we need to tackle during the process of building mobile apps. All backed up by actual examples and references from Uber Engineering team."
Java Concurrency in Practice by Brian Goetz
“Goes into sufficient detail about Concurrency and is relevant for most languages, not just Java. Explains non-trivial topics in an understandable manner, something many CS books fail to do so.” - Preslav Mihaylov, software engineer at Bottlepay
iOS Unit Testing by Example by Jon Reid
"Outlines why TDD is so important to use prophylactically (in order to avoid headaches during development) and gives concise examples on how to use practically" - Özgün Yildiz, iOS engineer
Software Design for Flexibility by Chris Hanson
"This is a book for high-intermediate-to-expert Schemers. Extensive general programming experience and/or functional programming experience in, say, Python or Lua, will not cut it in the least"
Container Security by Liz Rice
"This is the best book I've read on the internal implementation of containers: cgroups, namespaces, and the other underlying linux constructs of containers."
API Security in Action by Neil Madden
"Incredibly detailed and modern approach to all things API security design. This is an industry reference that you will refer back to time and time again."
Threat Modeling: A Practical Guide for Development Teams by Izar Tarandach
"For those looking to understand the concepts of Threat Modeling and how to integrate it into development workflows, it is really well done. The ability to shift-left these concepts through continuous threat modeling is an important step in helping teams go faster, more securely."
Node.js Design Patterns by Mario Casciaro
"I have worked with NodeJS for a long time and this book is one of those books that works well for readers of all skill levels."
Driven: The Race to Create the Autonomous Car by Alex Davie
"This is the book about the origins of the self-driving car industry that I've been waiting for. Alex was at the right places at the right time with the right access and it shows."
Product and strategy
Inspired by Marty Cagan
"The best articulation of how to be successful in product management and how to create successful products that I have ever read."
Measure What Matters by John Doerr
"A great introduction to the origins of OKRs, followed by many examples of how companies and a nonprofit used OKRs to improve organizational effectiveness."
No Rules Rules: Netflix and the Culture of Reinvention by Reed Hastings
"How should a modern company run? We are told that a modern company needs to be customer centric, employee empowering, deliver broad stakeholder returns and with agility to move from one opportunity to the next. This book provides a provocative answer to these questions direct from the CEO."
The Hard Thing About Hard Things by Ben Horowitz ⭐
"If you’re planning to start a company, whether it’s a high-tech company or the kinds of companies that I started and ran, read this book. If you’re going to be someone in charge of anything in any kind of a company, read this book."
Escaping the Build Trap by Melissa Perri
"This book is about creating an effective product management organization. However, it is valuable to every team member, not only the product manager."
The Innovators Dillemma by Clayton M. Christense
"The book seeks to explain why certain businesses are successful in their ventures and why other firms fail in response to new technologies."
Trillion Dollar Coach by Eric Schmidt
"A book summarizing the lessons of legendary Silicon Valley business coach Bill Campbell."
Crossing the Chasm: Marketing and Selling Disruptive Products to Mainstream Customers by Geoffrey A. Moore
"If you've ever had an 'awesome' idea for a product or service and failed in its implementation (as I have several times), this book is like the advisor/counselor you wish you had when things were going off track."
The Mom Test: how to talk to customers and learn if your business is a good idea when everyone is lying to you by Rob Fitzpatrick
"Highly useful for product management and really cutting away the fat and the formality around customer interviews. Especially when it's a product that's been around and customers are quite familiar with it."
Good Strategy/Bad Strategy by Richard Rumelt
"If you aren’t sure what a strategy is, you would probably have your mind blown by reading the book. Having a strategy means you align all of your efforts in a cohesive design so that your scarce resources like time, energy, and money all reinforce one another."
Alchemy: the dark and curious science of creating magic in brands, business and life by Rory Sutherland
"Anyone who makes any kinds of product — software products, physical products, experiences, processes, workplaces, cultures, etc — will like this book."
Understanding Michael Porter: the essential guide to competition and strategy
"If you are a fan of Michael Porter's work, or you simply want to get a deeper understanding of competitive strategy – I cannot possibly recommend this book highly enough."
7 Powers: the foundations of business strategy by Hamilton Helmer
"This is one of the very best business and strategy books written in the past 30 years, up there with Innovator's Dilemma, Lean Startup and Good to Great."
Playing to Win: How Strategy Really Works by A.G. Lafley
"Playing to win discusses the way P&G and its brands approach strategy."
Creativity, Inc by Ed Catmull
"The intertwined stories of Ed Catmull and Pixar Animation."
Leadership and business
The Five Dysfunctions of a Team by Patrick Lencioni ⭐
“Teaches very basic concepts such as trust and attention to results but that are so often overlooked!” - Ludovic Heyberger, head of Mobile SDK, Contentsquare
Death by Meeting by Patrick Lencioni
"Similar to Patrick previous book, “The Five Dysfunctions of a Team”, this book is written as a novel which is used to build the framework of Patrick’s vision on how and when meetings should be conducted."
Invisble Women by Caroline Criado Perez ⭐
"I’m a man, and I knew the problems with women’s data not being collected and women’s needs not being met in the world were bad, but not THIS bad. There are many great sources of data for these claims throughout the book; so many, in fact, that I started to feel overwhelmed after a while."
Turn the Ship Around by L. David Marquet ⭐
"A novel on empowerment, teamwork and breaking down the hierarchical structure. All of it taking place onboard a nuclear submarine (really!)." - my review
Crucial Conversations by Kerry Patterson, Joseph Grenny, Ron McMillan, Al Switzler
"One of the most life-changing books I've ever read (and I'm a voracious reader). What you'll learn in this book applies to your personal and professional life."
Working Backwards by Colin Bryar & Bill Carr
“I thought all the skills needed to be in leadership positions were innate. It dawned on me there are tools/processes you can use to be successful. This clicked after reading the book.” - Rachel Bentley, software engineer at Datagrail
Radical Candor by Kim Scott
"A great read for anyone considering starting a company or for managers everywhere."
Just Work by Kim Scott
"Super recommended for any manager looking to create more inclusive, fun, just environments."
The Culture Code by Daniel Coyle
"If you want to create a high performance culture Daniel Coyle gives you plenty of examples of successful business cultures, failed cultures and why they failed."
So Good They Can't Ignore You by Cal Newport
"I had mixed feelings towards this book. It has a brilliant and very good premise, where following your passion is bad advice. Instead, you need to sweat to get to work you love, and that's captured brilliantly by the author in what he calls "career capital". He refers to a vast array of experiences and research to support his argument."
Connect by Carole Robin and David Bradford
"This book belongs in the top tier of practical books on leadership and emotional intelligence."
Dare to Lead by Bene Brown
“If you are a leader or aspire to be one, this book will speak to you on a very emotional level, particularly her chapter on “Armored Leadership.”
The 4 Stages of Psychological Safety by Timothy R. Clark
"Knowing psych safety is important and knowing what to do about it are very different things. This book enabled me to feel knowledgeable about the concepts, as they were simple and tangible, and confident to use them."
The Fearless Organization by Amy C. Edmondson
"Edmondson does nice job sharing her research, anecdotes from companies she has studied, and providing specific guidance to leaders who want to create Psychological Safety in their organization."
Teaming: How Organizations Learn, Innovate, and Compete in the Knowledge Economy by Amy C. Edmondson
"In Teaming, Amy Edmondson focuses on the process of creating a team, which she refers to as teaming."
Are Your Lights On?: how to figure out what the problem really is by Donald C. Gause & Gerald M. Weinberg
"This engaging little book helps you step back and see your problems from a broader perspective, which helps you solve them more effectively."
Thanks for the Feedback by Douglas Stone & Sheila Heen
"We have always focused on how to deliver feedback, but the authors are correct when they say all the control is really in the receivers hands. Switching the focus from giving to receiving could have more wide spread impact in our organization because we all get feedback but many of us don't have a lot of opportunity to give effective feedback."
The Art of Action by Stephen Bungay
"For anyone leading a product organization who wants to get the true value of agile and customer focused cross functional teams, this book is required reading."
Humble Inquiry by Edgar Schein
"A very good examination of the interpersonal and cultural dynamics at work in organizations and families: the balance between individual success and healthy team dynamics."
Sooner Safer Happier by Jonathan Smart
"Great and very practical book on how to successfully introduce or improve ways of working"
Think Again by Adam Grant
"The three hardest things to say in English are "I was wrong", "I'm sorry", and "Worcestershire sauce." Adam Grant can definitely help you with the first two."
Give and Take by Adam Grant
"This book is a case for giving: who gives, how to give, and where it takes us. There is one caveat to all this: it has to be authentic. Giving to get ahead is matching, not giving. People can see right through that."
The Coach's Casebook by Geoff Watts and Kim Morgan
"I enjoyed it for the archetypes of common issues that crop up in the coaching relationships."
The Righteous Mind by Jonathan Haidt
"The book was for me very illuminating for understanding the psychological and behavioral reasons behind our inability to get along with those we disagree with."
Nonviolent Communication by Marshall B. Rosenberg
"A wonderful solution to the problem of how to communicate pleasantly and effectively with other human beings and to how to considerably increase the chances of you getting your needs met and thus not feeling bad."
Extreme Ownership by Jocko Willink
"Most leadership books simply talk about how to lead those in your charge. This book reminds us to first lead ourselves, and own our actions."
The Infinite Game by Simon Sinek
"Starting from this premise, Simon Sinek's main contribution is to setup a framework to help you keep playing (remember you cannot win an infinite game) at the infinite game of life, supported with very illuminating examples from both past and present companies and entrepreneurs."
Managing Transitions by William Bridges
"The book has nice, concrete examples of poorly managed transitions (mistakes are useful to learn from)."
Never Split the Difference by Chris Voss
"This is one of the two best books anyone can read on negotiation. The other is Cialdini's famous, "Influence: The Art and Science of Persuasion." While there are many good books on the subject, I can't think of any others that are as complete and useful as these."
Note: for Amazon links I’m an affiliate, meaning I earn a small amount from qualifying purchases.
Featured Pragmatic Engineer Jobs
- Engineering Manager at Orbit. Remote (global).
- Full Stack Engineer at Clay. Remote.
- Founding Software Engineer at Bytebase. Remote (US). I'm an investor.
- Senior Backend Engineer at Brave Care. Remote (US) $150-200K + equity.
- Senior Software Engineer at CAST AI. Remote (EU) €54-96K + equity.
- Senior C++ Engineer at HOLOPLOT Plan. Berlin. €70-80K
- Senior site reliability engineer at Wave Money. Remote (global) $138-240K + equity.
- Software Engineer III at Ladders. Remote (US & EU).