Andrew Huth

My Staff Software Engineering Reading List

After reading Four books professional developers should read, by Phil Eaton, I was inspired to write my own engineering reading list.

Originally I thought of this as a “staff engineering” reading list, because I probably wouldn’t have appreciated these earlier in my career. When starting out, my reading was mostly about the specifics of using Ruby on Rails, HTML, and CSS. Which was great, and worked well for me.

But while the books in this list have been useful for me as an engineering leader, anybody at any level can get a lot out of them. Here they are:

  1. A Philosophy of Software Design, by Jon Ousterhout (ISBN 13: 978-1732102200).

    A pretty short book about what abstraction is, and how to make good abstractions. Even though the examples are written in C++, this has been very relevant to me for thinking about React components and design systems.

  2. Mastery Teaching, by Madeline Hunter (ISBN: 978-0761939306).

    A book about classroom teaching? Oh yes. So much of my job is teaching. Not only by instructing others, but also by presentations and documentation. Madeline’s masterpiece is full of ideas that I use every day.

  3. The Pyramid Principle, by Barbara Minto (ISBN: 978-0960191031).

    I’m still working through this one, which is about how to structure your ideas when writing or presenting. What’s nice is even though it comes from management consulting, it’s not about persuasion or influence. It’s about communicating your ideas in the clearest way possible. Communication is a large part of being an engineering leader.

  4. An Elegant Puzzle, by Will Larson (ISBN: 978-1732265189).

    A book about engineering management may seem unusual for a list of staff engineering books. I’m not advocating for engineers to take on management tasks (unless they want to). But there is a lot of overlap, and this book does a great job outlining approaches for things like managing technical migrations, onboarding, and team dynamics.

Two others that are great for specific interests are

Most of these aren’t actually about writing code. For experienced engineers, technical skill is important. But also a given.

We’ve gotten to where we’re at in part because of technical skill. The next level, however, also requires some more people, organization, and communication skills. These books have helped me be more effective.

What do you think about these books? Which ones have been helpful for you? Are any missing from the list? Let me know!