Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Chapter 9. What’s Next?

We started this book with a journey to understand what your job is. Since then, you’ve unpacked your scope and primary focus , mapped your org, developed strategy and vision, prioritized work, led projects, navigated obstacles, modeled good engineering, and brought your colleagues up a level. It’s been a journey! And now we’re at the final topic: we’re back to you. But instead of looking more at what you’re doing now, we’re going to look at where you go from here. We’re going to look at leveling up yourself.

What does leveling up even mean? It depends on the circumstances and it depends on you. So we’ll start by returning to a theme throughout this book: what’s important? We’ll look at the big picture of your career, where you’re going, and what you need from your next steps. Then we’ll take a look at your current role and evaluate whether it’s a step toward where you want to go.

The staff engineer role is loosely defined, so it’s not surprising that the paths onward are loosely defined too. We’ll look at some of the options you have, and I’ll share stories from other people who have traveled onward from staff+ roles. These stories are just a sampler of the range of things you can do, but they might serve as inspiration for your own journey.

To finish, we’ll consider the influence you’ll have throughout your career. As a senior person, you’re one of the leaders of our industry. You’re responsible for the choices you make, and you’ll influence other people’s choices too. And you’re the only person who can drive your career. We’ll start there.

Your Career

A friend at a huge company once compared his career journey to playing Diablo, a classic role-playing video game. “I fight all the monsters and clear the dungeon,” he said, “and eventually I collect enough experience points to go up a level. But then…I just start again in a new dungeon and the monsters have also gone up a level! What’s the point?!”

What is the point, for you? Where are you going?

Back in Chapter 2, we drew three maps to describe your work. Let’s draw a fourth now: the trail map. Imagine your career as a journey across mountainous terrain. There are many paths marked on your map, some well-traveled and some overgrown. Some trails have limited visibility, but you can stay oriented by catching glimpses of landmarks as you travel. Some are twisty and you might need to take a path that seems to lead away from your destination, but that’s the only way to where you want to go.

Not all destinations are on the map, and many of the interesting ones can only be reached by leaving the trail. If you always choose your next destination based only on where the marked paths lead (see Figure 9-1), you might just keep following other people’s footsteps to the next dungeon and miss out on places you actually wanted to go.

Figure 9-1. Following local trails. None of the marked paths go to the destination, but if you have a map you’ll know the right place to leave the trail.

But where are you going? Maybe you’ve got a clear destination with milestones along the way. Maybe you don’t know exactly where you’re going, but you know the rough direction you want to travel. Or maybe you’re not going anywhere in particular: you’re just enjoying the journey.

For the rest of this chapter, I’ll assume you want to go somewhere from here. Career progression is often framed as climbing a career ladder and growing your seniority, responsibility, power, and wealth. That’s just a subset of the trails, though. Let’s look at what’s important to you.

What’s Important to You?

Staff engineer Cian Synnott has written about creating a priority list as a way to stay oriented and make sure his work is supporting what he wants from his life. Creating a list like this is a great way of introspecting about what matters to you. What are your career and life priorities? Here are some common ones:

Being financially secure

It might be most important to you to pay off debts, prepare for college fees, or save for your retirement.

Supporting your family

If you’ve got family who depend on you, you might accept a job you enjoy less for the sake of a salary that lets you take care of them. You could be optimizing for a steady paycheck with good benefits and no fear of layoffs.

Having a flexible schedule

You might want flexibility, like a schedule that accommodates childcare or eldercare or a chronic illness or disability. Or maybe you just want a schedule that gives you lots of free time to do the things you enjoy.

Learning a lot

Maybe you want the intellectual satisfaction of becoming world class in a particular domain or being the kind of generalist who can step up to any challenge—maybe you’re the person we talked about in Chapter 3 who saves the Starship Enterprise!

Being visible

It might be important to you to have the respect and admiration of your peers, to be “industry famous,” or to be representation in a prestigious role, someone that other people can see being successful so that they can imagine it too.

Doing cool things

You might want to work on cool and exciting projects, things you find energizing and fun.

Challenging yourself

It can feel amazing to look back at challenges you tackled that were bigger than you could have imagined.

Building wealth

Can we take a moment to appreciate how incredibly lucky we are to be in an industry that is (currently) highly compensated? You might be looking to get as much money in the bank as possible over your career.

Working for yourself

Maybe you don’t enjoy having other people make decisions that affect you, or just want the experience of being your own boss. If you ultimately want to set up a company or work independently, you might be trying to build the skills, experience, and contacts to feel confident doing that.

Making a difference

Maybe your lifelong goal is to make the world better, to leave a legacy that outlasts you. That could mean teaching, inventing something, or building communities that make tech a more friendly place. Or it might mean using technology as a tool to cause the real change you want: creating products that improve people’s lives, or being able to support causes that need you.

Enabling your vocation

You might be working to support the thing you really care about: succeeding in a music career, say, or making your hobby farm viable.

There are lots of other things you could optimize for: making friends, traveling the world, taking care of your health, and so on. There’s no right answer: it’s personal to you, and it’s likely to change over your career. Take a moment to think about what’s on your priority list at this stage of your life.

Where Are You Going?

Your priority list will keep you oriented, but it doesn’t tell you exactly where to go. For that, you need to draw your trail map and mark in some milestones. The amount of detail in your trail map and the span of time it covers will be up to you, but if you’ve got a faraway goal, plot some steps that will take you closer.

Where do you see yourself in five years? And what does that mean you need to do now?

Like the other maps, the trail map will be better if you don’t draw it alone. If you base it only on your own experiences, you won’t be able to find the nonobvious paths, and the trails will be limited to what you can see from where you stand. You can expand your perspective by reading, attending conferences, and especially by asking other people about their journeys. Seek out the people who have taken paths you’re interested in and talk with them.

Your manager may be able to help with your career, but that’s never guaranteed, and especially now. At staff+ levels, your manager might not even know how to help you: you’re likely on a path that they haven’t taken. Being senior doesn’t mean you know it all, though, and you’ll still need help and guidance. That means it will be up to you to seek out other sources of advice, teaching, and guardrails, and to look for the opportunities that will help you grow.

If you do discover an ambitious path you’re excited by, really consider it. It can be tempting to choose your route based on what’s most clearly signposted, but think beyond what you can see from here. Yes, some paths will be harder, feel riskier, or have less available support, but if there’s something ambitious you wish for, don’t limit yourself. If the role, impact, or lifestyle you want ends up not feeling achievable from where you are, you can still take steps toward it, maybe moving to a vantage point that will tell you more about where to go after that. A career is a long time.

What Do You Need to Invest In?

If you imagine yourself as having succeeded at your goals and achieved whatever is important to you, what does that look like? What skills does that successful future person have that you don’t currently have? What lines are on their résumé? How did they spend their time and who did they get to know? Ask yourself these questions as you decide what roles and opportunities to take.

Building skills

I’ve sometimes heard people say they’re really not good at something: functional programming, say, or telling a good story. I prefer a different framing: that’s not a skill you’ve leveled up (yet). If you’ll forgive one final tortured video game metaphor, think about games like Final Fantasy, where every mission gives you ability points to improve your skills. Let’s say you get new ability points this year, and you currently have 14 points in wielding Python (Figure 9-2). You can invest some points in getting to level 15, or you can ignore that skill and focus on other things, like getting better at JavaScript. Or maybe you’ll get your first points in something entirely new.

Figure 9-2. Choosing where to put this year’s ability points.

I’ve often heard people say that you should focus on what you’re good at. I don’t entirely agree: you should put points into what you want to be good at so you can build up those skills.

Everything in tech is learnable, if it’s worth the time investment. It might not be! There are more available technical domains and skills than there is time to learn them, so you can’t ever be an expert in everything. That’s OK: strong teams are built from people who each have a subset of the necessary skills. But if there are skills you need to get you to your goal, or gaps in your abilities that make you feel insecure, assume they’re just unknown, not unknowable. You just haven’t put ability points there yet.

That said, don’t make your journey harder than it needs to be. If the work you’re doing all day fills you with dread or exhausts you instead of exciting you, look for a different path to your goal.1 Charity Majors, CTO of Honeycomb, points out that keeping up with our fast-paced industry means managing energy: “If you want a sustainable career in tech, you are going to need to keep learning your whole life… Make sure that you a) know yourself and what makes you happy, b) spend your time mostly in alignment with that. Doing things that make you happy gives you energy. Doing things that drain you are antithetical to your success.”

Practicing skills you find difficult may turn them into strengths and reduce how much energy they cost—or they may never stop being a slog. Decide what the skill is worth to you. Each of us will find different things easy, and where to spend your points is up to you.

Imposter Syndrome

New grads just entering the industry would be stunned to see how many of the staff engineers they look up to feel like imposters. Depending on the path you’ve taken, you might feel insecure about, say, technical strategy, or influencing people, or systems design. Some systems folks feel weird about not having logged more hours writing code. Some product engineers suspect that they’re “supposed to be” more adept at operations.

Imposter syndrome is a horrible, insecure feeling: it can even make you do less good work because you don’t feel safe taking calculated risks. Take comfort in the fact that it’s common, even at this level. Find opportunities to put ability points into something that makes you nervous, and show yourself that it’s just another learnable, knowable topic. But most of all: if you’re “impostoring,” try to give yourself a break. Nobody knows everything.

Building a network

Skills are rarely enough to take you where you want to go. You need contacts too. Depending on the business article you read, you’ll hear that upward of 70%, maybe as many as 85%, of jobs are not actually published: they’re found through networking. When an internal project needs a lead, there’ll be a buzz of backchannel conversation among the nearby folks in leadership roles to see who they recommend. When a conference needs a speaker or a project needs a paid consultant, the participants will reach out to people they know. It pays to be known.

It pays to know people, too. Having contacts in various roles gives you insight into how people in those roles behave, what “competent” and “professio- nal” look like for them, and how they communicate.2 Having a strong network means you’ll always have experts to go to for advice and to learn from.

CTO Yvette Pasqua has spoken about how to build a network in a sustainable way, without burning all of your introvert energy. It doesn’t matter if networking isn’t innate or comfortable for you, she says: “If you don’t know who to talk to or how to start, a little secret is that none of us do.” Pasqua reaches out to people she’d like to talk with and invites them to chat about a specific topic she thinks they’ll find interesting too. She recommends joining groups and communities— but only the kinds that give you energy—and connecting one-on-one with people at events.

