Book recommendations

Reading books is a great way to cut throught the endless sea of poorly written and unfocused articles online. They're curated, edited and maybe even coherent. Beyond learning "how to code", many high level pursuits, software engineering, arcitecture, management, principles, philosophy − these are often best found in books.

It is not lost on me though, that despite increasingly searching out for these options, many go unfinished. Despite that, those books listed here are essentially recommended.

Hopefully through these recommendedations, you can share in some of my favorite sources of knowledge around these topics.

If you have a wonderful book recommendation for me, feel free to share.

Docs for Developers: An Engineer’s Field Guide to Technical Writing
Jared Bhatti, Zachary Sarah Corleissen, Jen Lambourne, David Nunez, Heidi Waterhouse

While working on an internal platform, I felt like my docs were good but not good enough. I wanted my docs to help folks coming to the repositories have a vital anchor in their search for understanding. Without a technical writing on our team, this book was the next best option. In many ways, my docs were already tailored towards the lessons this book shares with you, however it gave me book based evidence to share with others to help the cause. If you have given a lot of consideration on what makes you happy with regards to developer documentation, then you may not need this. Keep in mind this is more conceptual and does not go out of its way providing reusable templates or bullet lists of things you must put into your README.md. Instead, it guides you through scenarios so you consider the incoming personas and where they are in their journey, so you can prepare them the best way suited to their needs.

Empowered: Ordinary People, Extraordinary Products
Marty Cagan, Chris Jones

An engineering manager I follow on Twitter shared some photos of passages from the book he was reading. Those passages resonated quite well, so onwards to reading. I think what Empowered offers is a confirmation that building a product is more than having a bunch of managers, a bunch of computer types and a bunch of people who talked to a customer casually three weeks ago sit in a room, and poof, the money comes flying out of the sky. At the same time, while I think this book discusses many value philosophical of building software in the 20's, it also has the same kind of agile or else vibe to it that books likely had (and consulting pitches of today have). Putting Product Managers in key positions without autonomy and agency is no more panacea than Agile Coaches and Scrum Masters were.

Staff Engineer: Leadership beyond the management track
Will Larson

This still a work in progress book for me. When you are in school, you often feel like that you're a junior and then a senior -- at the peak -- but then suddenly you are a freshmen again. At work, you think, I am senior engineer… finally… but wait, what is next? Staff Engineer is written by Will (same author as An Elegant Puzzle as noted below), and it shares the non-manager pathway to continued career progression.

The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition
David Thomas, Andrew Hunt

A good friend recommended this book during its prerelease phase, and the week of release I picked it up. For an engineer programming for a few years, if engaged in philosophical "Am I really doing this right?" mixed with sufficient work variety, this book will likely reaffirm many of your approaches. Being the 20th anniversary edition of the original book, there are refreshed examples, even some using Elixir, and many older C and Java examples have either been removed or revised to keep up with modern approaches. This is a good book for an at-work bookclub -- the chapters are short enough for a weekly meetup, but has enough material and relatability that everyone can offer some perspective during discussions.

This book is not prescriptive, if you disagree with a portion, that is fine, you just need to know why.

An Elegant Puzzle: Systems of Engineering Management
Will Larson

I think I learned of this book through the occasional HackerNews book thread. Entering into a pseudo-management position at the time, it caught my eye. During my reading of An Elegant Puzzle, I felt philosophical alignment with Larson, while at times I think he stretched his advice too far and left the argument hanging without a conclusion or justification. Definitely a recommended read for intermediate and senior engineers, and of course those looking towards management. Finally, all of this is to say nothing of its well made printing − Stripe Press has gone out of its way to make a beautiful hardcover, with many full color pages, on thick paper stock.

The Systems Bible: The Beginner's Guide to Systems Large and Small Paperback
John Gall

The Systems Bible is a strange book, in my opinion. It uses irony, exageration and some mix of satire and parody to portray how complexity piles up in systems and what that means.

The Rust Programming Language
Steve Klabnik

Rust's entire "introduction to rust" book is available online for free, but it is great having that in physical book format. For my purposes, it serves more as a reference to various examples I use to base specific implementations, or to refer to terms to search for elsewhere.

The Design of Everyday Things: Revised and Expanded Edition
Don Norman

As a part of a college reading list for a human computer interaction focused course, The Design of Everyday Things tells the story about the human factor in design. Norman explores core tenets of design, affordances, signifiers, mappings and more. While obviously aimed towards frontend inclined engineers, backend engineers may benefit being exposed to this mode of thinking.