
For years, companies have rewarded their most effective engineers by suggesting they move to a management position. But treating management as the default -- or only -- path for an engineer with leadership ability doesn't serve the industry well. The staff engineer path allows you to contribute at a high level, with more free time to drive big projects, determine tech strategy, and raise everyone's skills. With this in-depth book, author Tanya Reilly shows you ways to master strategic thinking, manage difficult projects, and set the standard for technical work. You'll learn how to be a leader without direct authority, how to plan ahead so that you're making the right technical decisions, and how to make everyone around you better, all while still leaving you time to grow as an expert in your domain. In three parts, you'll explore the three pillars of an engineer's job: Big picture thinking: learn how to take a broad, strategic view when thinking about your work Project execution: dive into tactics and explore the practicalities of making projects succeed Being a positive influence: determine the standards for what "good engineering" means in your organization.
But here are some titles:
* Kleppmann, Designing Data-Intensive Applications
* Nand2Tetris. Computers from first principles, often fills in a lot of gaps. Possibly preceded by Code: The Hidden Language of Computer Hardware and Software if they need even more grounding.
* SICP if I think they'd be ready for it
* Crafting Interpreters
* If they're working with Python I'd give them Fluent Python by Luciano Ramalho. For whatever other language(s) pick a book that allows them to go from intermediate to advanced in that language and really understand it inside out.
* Ousterhout, A Philosophy of Software Design
* Data and Reality
* The Staff Engineer’s Path by Tanya Reilly to demystify the upper IC track. Or The Manager's Path by Camille Fournier.
It appears to be much easier to advance in one's career as a self-doubting woman than a self-doubting man. This is probably because women are expected to have a high degree of self doubt and there is no assumption that they are defective if they admit to it.
And management is absolutely more prestigious and better compensated than IC work, despite what some may claim.
Does "CTO" mean you are the tech lead of a small (single team) engineering organization? Then everything written for staff engineers applies. E.g I've heard good things about "Staff engineer's path" by Tanya Reilly.
Does "CTO" mean you are leading an org that is too large to be hands-on with tech, and need to build an effective structure and culture? Then I second the recommendation for "an elegant puzzle" by Will Larson.
Or does "CTO" mean that you switched from being an engineer to managing a team of engineers? Then everything for new managers applies, for starters I'd recommend "Becoming an effective software engineering manager" by James Stanier, or "Engineering management for the rest of us" by Sarah Drasner.
For some good general material, I'd also recommend the resources that Gergely Orosz makes available for subscribers to his "pragmatic engineer" newsletter. Those are templates for the kind of documents and processes you will most likely need - if you're new to the role, you will not go too wrong by using them, and if you want to create your own they are excellent starting points.
Goodreads link: https://www.goodreads.com/book/show/63079576-the-staff-engin...