10 Recommended Books for Senior Developers
Published on by David VanDusen.
I got a great message from a friend to ring in the new year.
“Can you give me a list of 10 books you’d recommend? I’d like them to be work related—like, what should a senior software engineer read? They don’t necessarily have to be technical. I know you have a number of leadership-related books you’ve recommended to me in the past.”
I decided to create a page for this list so that it can be shared more broadly. Here it is, not in any particular order.
1. Becoming a Technical Leader
Published in 1986 by Gerald M. Weinberg, this is one perspective on technical leadership. It’s an interesting read because it has advice that can be applied immediately, and shows a good example of approaching leadership methodically.
2. Clean Agile
Publishes in 2020 by Robert C. Martin, this gives a grounded education of what “agile software development” truly is. I wish more folks in the industry would read this book.
3. The Goal
Published in 1984 by Eli Goldratt, this well-written piece of fiction about optimizing systems is often cited in software engineering circles. Its value to a senior developer is to show the difference between the kind of thinking that the folks on the factory floor (in our case, devs writing features) do in comparison to folks thinking about the interconnection between the subsystems. That’s the kind of thinking that’s needed from senior devs.
4. Site Reliability Engineering
Published in 2017, this compilation of many authors’ work can be eye-opening to an application developer. It talks about many parts of delivering software to users beyond just making the app work.
5. Measure What Matters
Published in 2017 by John Doerr, this is a book about OKRs. Senior developers are at the point in their career where they start taking on team-level responsibilities. Understanding the complexities of aligning team goals with company goals is crucial for when you’re accountable for larger parts of the company’s systems.
6. The Coaching Habit
Published in 2016 by Michael Bungay Stanier, this book gives to-the-point advice on how to be a coach. As a senior developer, more junior colleagues look to you for guidance. It’s important to learn the value of coaching to help the folks around you grow.
7. Security Engineering
Published in 2020 by Ross Anderson, this book touches briefly on as much about security engineering as it can. I find that developers in the earlier parts of their careers know that security is something they need to consider, but don’t have the breadth of experience to feel confident that they’re making the right choices for the sake of security. This book reveals more mature ways of thinking about security risks.
8. Designing Data-Intensive Applications
Published in 2017 by Martin Kleppmann, this book fills a really common gap I’ve seen in application developers who haven’t had the opportunity to scale the systems they’ve built. Enjoy getting into the details with this one!
9. “Effective” programming books
For some reason, the books about programming languages that empowered me the most to build software that I felt was of superior craftsmanship had “effective” in their titles. Effective Java and Effective JavaScript at the time gave me so many useful tools for making my code clearer, more maintainable, and more performant. Look for an “effective” book for your language.
10. Staff Engineer
Published in 2021 by Will Larson, the content of this book is definitely for folks who have been senior developers for many years already. That said, it does a great job of explaining how the software developer job changes as you continue to do it, and what skills you’ll need to develop for the next career phase.