HomeArticlesSpeakingBooksAbout

Recommended Books

These are my favorite books to help you grow your technical skills and learn to grow in your career.

General and easily approachable books are at the beginning of the list and more specialized books for further career stages are at the end.

Essentials

The Pragmatic Programmer

This is my #1 recommendation for any software developer. It will give you insights and tips no matter what stage of your career you might be at.

It covers a huge variety of topics from coding techniques to career advice.


The Complete Software Developer's Career Guide

The go-to book for getting a grip around growing and owning your career in general.

This book has great content for any level of developer.


Never Split the Difference: Negotiating As If Your Life Depended On It

It might seem weird to have this listed 3rd 🤔. But, negotiation skills can help skyrocket your career by learning how to get buy-in from other people, negotiating with managers whether you should do some major refactoring, improve your ability to negotiate salary, etc.


Intermediate

Working Effectively with Legacy Code

Let's face it: most developers will have to deal with really messy legacy codebases. How do you deal with these? This book will help you navigate these kinds of systems and also give you tons of tips around building quality and maintainable software.


Refactoring: Improving the Design of Existing Code

You need to know how to improve the quality of your code or else it will rot! This is the classic go to (second edition is all in JavaScript).


Clean Architecture: A Craftsman's Guide to Software Structure and Design

Intermediate developers should start getting a handle on general architectural patterns and what a good architecture looks like, what benefits come from it, etc. This is a solid overview and approach in one book.


Senior

Building Microservices: Designing Fine-Grained Systems

A great introduction to thinking about building and dealing with complex systems. It's very broad in it's reach - which is a good thing as an introductory book.

It should help you to start thinking about different ways to approach complex systems.


Patterns of Enterprise Application Architecture

Martin Fowler is one of my favorite developers to learn from. This is for any senior developer who's looking to grow in building more complex and large ("enterprise") systems.


Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

One of the key traits of a great senior developer is that they have a very broad knowledge of patterns that address certain problems. This book is fantastic for getting familiar with some advanced messaging patterns. Not to know them all in depth, but to know where to look when you need them.

But, if you do study the patterns closely in this book, you'll level-up your architecture and systems knowledge fast!