It is a truth universally acknowledged, that an individual contributor in possession of a couple of years at their current level, must be in want of a promotion.
One of the great frustration points in the tech industry is the individual contributor career path. While most companies these days have a separate career track for people who don’t want to become managers, many people still end up becoming managers because they don’t feel capable of being promoted as individual contributors.
This is a pain point for both senior management and employees: senior management thinks there aren’t enough good Staff+ engineers, mid-career employees end up in management jobs they don’t enjoy and aren’t good at, and engineers suffer from both mediocre managers and few examples of non-management leaders to look up to.
What to do?
To resolve this situation, we have to start getting honest about the skills needed to successfully grow a career. To do that, let’s look beyond individual contributor vs manager, to try to understand what matters.
In most tech companies, there’s a stable line around ‘senior engineer.’ Whether that’s a numeric level or a title, early-career engineers are generally promoted every year or three until they hit that level. This is also the level at which people tend to break off into management.
After this point of seniority, promotions are not guaranteed. Instead, they are earned based mostly on one thing:
How much impact does this person provide, according to the powers that be?
As a manager, impact is often measured by the size of your organization. Manage people well enough that they produce good work, and over time you accumulate larger groups of people, who can produce more work, thus creating more impact. There’s more to it than that, but it is easier to benchmark (even if it is not actually so much easier to achieve).
For individual contributors, ‘impact’ is a nebulous concept. It can mean: how much money do you bring in for the company? For most engineers, that’s not a measurable concept. It could mean, how much code do you write? Or how many features do you produce? But then, for most engineers, you can only physically produce code so fast. So if you want to have more impact, you need to find other ways to gain leverage, so that a little bit of input from you creates more value.
This is where the path gets muddy, and why it’s easy for ambitious people to turn to management. Naively, many go into management because they think, ‘if I can have a team of people who do what I say, I will have more leverage, and more impact.’
This is true, and not true. The advantage of management is that the minute you gain the leverage of management, you are confronted with a bunch of skills you have to acquire to actually wield that leverage effectively. Interpersonal skills, project management skills, planning skills, communication skills, the list is longer than you think when you begin.
As a manager, these skills are pressing and somewhat obvious if you want to do your job at all. If you can’t handle the emotional stress of the people management, you will wash out of the job. If you can’t figure out how to get a team to deliver software, you’ll wash out for different reasons. And of course as a manager you have the benefit of being managed by someone on your career path who can (sometimes) help you identify what you lack and where you need to improve to get to the next level.
But leverage doesn’t have to come through managing people, and in fact, managing people can sometimes distract from learning other skills that are important for getting more leverage. These skills are available to anyone, and if you want to stay an individual contributor but grow your career, you need to develop them.
Do people trust you? Do you have a network of people around the company (or the industry)? Have you done favors for people? Do people admire you? Do they want to work with you? Do they want to learn from you?
Some engineers lean heavily on their self-perceived technical brilliance as something they assume will attract the admiration and trust of others, but in most company cultures this only takes you so far. No one wants to share ideas with the person who has to be the smartest one in the room, and who reacts like the others are idiots for asking questions or having ideas that aren’t perfect. It’s very hard to get interpersonal leverage when people don’t want to work with you, and the more senior you get, the more likely you are to meet people who are not interested in putting up with your bad behavior. So you need to work on your interpersonal skills (which usually means learning how to listen and put your own ego aside) in order to get the interpersonal leverage you need to level up.
You might know successful engineers who are perfectly nice people but neglect to build their network. If you get into a company early and it grows around you, your network often builds itself, and you might see nice but shy engineers at senior levels who managed to have a great network despite themselves. But for the rest of us, we need to get out of our comfort zone and make connections.
A secret I learned from my extreme extrovert friends is that most people are lazy and perceive themselves to be very busy, but if you invite them to do a specific thing (go get coffee, talk about a problem, meet for lunch) they will usually say yes. This is scary, I know, but if you want to gain interpersonal leverage, the way to do that is by getting to know others outside of your immediate team. Putting yourself out there by actively reaching out is the fastest way to form connections.
Finally, don’t forget that part of interpersonal leverage comes from favors. This doesn’t mean just doing favors for others and never asking for anything in return; people get weird about only accepting favors. Instead, make sure you regularly look for opportunities to ask others for help, advice, or feedback. This helps them feel invested in your success.
Can you get big things done? Do people involve you in complex projects because they trust you to make those projects successful?
The basic skill needed for execution leverage is project management. Everyone needs to know how to do this at some level, and being extremely good at it paired with strong technical skills can make you a powerhouse individual contributor.
Beyond the nuts and bolts process stuff, the leverage you’re developing here is understanding how to organize the work to unearth risks early, how to identify different possible approaches, and how to remain flexible so that you can pull out a win from the project even if the final outcome is quite different from the initial proposal. If you can break a complex problem down into pieces that can be understood and shared across people or teams, and turn an impossible project into a concrete roadmap, you can show the kind of broad impact that drives senior promotions.
Long-tenured engineers have some natural execution leverage because they know where bodies are buried, but this is a slow path to career growth. People discount the impact of long-tenured employees who can’t explain how their depth of understanding of the systems allows them to do things that others can’t, and are likely to think that the system needs to be fixed instead of promoting the rare people who can work with it (see ‘the dangers of expert leverage’ below).
Senior managers have the advantage of a job that naturally keeps them looking broadly, rather than deep, and breadth tends to be where strategy is found. Seeing the common challenges or opportunities across teams or systems, articulating those opportunities, and aligning people to address them is part of the job of a senior manager.
But this doesn’t mean that depth-focused individual contributors can’t have strategic leverage. Instead, individual contributors can and should develop their product sensibilities to identify new, unseen opportunities. These can be purely technical (‘if we had system X, it could replace a bunch of other things’), or they could be business or customer-focused based on an understanding of the evolution of technology plus the needs of the business.
To successfully develop this leverage, you have to learn how to articulate your ideas. Writing well, speaking well, clarifying potential impact of a project, these are all necessary skills because you have to be able to get others to understand the ideas and the value of those ideas.
You will also need to learn how to look at one more dimension beyond technical depth. That dimension could be in understanding the business or the customer. It could be in looking at the technology beyond the code that you personally work on, either externally in the broader industry, or across your company. It could be thinking about why certain technical tasks are harder or more error-prone than they should be. You might just need to learn how to listen more carefully so as to hear what is underneath the requests that people are making of your software.
Expert leverage (beware!)
Finally, there is the leverage that comes from having rare skills. Whether it’s knowledge of a legacy system that remains critical to the business, or deep expertise in a specialized area, this can be the angle that gives you higher impact than other engineers.
However, be careful about relying too much on this unless the specialization is your passion. Most companies don’t hire many deep specialists, and the career path upwards driven by specialized skills tends to be slow. When few people understand what you do, they tend to underestimate the value that you bring. Unless you’re an expert in a growing field (for example, AI/ML over the last few years), it’s likely that your expertise narrows the number of companies who would want to hire you, and that in turn takes away the impression of your value to your current company.
If your expertise is in your company’s legacy systems, it is often just a matter of time before the forces of modernization come to sweep away that legacy in favor of innovation. You may have powerful detractors who will accuse you or your management of maintaining legacy that’s slowing the rest of the organization down, and they’re often right about that. And people tend to innovate around legacy systems, which means that the only time they pay attention to your work is when it causes problems. You can sometimes leverage knowledge of critical systems into a promotion, sure, just be careful going down this path.
So you want to keep getting promoted as an engineer, and you don’t want to turn into a manager. You need to develop skills that give you the leverage to show bigger value to the company. These could be interpersonal skills that make you more trusted and valued, execution skills that let you drive complex projects to success, strategic skills that give you bigger ideas and the ability to sell them, or, occasionally, expert skills that make you very hard to replace. Take inventory of your current role, your interests, and which of these skills might be easy for you to work on, and get going developing that leverage.