The Compleat Developer

I’ve been curating a list of books and articles about the non-technical side of working as a software engineer in industry. Most of the books are ones I’ve mentioned before in posts here.

For some software engineers being a generalist means more than being able to write code for different parts of a software stack. Generality goes beyond the technical. You feel an urgent need to understand the entire value chain, from sales and marketing to product management to operations. You need to understand why. You enjoy interacting with people whose primary concern is not building software. You want to meet those people where they are and speak their language. You think in terms of a broad space of technical and non-technical solutions, and not in terms of algorithms and data structures. You know that more software is not always the answer, and the ability to communicate well is the most effective tool you possess.