That last one can be excruciating for introverts and socially awkward folks, but there are a ton of mechanical tricks you can learn to make it OK. I love author and “recovering awkward person” Vanessa Van Edwards’s Science of People website for learning some of this “humaning” magic that other people seem to have been born knowing how to do. Check out her article “How to Network”, for example, for tips on talking to people at events like where to stand, how to remember people’s names, and what to talk about. All of this stuff is learnable.3

Building visibility

If you have skills, but nobody knows about them, you won’t get invited to use them. Let people see you solving problems, asking insightful questions, or showing up with a clear strategy when there’s chaos, and they’re more likely to think of you when an opportunity arises. You’ll meet interesting people too: they’re more likely to reach out because they see you’re working on something that’s relevant to both of you.

You may choose to build an external reputation, making a name for yourself with open source contributions, industry working groups, articles, podcasts, videos, conference talks, and so on. These kinds of ventures are usually optional, but can be incredibly helpful if you’re looking for roles or connections, and they’re ways you can have good influence across the industry too. Some employers encourage external contributions, either to help with recruitment or to draw attention to a company’s product or service. If you take this path, expect being a

“public person” to take some investment—this is one of the places you’ll be spending your ability points.

Being offered opportunities doesn’t mean you need to take them, but if you do get one you want, don’t waste it: show what you can do. If you have a proposal accepted for a conference, for example, don’t present a talk you threw together on the plane.4 If you’ve joined an open source community, don’t start out by picking fights. Let people see you do the work with grace and aplomb—be visibly competent.

Choosing roles and projects deliberately

The most time-efficient way to build skills, visibility, and contacts is as part of your job. You’ll get better at whatever you spend time on. In fact, it’s easy to gain a specialty accidentally just because it’s what you’re doing at work: one experience leads to another, and next thing you know you have a specialization. Spend five years writing storage systems, for example, and you’re going to get good at writing storage systems: you’ll have relevant skills, you’ll work with other storage experts, and you’ll have storage-related lines on your résumé. When an excolleague is hiring a storage expert, they’ll think of you. Spend the same five years on a popular mobile app, and you’ll build a completely different set of credentials. It’s easy to get typecast.

So choose roles that will give you the experiences you want to have. There are some things you can only learn at big companies, others you can only learn at small companies. Some things will be easier as a manager, others only if you’re really hands-on. If you’re not sure what you need, find someone who’s doing the role or living the lifestyle you want, and ask them what key experiences brought them to where they are today. (You can sometimes snoop their résumé on LinkedIn instead, but real-life conversations will tell you more.)

You get better at what you spend time on, so be deliberate about choosing roles and projects that will give you skills you want to have. Mason Jones, who has been an engineering leader at over 10 startups since starting with Travelocity in 1995, agrees: “Consistently and mindfully taking positions where I could expand my knowledge and broaden my experience has been the single most valuable thing I’ve done throughout my career.”

Your Current Role

Every job should help you grow toward your long-term goals and meet your immediate needs. Unfortunately, often people end up in roles that don’t do either. We’ll start this section by looking at whether your job is good for you, then move on to evaluating whether it’s possible for it to match your wish list.

Five Metrics to Keep an Eye On

Is your current role taking you closer to your goals? Might it be doing the opposite? Experienced engineering director Cate Huston offers five metrics for evaluating your job health:

  • Whether you’re learning

  • Whether you’re investing in transferable skills or navigating dysfunction

  • How you feel about recruiting other people to your team

  • How confident you feel

  • How stressed you feel

A great job situation keeps you growing toward your goals, and your selfconfidence and abilities stay high. A bad one—which has stagnation, working with a bully, lack of support, impossible deadlines, or other difficulties—might get worse slowly enough that you don’t notice when you’re well past the point where you should have walked away from it. I’ve seen friends in unhealthy work situations become convinced that they don’t have the skills to get hired somewhere else. As a result, they stay in roles where they’ve stagnated, and the lack of skills becomes self-fulfilling. As Huston says, “Sometimes five years of experience is just…the same year of experience, five times over.” Oof.

In another article, Huston explains that while your employer is buying your time, they’re only renting your “brand.” OK, the notion of having a personal brand will feel squicky and artificial to a lot of engineers, but think beyond polished people with expensive hair and expensive fonts: your brand is how you’re perceived by other people. If your job is making you less employable, Huston says, “I hope your employer is paying a lot of rent—because they are destroying the market value. At times that might be worthwhile, but often it is not, and people realize that too late.”

We all have good weeks and bad weeks, so one model I’ve recommended to friends is to track these metrics over a few months (see Table 9-1) and see how things are trending over time.

Table 9-1. Tracking the signals of job health described in Cate Huston’s “5 signs it’s time to quit your job”.

SignalsAre you
learning? Are
you_growing_?
Are you
learning
transferable skills
or just_how to_
cope with your
org’s
dysfunction?
How do you
feel about
recruiting
friends to your
company?
How’s your
confidence
and how
_capable_do
you feel?
Is your job
physically
good for
you?
Scale0: stagnant
5:rocketship
growth
0: learning to
cope in_this_org
5: learning
transferable
skills
0: morally
conflicted
5: wildly
enthusiastic
0: confidence
being eroded
5: confidence
growing
0: stress
stress
stress
5: feeling
healthy
<date>
<date>
…

Tracking metrics can shield you from recency bias and let you look at a bigger picture over time. If you can look back and see that things have mostly been good, you’ll be less likely to rage-quit over a bad month. But if you notice that you keep having bad months, or that your metrics are trending worse over time, notice that you might be in a situation that’s not good for you. Consider Captain Awkward’s Sheelzebub principle, a question to ask yourself about bad relationships: “If things stayed exactly like they are, would you stay: Another month? Another 6 months? Another year? Another 5 years? How long?”

Can You Get What You Want from Your Role?

Is your job moving you toward your long-term goals? Is it a healthy environment? Take a moment to look through your priority list and evaluate how well your job is meeting your needs (see Figure 9-3). Make sure you appreciate what’s great, as well as identify what’s missing. It’s easy to take the good stuff for granted.

Figure 9-3. Evaluate your role and see what’s working and what you wish were different.

No matter how great your job is, you almost certainly didn’t conclude that it’s perfect! You’ll rarely find a role that is the best for everything on your priority list. Making the most money is often in tension with doing good in the world. Learning the most can mean not taking on the most prestigious roles. Big career accomplishments can mean not having time and energy left for other aspects of your life. This is why nobody else can make career decisions for you: we’ll all make different trade-offs. But look at what’s not optimal and think about whether it’s something you can change without compromising too much somewhere else

Should You Change Jobs?

If you want to fix something that’s not working, you have two options: modify your existing job or move to a new one. Let’s look at some of the reasons to do each.

Reasons to stay in the same role or company

If your current role is giving you most of what you need and taking you where you want to go, it can be rewarding to continue doing the same thing for a long time. Staff engineering benefits from the longevity, domain knowledge, and relationships that you build over time in one place. Here are some other reasons it’s good to spend a long time in one place:

Feedback loops

Staying in one place for longer gives you the feedback loop that comes from seeing the consequences of your actions. When engineers move around a lot, everyone’s seeing the results of someone else’s past decisions instead of the outcomes of their own. You may also get to see the colleagues you leveled up become senior or staff engineers and then become role models themselves.

Depth

The more you know a single domain or a single stack, the deeper and more nuanced your understanding will get. It takes time to intuitively understand something so well that you can build on the knowledge. It’s also faster to do things you’ve done before; you’ll be able to make progress more quickly.

Relationships

You’ve invested time in knowing people all over the organization, and you have people you trust and enjoy working with. You’ve built up enough mutual goodwill that even the biggest technical disagreements are collegial, not heated. That’s an asset that takes time to build up again.

Context

After investing time and effort into learning how to navigate your organization, you have a skill set that might not translate to another one. You’ve figured out the OKR process, you know the shadow org chart, and you know how to get things done.

Familiarity

You know the work, the schedule, and the people. If you observe particular religious holidays, pick your kid up from school every afternoon, or you always play bocce at lunchtime on Thursdays, you’ve already set up your schedule to make that happen. It just works, and you’re reluctant to change anything.

Reasons to move

But there are also good reasons you might want to move around at intervals:

Employability

If you stay at one place for a very long time, you might be learning how to work in that culture rather than learning transferable skills. The world outside can shift, and you can get left behind. Keeping more skills and domains fresh can keep more doors open.

Experiences

There will be a limited number of experiences available in any one place, and a limited number of people to learn from. Once you’ve collected everything available, you might be ready for something new.

Growth

It can sometimes be easier to get a step up in level or scope by changing jobs. Maybe the next level feels too far out of reach to be realistic, or involves the kind of politics or work you’re just not interested in. If you’re struggling to get your name in the ring for the important, challenging, or visible projects where you are, it can be easier to find a new job than get a promotion you’re hoping for.

Money

Changing jobs can be the fast track to higher salaries. While some companies stay up to date with their current employees, often new hires can negotiate better salaries, stock grants, and hiring bonuses.

Mismatch

Not all paths to growth exist at all companies. If you’re looking to become an industry expert on a topic your organization doesn’t really need an expert in, if the projects you’re energized by aren’t the ones that your leadership wants to invest in, or if there are more senior people than there are leadership opportunities, it might be time to move on. Not all roles are available in all places.

The right next steps will depend on what you need. In the next section, we’ll look at some of the paths onward from here, some staying where you are, others changing roles or companies.

Paths from Here

Where do you go from here? Let’s look at a sample of your options:

Keep Doing What You’re Doing

If your job is giving you what you need, there’s no need to change anything. I want to emphasize that because our industry puts a lot of focus on changing jobs frequently, and the regular “new job” announcements can make you feel like you should be moving too. If you’re in a growing niche, you might be able to stay in the same team and still have plenty of room to learn and grow for decades. Or you might not be looking for further growth at all: you may just want to use your current skills and keep doing much the same job until you retire.

If that second one is you, be a little wary about industry changes making your skills obsolete. Technologies and your business will change, and even leadership skills can slowly become old fashioned if you don’t keep them up to date. Social norms, communication styles, best practices…it’s all going to change. So staying still probably means moving and learning a little, just enough to stay up to date.

Work Toward Promotion

Staying in the same role can often be a path to the next level up. As your influence, knowledge, and impact expand, you and your manager may start to feel that it’s time for you to be promoted.

Progressing to higher levels can be lucrative and can give you the credibility that comes with a more senior job title; as I said in Chapter 1, it saves you having to spend time and energy on proving you should be in some conversations. And, honestly, being promoted or being offered a bigger job just feels nice. But unpack that feeling: is it really about the level, or are you actually looking for cash, prestige, interesting challenges, broader scope, respect, getting in “the room,” a sense of progression, or something else entirely? It’s fine to want any of these things, but be sure that the next level is going to give you what you want, or you may end up quickly feeling underwhelmed by your new title.

Understand what promotion means at your company: does your director decide who gets promoted? Is there a promotion committee who will review your work? There may be a written career ladder with expectations at the next level, but these expectations are often low on detail about what’s really expected. There may also be restrictions on how many people can be promoted, or how many people can exist in a particular role: you might not be able to get promoted unless there’s an appropriately sized scope or project that needs leadership.

If you’re looking for promotion, discuss it with your manager and ask for their guidance. Connect with other people at the next level and understand what their path was. Looking for footsteps to follow can be intimidating if the other person has been in the role for a few years. Remember, you’re looking to be as impactful as they were when they got promoted, not where they are now.

Work Less

Success can mean working less in your current role. One engineer I spoke with, Jens Rantil, swapped a staff engineering role for 80% time and a 20% pay cut at a much smaller company. As he said, “Every Thursday is a Friday! It’s amazing!” Rantil observes that moving to 80% time is the first time many people set a price tag on their free time and decide what having more of it is worth. (Remember that a pay cut goes beyond immediate salary: it’s also likely to affect retirement savings.) While 80% is the most common schedule change, I’ve seen engineers arrange to work 60%, 40%, and even 20% time; some employers may be interested in retaining your skills for one day a week.

If you’re cutting back your hours, be deliberate about where those hours are coming from. It might be easiest to drop your focus time and just go to meetings, but that may not be what makes you happy, and it might mean you don’t achieve the outcomes your manager wants either. Or you might find that you end up working extra unpaid hours just so you can do the fun part of your job: if you weren’t able to avoid working overtime at five days a week, be really clear about why you think you can stick to working four.

Make sure to align your expectations with your manager’s and team’s. If you still want to work toward a promotion, or be considered to lead interesting projects, make sure your manager knows. Agree on how you’ll handle specific situations like on-call, holiday weeks, or weeks where you’re out sick on one of the other days. Be warned that many teams won’t be enthusiastic about having less of your time; from the headcount allocation point of view, the team may have whatever number of engineers it has, and if you work fewer hours, they don’t get someone else to make up the slack. But you may be able to achieve a lot in less time. One person I spoke with said that they don’t get much less done since they started working five-hour days—they only have four hours of productive work in them on any given day anyway.

Change Teams

If you’re ready for a change but happy with your current employer, an internal transfer can be a great move. You keep a good amount of your context, relationships, credibility, and social capital, but you get to start fresh on something new. Burin Asavesna, a software architecture lead at Hilti, told me that he thinks of this kind of restart as being like an experienced player of a game making a new low-level character: technically you’re starting from scratch, but in reality you already know how the game works and you’ll fly up the levels.

Moving between teams or organizations can be an excellent way of building bridges: you’ll still have contacts on your own team, and you’ll bring knowledge and culture with you to the new one. You’ll also bring perspective: you already have an outside view of the team and how they’re perceived by the rest of the organization.

Build a New Specialty

The breadth of the tech world means that there’s always something new to learn. You might enjoy learning about something very adjacent to what you already know, adding a new dimension to your knowledge, or begin putting a lot of ability points into something entirely new. You might even build a new accidental specialization. A lot of the most interesting innovations come from people who are very comfortable with more than one domain: interesting things happen on the boundaries!

Building a new specialty might mean more than a new team; it might mean moving to a different career track, either temporarily or permanently. Former principal engineer Lou Bichard has written about moving from being a “productminded engineer” to officially becoming a product manager. As he says: “Taking a little time out to do something a bit different might help you bring some new perspectives into your work.”

Explore

Some companies will let you take short-term gigs, embed in a team, take part in a rotation program, or just try out a new team for a while. One staff software engineer at a huge company told me about doing this kind of exploration after being on the same team for six years. Her company had a wide range of opportunities, including rotation programs, so she decided to take some time to explore what was out there. Over two years, she tried out three teams: a large site reliability team working on mature infrastructure, a small research team working on a recently released product, and a medium-size team working with a nonprofit to create a new open source product. After these vastly different experiences, it was clear to her that the research team matched her interests and had lots of growth opportunities, and she’s been there for the last year and a half.

Take a Management Role

Are you feeling a pull toward management? Some staff engineers move entirely onto the management track and continue to grow there. Others take a stint in management before returning to an IC role.

In a famous article, Charity Majors introduced what she calls the engineer/ manager pendulum, the idea of deliberately moving back and forth between manager and IC roles every few years. Majors rejects the idea that you have to choose a lane and stay there:

The best frontline eng managers in the world are the ones that are never more than 2-3 years removed from hands-on work, full time down in the trenches. The best individual contributors are the ones who have done time in management. And the best technical leaders in the world are often the ones who do both. Back and forth. Like a pendulum.

Majors emphasizes that management should never be seen as a promotion —it’s a change of profession with a different set of skills to learn. There should be no change in status when you go from people leadership to technical leadership or vice versa: each will build a separate set of skills, and will enhance the skills on the other side. But she doesn’t recommend trying to do both at once: “You can only really improve at one of these things at a time: engineering or management.”

Will Larson argues that a hybrid engineer/manager role is not always a bad choice, so long as you’ve already built up solid experience as both team manager and technical contributor. But he agrees that if you’re trying to learn either set of skills on the job, you’re going to have a hard time: “If you’ve built up your experience as both team manager and technical contributor, then sure give it a whirl if it’s what checks the most career boxes for you, but I do consistently recommend against folks starting their management career in such a role.”

If you’re going into this kind of hybrid role, have a plan for how you’re going to make it sustainable, perhaps by having a bench of other senior people you can delegate to or lean on when you need them.

Take on Reports for the First Time

What if you haven’t tried people management before? If you’ve never been a manager or had direct reports, it can be intimidating to take on your first management role in your later career. But here are three reasons you might be ready for your first direct reports:

  • If a future goal needs you to have management experience, you’ll eventually need to start building that skill set.

  • If you’re at a company or on a team where decision making and context only come to folks on the manager track, you might decide that the management track will give you more leverage to get projects done.

  • Or if you’re at the top of your career ladder and are interested in the business problems of the next level up (and can’t convince your organization to add another rung), managing a team may be the next step to growth for you.

Some companies have the concept of staff engineers with reports, some don’t. Taking on reports might require you to change tracks.

If you’re used to being an IC at the level of a senior manager, director, or VP, it might be tempting to argue that you should manage an organization at the same scope. Amanda Walker, an engineering director in security at Google, and a past staff engineer with reports, advises against this; she recommends that you spend some time as a line manager before taking on a more senior organizational role: “Just as having been a software engineer helps me be better at managing software engineers, having been a line manager helps me be better at managing other managers. It’s easier to coach a sport you have played well.”

If you’ve been used to working at an organization-wide scope, though, it may not be an enticing prospect to go back to managing sprints for a single feature team. One possible compromise is to look for an opportunity to take a tech lead or team lead role for a cross-team project, taking on management responsibility for a small number of people on that team.

How you show up as a manager affects the lives of your reports, so if you’re going to be a manager, invest in it. Majors says that your minimum tour of duty should be two years:

If you really want to try being a manager, and the opportunity presents itself, do it! But only if you are prepared to fully commit to a two year long experiment…It takes more than one year to learn management skills and wire up your brain to like it. If you are waffling over the two year commitment, maybe now is not the time. Switching managers too frequently is

disruptive to the team, and it’s not fair to make them report to someone who would rather be doing something else or isn’t trying their ass off.

Committing to management means accepting that it will take time. Expect not to do nearly as much coding, architecting, or technical work as you would otherwise—and understand that you might not get to do any. In The Manager’s Path, Camille Fournier writes, “It’s OK to feel nostalgia for the simpler times, and a little bit of fear for what you’re giving up. But you can’t do everything all at once. Becoming a great manager requires you to focus on the skills of management, and that requires giving up some of your technical focus.”

Majors agrees: “If you’re a manager, your job is to get better at management. Don’t try to cling to your former glory.”

Find or Invent Your Own Niche

Senior leadership roles often have specific needs. Even at the same company, one staff engineer opening will need someone with strong architectural skills; another will want a skilled project leader who is great at crossing organizations; a third will be looking for extra leadership bandwidth. The more senior you get, the more likely you are to be looking for a role that needs your specific skills, rather than shaping yourself to fit a generic role.

Molly Graham (of the “give away your legos” article I mentioned last chapter!) says that careers come in two phases: first learning what your strengths are, and then finding “holes that are shaped like you.” “Happiness,” Graham says, “is going to come from finding roles that fall in the intersection of what you love doing and what you are great at.” But she adds:

Beware the role that sounds absolutely tailor made for you but also feels completely exhausting when you imagine doing it. Doubly beware if the job is “fancy”—where your friends and family are going to think it’s cool— because then your ego gets in the mix and wants you to take it even though your gut says that you will hate most days on that job. That venn diagram—things you’re exceptional at but hate doing—is one that can lead to career mistakes.5

One way you can find a role shaped like you is by carving it out yourself. If you get this opportunity, you can fill a gap that your organization has and create a job you love at the same time. When Keavy McMinn was ready for a change at her current company, she found it liberating to openly discuss her goals with her manager: “This is what I’m good at and really want to do. How can I be of most value to you and the company?” Together, they crafted a mutually beneficial new role as the technical adviser to the CPO at Stripe.

McMinn says that creating her own role was feasible because she was in a privileged position and was comfortable with the risk of asking to do something different. This path won’t be available to everyone. But, she says, it’s surprisingly common: “It might be helpful for you to know that people do this! Give yourself permission to explore the idea of crafting a new role, together with the people who can support you. No one else really can or will drive that conversation for you. See it as an experiment, even—which can relieve some pressure!”

Another great piece of advice I got, from leadership coach Fabianna Tassini of Confidantist, is that if you get a chance to design your role, you should include a lot of what you love to do. Make the work that gives you energy about 70% of your job. The other 30% should be things you’d like to practice and get better at. (Of course, the company needs to actually need the role you’re creating; you may need to compromise to find something that fits you and your employer.)

Do the Same Job for a Different Employer

