Books for the Technical Path?

I got emailed a request for ideas for books to read for leaders who were looking to stay in more hands-on technical roles. While my book, The Manager’s Path, might be useful for many people in those roles it was not written directly for that audience, and I haven’t been in that job for a long time myself. So I took to the tweets

and here’s what I found:

Becoming a Technical Leader: An Organic Problem-Solving Approach, by Gerald M Weinberg, was a popular recommendation. I was so intrigued by the description that I am going to buy a copy myself!

Another crowd favorite was a bit of a surprise, The Site Reliability Engineering Book from Google. I have heard some mixed reviews but I suspect that for those who are perhaps used to developing away from operational considerations this book is a good overview of core concepts that are implemented to greater and lesser extent in most mature technical teams. It also has a lot of strategies for how to approach big sweeping technical problems (which come up a lot in operations/reliability teams) so I can see the value in learning those strategies.

Designing Data Intensive Applications is a great book for anyone who is looking to focus their technical career on thinking about engineering systems dealing with a ton of data. It helps that its author, Martin Kleppmann, is a brilliant chap who is also very kind and an all-around pleasure to know.

Other recommendations were The Design of Design and Domain Driven Design. There are a lot of software architecture and practices books out there that you could read. I recommend that you browse some until you find the one that sticks with you the best. Good software architecture is really about recognizing and applying patterns with both a vision for what could happen and a firm grounding in reality and what is actually happening now.

Whenever people ask me for what I have read that had an influence on my purely technical career I point to an odd paper. Shared Memory Consistency Models: A Tutorial, by Sarita V. Adve and Kourosh Gharachorloo. Internalizing this paper in graduate school probably made me the pedantic nerd I am today. Not sure it will help you become a great technical leader but it might help you do a slightly better job with your distributed systems consistency modeling.

Don’t forget to go beyond the technical; leadership generally requires there be people that you are leading, so no matter how sharp your technical skills, you can’t avoid all the squishy human bits.

Ultimately, I’m not actually sure that most of these books really answer the question of what the “path” for individual contributors or more purely technical leaders looks like. I guess I shouldn’t be surprised, since there wasn’t really anything like that for engineering managers (an arguably easier audience) that I knew of when I wrote my book. But maybe one of these books will give you some ideas, and for everyone who is earlier in their tech career and wants some ideas on how to develop as a higher-level thinker in tech, you could do worse than to read some of these books.

Anyway, check out the twitter thread for several more recommendations (including another one by a friend, Coders At Work by Peter Seibel, which I really need to read). And let me know which ones end up helping!