In my first few years as a developer I assumed that hard work was all I needed. Then I was passed over for a promotion and my manager couldn’t give me feedback on what areas to improve, so I could get to the senior engineer level. I was frustrated; even bitter: not as much about missing the promotion, but because of the lack of guidance.
By the time I became a manager, I was determined to support engineers reporting to me with the kind of feedback and support I wish I would have gotten years earlier. And I did. While my team tripled over the next two years, people became visibly better engineers, and this progression was clear from performance reviews and promotions.
This book is a summary of the advice I’ve given to software engineers over the years – and then some more.
This book follows the structure of a “typical” career path for a software engineer, from starting out as a fresh-faced software developer, through being a role model senior/lead, all the way to the staff/principle/distinguished level. It summarizes what I’ve learned as a developer and how I’ve approached coaching engineers at different stages of their careers.
We cover “soft” skills which become increasingly important as your seniority increases, and the “hard” parts of the job, like software engineering concepts and approaches which help you grow professionally.
The names of levels and their expectations can – and do! – vary across companies. The higher “tier” a business is, the more tends to be expected of engineers, compared to lower tier places. For example, the “senior engineer” level has notoriously high expectations at Google (L5 level) and Meta (E5 level,) compared to lower-tier companies. If you work at a higher-tier business, it may be useful to read the chapters about higher levels, and not only the level you’re currently interested in.