Starting in a new workplace can give you a completely different perspective and fill experience gaps that you have. Depending on the experiences you’re looking for, you might choose a different organization size, technology stack, domain, or culture. Just try not to “rebound,” if you can. Molly Graham writes: “Sometimes when you’re in a job, particularly if you’re not happy or burnt out, you have a tendency to pick a ‘rebound job.’ Just like a rebound relationship, a rebound job just helps you get out of your current situation, but it often isn’t the best or healthiest long-term choice.” She adds, “Picking the opposite of what is currently making you miserable won’t lead to happiness, it just helps you get out of a bad situation.”

If you have the option, take your time about choosing your new role and understand what you’re actually looking for. Don’t just jump for the first goodenough recruiter mail that crosses your path. You deserve better.

Since staff+ roles still mean wildly different things in different places, have an explicit conversation with future employers about what it means to them and what your job would be. As staff engineer Amy Unger writes, “It’s likely that each company and even each manager you talk to will have assumptions about what combination of skills they’re hiring for and an inability to articulate them.” Ask a lot of questions.

Staff+ interview slates are far from standardized: you might get asked about coding puzzles, systems design, previous projects, what you’d do in various leadership scenarios, or “Tell me about a time you…” Many organizations will share the interview slate in advance. If they don’t, it’s fine to ask your recruiter what to expect, so you can make sure you’re prepared. Use the questions you get as a hint about how the new company sees the role, and remember that you’re interviewing your interviewers too.

Change Employers and Go Up a Level

Changing companies can be an opportunity to reinvent yourself. It can also allow you to find roles that just aren’t available where you are. If you’re struggling to prove yourself through the promotion process on your current ladder, it can sometimes be easier to interview for the next level elsewhere. If your company is growing too slowly to need more senior leaders, or doesn’t have room for another principal engineer or senior manager until someone quits, you can sometimes find more opportunity by leaving.

Changing companies and going up a level is usually easier if you’re already an expert in the new company’s domain. It’s a harder sell to say that you want to operate at the next level up and also learn about, say, the health care or construction industry.

If you’re looking at a role that’s the next level up, be careful that the industry really does regard it as an increase. The levels.fyi site can help you calibrate what different titles mean in different companies.

Change Employers and Go Down a Level

Sometimes you’ll take a path that seems to go backward in some aspects: a smaller scope, less money, a less prestigious job title, or a role where you’re a beginner. If you think about your path only in terms of everything improving or increasing, you’re going to limit your options. In particular, moving to a bigger company will often come with higher expectations and corresponding downleveling. Going down a level can often be possible without decreasing your compensation, and it can let you shore up your technical foundations, or do more of a kind of work you enjoy. Josh Kaderlan, now a senior engineer at Datadog, told me why he was comfortable giving up the staff title that he had at his previous company: “If you make title a gating factor for a new job, you increasingly limit your opportunities. Being in this new environment has been rewarding, especially given that I am no longer always the most senior person in every conversation, and I have the opportunity to learn from people who have more and different experience than I do.”

Another engineer, Stacey Gammon, told me she thinks of her career as being similar to the engineer/manager pendulum, but moving between technical leadership and hands-on coding roles. When we talked, she was leaving a leadership-focused principal engineer role at a publicly listed company and weighing offers from several other companies for much “smaller” roles where she would have more time to code.

Set Up Your Own Startup

If you’re really looking for a change, and want to be your own boss, you might consider the challenge of setting up your own company. James Kirk, a former staff machine learning engineer at Spotify, told me about leaving his role and cofounding a startup as CTO. He told me: “I was interested in starting something myself because it seemed challenging and rewarding, and that’s the kind of itch that just gets worse over the years until you scratch it. I started connecting with some local VCs and their communities a couple years ago and through them met the person who is now my cofounder. We starting throwing ideas around and eventually found some things that we were really excited about and that’s when we took some VC cash, quit our day jobs, and started in earnest.”

If you’re preparing to set up your own business, that can be a good reason to focus on compensation for a while first: you’re building up a safety net of cash to give yourself some time without much income. Kirk adds: “I don’t think that, practically, I would have been comfortable taking the risk if I didn’t have a few years of healthy tech comp stashed away before leaving.”

Go Independent

Another version of going to work for yourself is working independently, through consulting, contracting, indie app development, training, or other part-time work.

Emily Bache, a software consultant and author of several programming books, says that the real benefit of being independent is the freedom: “I have a lot of control over how I spend my days, I have lots of time to read and learn things and share my ideas. I get to go to interesting places, meet interesting people, and work on interesting coding problems.”

Bache emphasized that working independently benefits from a strong preexisting network, so potential collaborators and customers will know what you can do and will approach you. It helps to keep your public presence up to date too: “Marketing is a constant—I aim to speak at about 10 conferences and local events each year, plus publishing articles. I also invest time posting on social media—Twitter and LinkedIn—so that people can find me through them.”

Consulting is not for everyone. One consultant, Vlad Ionescu, warns: “Even for folks that want to take it up mid-to-late-career, it’s a big switch (different skills are needed, finding clients, etc.) and it’s not as glamorous as many find it (usually less money than a stable FAANG job, more stress, etc.). A lot enjoy it and are a fit for it, but a lot of wide-eyed hopeful engineers get badly burned.”

So understand what you’re getting into. Make sure you’re clear about the trade-offs, and accept them. And just like with setting up a startup, you can reduce your risk by starting with a safety net of cash.

