Chapter 1. How to Win

You’ve had a small number of career-defining moments.

Small decisions cross your desk and inbox all day, but this isn’t a small decision. It’s massive, and once you’ve made this decision, there is absolutely no going back. At this moment, you make a painful discovery—Crap, I’m an engineer.

You don’t have an MBA. You know there is a People Team in the building somewhere, but you’ve no idea what to do with them. You want to hide in the comforting structure of code, but you know that this decision will significantly affect your career at this moment...if only you knew how.

Can I argue for more money after I receive an offer? OK, how? What do I do when my boss lies to me? What do I need to do to resign? Should I apply for a management gig? What’s a program manager? They make more money doing less, right? Can I get a promotion without talking to a single human being? Why can’t I work from home all the time? There isn’t a class in college that teaches any of this. Wikipedia can define it, but it can’t help a social introvert who sees much of the world through a keyboard.

This is the hand you’ve been dealt. Let’s embrace your situation.

A System Thinker

We engineers are different, and understanding these differences is an excellent place to start. I believe engineers are system thinkers. The world is like a computer. After years of successful use of the computer, we’ve come to follow a specific ideology:

  • We seek definition to understand

  • the system so that we can discern

  • the rules so that we

  • know what to do next so that

  • we win.

Definition, system, and rules go back to our ever-favorite tool, the computer. Our success has tweaked our perspective of the planet. Given enough time and effort, you can totally understand the system. A solid-state drive has these attributes and will make these operations faster. More memory will improve these types of operations. When my boss tells me I’m passive-aggressive, I should…

Wait, what? Passive what?

A crisis occurs when a situation appears that doesn’t follow the rules, doesn’t fit in the system, and is inherently indefinable. We go on high alert when we see a flaw in the system because the system is what we tell ourselves to get through the day. Unfortunately, this structure is a comfortable illusion full of certain flaws that I like to call people.

People Are Messy

People screw things up. They are the sources of bugs. They ask odd questions, and their logic is flawed. In the pleasant mental flowchart we have in our engineering heads, a single person causes us to frustratingly ask, “Who are these people, and why the hell don’t they follow the rules? Can’t they see the system? Don’t they want to win?

Yes, they do.

No one wants a reminder that life is a crapshoot. That we’re all making it up as we go based on reacting to whatever random strangeness occurs in our corner of the world. The lack of control is especially discomforting to the engineer, so we construct imaginary structured versions of our world to make the chaos a bit more palatable and predictable.

I’m an engineer, and while I’m just as ambiguous and emotionally slippery as that comic book enthusiast in the cube next door, I’ve been staring at engineers struggling with messy parts of high tech for two decades. I believe I can improve our chances to win, even with all these people stumbling around and touching our stuff.

The advice and this book begin with a contradiction: prepare for the unpredictable.

The unpredictable shows up on your doorstep in two forms: simple unpredictability, which you can assess and act on immediately, and world-changing unpredictability, which rocks your world and requires serious work. In The Software Developer’s Career Handbook, I hope to equip you with a system of improvisation that will help you act on the simple unpredictability and, second, to encourage you to develop a blueprint for your career to prepare for when the sky really falls.

A System of Improvisation

In my head, a handbook is a book with curled pages, a beaten cover, and folded pages that are never far away. It’s achieved this state by being repeatedly and tactically useful. The Software Developer’s Career Handbook’s chapters are structured to your job, understanding leadership, the tools you’ll need, and then, well, your next job. The idea is not the arc; the idea is that as you’re going through a tiny bit of unpredictability, you can flip to Chapter 39 and read about how to interpret your yearly review so you can make a decision: Am I or am I not going to get fussy about this poorly written review?

