Why I Wrote This Book



Updated August 7, 2023

I started my programming career at a small startup called Mertado, soon after they completed the Winter 2010 batch at Y Combinator. Nine months into my new role, we were acquired by Groupon to help build out their Groupon Goods platform soon after they had gone public. After the dust had settled, I was placed on the team that built the machine learning system to personalize 100 million emails sent to inboxes each morning. I was responsible for taking the personalized outputs from the MapReduce jobs, rendering the results in our HTML email templates, and performing multivariate tests on different audiences in order to increase the conversion rate, where a one percent increase meant millions of dollars in additional revenue.

It turns out that working at a small, ten-person startup is vastly different from working at a public company on a large engineering team. Not only was I exposed to new technologies, development workflows, build systems, and enormous codebases, I also got first-hand experience observing how high-performing teams deliver software at scale. I started to see how all of my coworkers juggled different tasks and priorities, and as I observed, I started to learn from them.

What I noticed early on was that they didn’t just sit there and code all day with their headphones on. Yes, my coworkers delivered clean and robust code at a fast pace—but they were good at the entire software development process. The most impactful engineers combine technical depth with a broad set of soft skills, people skills, and product skills.

I’ve made many mistakes throughout the course of my career. It took hard work and trial and error to learn how to navigate office politics, manage risk, and work well with others to deliver quality software. I had to learn most of these soft skills on the job and by observing others as I navigated my career.

But I wish I’d had better resources to prepare me for the obstacles on the path to becoming a senior software engineer. My goal in writing this book is to pass along the knowledge I’ve gained so far in the hope that it will help the next generation of programmers be team players and build fulfilling careers.

Who This Book Is For

This guide is focused on providing junior and mid-level programmers the tools they need to excel in their careers—the journey from first full-time engineering job to earning a first promotion.

This book is primarily for individual contributors: it does not cover the broader topic of managing other junior and mid-level programmers—but engineering managers and senior engineers may still find some of the material useful for mentoring or sharing with their team members or direct reports.

  • New programmers. If you’re just starting to learn how to program by teaching yourself, or you’re enrolled in school or a coding bootcamp, congrats! You’re just getting started on a fun and exciting journey. While this book won’t teach you how to program, it will prepare you for what to expect when you land your first full-time programming job. There’s a lot to learn, so be patient and take things one step at a time. You got this!

  • You’re reading a preview of an online book. Buy it now for lifetime access to expert knowledge, including future updates.
If you found this post worthwhile, please share!