Finally, remember that being independent means you’ll be missing many of the support structures you might have expected in other roles. Chris Vasselli, who left a staff engineering role at Box to become a full-time indie app developer, advises: “While you’re at a company, learn from as many teams/experts as you can. Frontend, backend, desktop, mobile, design, security, QA, localization, build & release, even (especially!) marketing, growth, and biz dev. When you’re an indie, you are responsible for all of these.” Be prepared to wear a lot of hats.

Change Careers

After years in technical roles, some people feel a pull toward doing something different. That might mean a career shift into education, academia, policy, or research, bringing your technical experience and background to solving a different kind of problem.

My favorite example of branching out in a new direction is Peter Lyons, who left his role as a staff engineer at Intuit, teamed up with his partner, chef Christella Kay, and set up a retreat for programmers in the Adirondack mountains. Now he slings pancakes instead of code. He says that the COVID-19 quarantine helped him realize what was important to him: “It motivated us to make big changes to flip our lifestyle so that we could spend our days working together on something we cared deeply about.”

Prepare to Reset

If you do move to another job, be prepared to be a beginner again. All of the maps you drew in Chapter 2 are now out of date! Even if you’re in a new role in the same organization, you’ll likely be starting from a different place and different context. You’ll need to build perspective again and draw a new locator map. You’ll need to learn the terrain, culture, and politics and draw a new topographical map. You’ll need a new treasure map to help you understand where you’re going.

Author and distributed systems engineer Cindy Sridharan warns against trying to do a new job using the rules of the previous one.

Not all newly hired senior leaders are entirely committed to or feel comfortable turning themselves into the leader the organization truly needs, rather than the leader they’ve grown to be over the past years. Many leaders take the opposite approach of trying to mold the organization in their image or the image of the past workplace. Engineering leaders brought into embattled organizations tasked with stabilizing the chaos are often heavily incentivized to do this. Many a time these folks, in my experience, tend to fail harder and more often than those who try to learn the organizational ropes and tailor their leadership style to fit the organizational culture.

So don’t just jump into your new role. Take the time to talk with as many people as you can. Figure out how to get connected, how to know things, and how to be in the right rooms. Learn the shadow org chart. Solve some problems, but be humble and assume there were good reasons for previous technical decisions—everything has trade-offs. Figure out how to level up the engineers around you. Understand what’s important. And enjoy a relatively quiet time graph for a while before your calendar fills up with meetings.

Your Choices Matter

We’re at the end of the book now! I’ve got one final thing to say about choosing your path. It’s not really about your career , but it’s about your job as a senior person in the industry:

You need to take software seriously.

Making software can be fun. There tends to be room for creativity and some whimsy, and most of us don’t wear suits to work. But software has a massive influence on everyone’s lives. When an application crashes and loses someone’s half-written essay, or poor input validation drops someone’s health insurance claim, we’re wasting people’s time and causing them anxiety and stress. The risks of AI and algorithmic bias are well documented. Abuse on social networks, leaks of private information, and deliberately addictive apps destroy people’s lives. Our choices can mean that real people suffer.

Software is used for life-critical systems, and that’s going to become more common every year. The engineers you level up today may later be responsible for planes, medical treatments, or nuclear power plants. We need to teach new engineers the values of diligence and care that are hallmarks of some other lifecritical engineering disciplines. Canadian engineers famously wear a faceted ring intended to remind them of the obligations and ethics of their profession. We need, as an industry, to have the same kind of mindset.

In a time where software engineers are considered senior after four to five years, we might forget that there’s more to learn. In one where many engineers move on every two to three years, we may be incentivized to build for the current moment (and the current profit and the current promotion) rather than for the long term. Today’s college kids and teenagers are going to have enough to deal with: don’t send them shoddy systems and technical debt too.

You can take this job seriously and also really enjoy it! There’s a ton of room for creativity and fun stuff. But bring your good judgment to evaluating the stakes. Know how your software will be used. Be firm about what’s negotiable and what’s not. You have more influence than you think you do, and the choices you make matter. What the senior people do sets the culture for the industry.

Build good software. Build a good software career. Build a good software industry. Thanks for reading. <3

To Recap

  • You are responsible for your career and choices. There are a lot of options about what to optimize for. Know what’s important to you. Be deliberate.

  • You’ll increase your access to opportunities with skills, visibility, relationships, and experiences.

  • Everything is learnable if it’s worth the time investment.

  • Check in with yourself occasionally and make sure your role is still giving you what you need. Look at what’s good as well as what’s not working.

  • There are excellent reasons to spend a long time with one employer. There are excellent reasons to move around too. Either way, you have several options for paths onward.

  • Software has a massive influence on the lives and livelihoods of just about everyone on earth. Take the responsibility seriously.


  1. I love Dina Levitan’s story of realizing that she wasn’t bad at axe throwing, she was just using a kind of axe that didn’t work for her throwing style. As she says, “We can all learn to hit the target… but it’s important to choose the right axe.” ↩

  2. This is another reason representation matters so much. ↩

  3. Half of the “confident” people you talk to at a conference are running the interaction in software and hoping they’re Doing Social properly. I’ve, uh, heard. ↩

  4. If you’re one of the tiny number of people who can throw together some slides, stroll on stage and deliver an unrehearsed talk that gets a standing ovation, I’m not talking about you. Keep doing your wizardry. Tell me your secrets. ↩