The chapters of The Software Developer’s Career Handbook are standalone, meaning minimal threads tie one chapter to the next. This is partially a function of where some of the chapters originated—my weblog, Rands in Repose—but also a function of the engineer’s attention span, which can be...limited. My hope is these fully contained, easily consumable chapters are useful when small decisions show up in that they help you take apart your decisions. They aren’t prescriptive because whatever decisions you have on your plate are yours to make, and the best I can offer is to tell you the story of when I made that decision, what I thought, and how I moved forward.

It’s satisfying: completing a task, making a decision, getting a thing done. These small bits of motion you apply to your day make up most of the decisions you make in your life, and they happen with little pomp and circumstance. Making these decisions and seeing what happens to make up the bulk of your experience and how you continue your endless search for rules that define your system. The better you get at them, the more success you have, and the quicker you make them the next time they show up.

Still, these are tiny bits of unpredictability, and you must know what to do when massive unpredictability appears.

A Career Blueprint

You read a book. From beginning to end. While the chapters of The Software Developer’s Career Handbook can stand alone, the book is intended to tell a long story about your job, your manager, the way you work, and how you’ll eventually search for a new role. The time it takes to read this book will, hopefully, give you some distance from the day-to-day work of your job and remind you that you’re working toward something more significant. Your job is not just what you’re doing; it should prepare you for what you want next.

As you read this book, you need to keep three classes of questions in your head:

  • What am I doing?

  • What do I do?

  • What matters to me? What do I care about?

Your workday is deviously designed around focusing you on the first question. Think about your state of mind when you get in the car to drive home, when you’re barely pulling yourself out of the sea of things to do. You’re not dreaming about your next gig; you’re not thinking strategically about your career; you are recovering from a day of tactical tasks. That’s what you’re doing, but is that what you do?

Maybe you’re lucky. You’re the software architect. You’re the director of design. You’re the guy who cares more about databases than anything else on the planet Earth. You’ve discovered a more significant theme to what you’re doing. It’s your career, which is much bigger than a job.

That’s what the People Team will do for me, right? My boss has that covered, right?

Wrong.

As an avid watcher of management in Silicon Valley for almost three decades, I know the good intentions of the People Team and the partial attention of your boss do not a career make.

Whether you know what you do or don’t, reading this book from cover to cover is a few hours of your time when you get to ask, What matters to me? What do I care about? Does this management gig float my boat? Am I a developer for life? Is the fact that I spend the entire subway trip home cursing my gig a bad sign? It’s professionally fashionable to bitch about your company and your inept manager, but when you start bitching about your career, I call bullshit. The idea that anyone besides you is responsible for your career is flawed. Your boss is only your boss while he’s your boss. Your career is yours forever.

You choose your career, and the choice makes life easy when massive unpredictability arrives. Think about it like this: How much easier would it be to make that big decision if you knew exactly what you wanted to do? Is it easier or harder to argue for that new project at work when you know it’s perfect for your career goals? How would the review conversation with your boss go when you’re completely sure you want to get into management?

All decisions are easier when you’re clear about where you’re headed.

A Collection of Moments

Your career is a collection of moments when you make a decision. PC or Mac? Answering that recruiting email or not? Confront or retreat? Even with this book in hand, you’re going to screw up as many decisions as you make correctly, which is a troubling thought for the system-searching engineer who is simply trying to win, but there are still rules to discern.

With time and experience, you’ll learn there is a finite set of personalities walking the halls. Yes, they have nuances, but these personalities and motivations can be understood. Your boss and his motivation will vary from company to company, but it’s a knowable set of motivations varying from “hiding until I retire” to “driving everyone crazy as I attempt to conquer the world.” It’s OK to quit a job with people you like because there are many people to like out there. You can make most meetings useful. You can dig yourself out from underneath the endless list of things to do.

The Software Developer’s Career Handbook is a distillation of 25 years in Silicon Valley working at large and small companies. I’ve had equal parts of calm and chaos, and I’ve been keeping notes the entire time because I believe I’m always one rule away from figuring it all out, and that’s how you win.

Get The Software Developer's Career Handbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.