A Book on Growing as a Software Engineer

I'm writing a book for developers who want to grow to be better software engineers. Sign up to be notified when it's ready and get updates on its progress.

Who am I?

I'm a developer, who, after a decade of working at startups, Silicon Valley and European tech companies, moved into engineering management. As a developer, I went from being a junior to senior and principal positions. I worked across the stack, doing web, mobile, backend, and distributed systems. As a manager, I coached and mentored engineers with different experience levels and backgrounds. I helped them to grow further, become more efficient, and successfully get promoted to the next level.

What will be in the book?

The book offers guidance on how to grow as an engineer, at a tech company. It follows the structure of a typical career path of a software engineer, from starting off as a junior, levelling up to an experienced engineer, all the way to being successful at the staff/principle/distinguished position, making an organization-wide impact. It summarizes key lessons learned during my 10+ years developer career and the last few years of mentoring and coaching engineers.

The book also addresses the most common challenges engineers working at tech companies have and at fast-growing startups have. It touches on using modern tools and operating large systems day-to-day.

Who is this book for?

It's for software developers, who work at a company and want to grow further. My experience comes from working at tech companies and startups - however, the advice shared should be applicable across software engineering, as a whole. It covers the "hard" parts of software engineering (code, architecture, getting things done), the "softer" parts (communication, teamwork, influencing others), and dives into career progression.

It's also for engineering leads and managers, who want to get hands-on tips on how to mentor, coach, and grow engineers into better versions of themselves.

Much of the content of the book comes from my personal journey and from having helped many engineers grow faster. It's especially useful for people working at or wanting to work at tech companies and startups.

How is this book different from others?

I've found very few good resources on how to grow as a software engineer, outside of getting better at coding. There are a lot of good books on how to write clean code and refactor well, but few ones that help answer the question: "how can I become a better software engineer, working at a tech company?". Since becoming a manager, I found myself helping developers grow to the next level. The more people I've mentored, the more I found myself repeating similar advice. While some of this advice was technical, some of it had nothing to with coding. It did have a lot to do with communication, influencing people, making your voice heard, thinking strategically and owning your career.

Table of Contents

The (draft) table of contes of the book is this:

  1. Starting out
    What it’s like starting out, as new on this field. What it’s like to start out as an intern, through a bootcamp, as a new grad and starting that first job.
  2. The well-rounded software engineer
    Traits to become a dependable software engineer (the SE1/SE2 equivalent of most tech companies)
  3. The pragmatic senior engineer
    Becoming the pragmatic, senior engineer who have the depth and breadth of knowledge to reliably solve challenging problems.
  4. The effective tech lead
    Skills to become an effective tech lead/team lead. Tech leads are usually senior engineers, with additional responsibilities / challenges.
  5. The role-model principal/staff/distinguished engineer
    Engineers who have company-wide/organization-wide impact and are often on a parallel track to engineering management.
  6. Career paths
    Typical career paths, advice on how to shape your career, over just drifting with it and observations on how engineering can be different at different companies.
  7. Thriving in different environments
    While no two companies are the same, environments can be challenging in similar ways. A list of common tech environments and strategies to thrive in them.
  8. Get that great job
    Advice on getting your first job and switching to other jobs in tech. It’s harder than most people assume - not just when you are starting out.
  9. Giving back
    The software engineering industry is a privileged one to work in. Give back and pay it forward both because it’s the right thing to do and because it helps you grow further, while helping others.

I'm interested! What next?

You can also help shape the content of the book, in two ways: