Is staying a software engineer your whole life a good career choice? Or must you transition into management to continue climbing the engineering ladder? That’s what engineers recently wondered on Quora, and it’s an important question worth addressing, particularly for those not psyched about managing people.
The good news is that staying a software engineer and opting out of management is a fine career choice. If you want to bypass the glass ceiling, however, don’t expect years of technical experience alone to carry you up the career ladder. As a rough model, your career success and growth is proportional to the value you create.
Technical Ability + Experience ≠ Impact
Engineers with over 10 years of experience at places like Google will often wonder why they’re still only a senior software engineer on the career ladder. What happened to the promotions that seemed to have come readily in their earlier years? Why are some of their peers getting promoted above them?
One of the biggest career mistakes that engineers — particularly those who opt out of management — make is to equate technical ability plus experience with increased impact. They hold onto a belief that if they continue to do good work, they’ll eventually be rewarded with a promotion. That mental model is flawed for two reasons.
First, your technical ability to write code and build software plateaus over time. When you first start out, you’re frequently making technical mistakes. Every small project becomes a learning opportunity that hones your programming skills. As time goes on, you become more proficient at coding and software design and make fewer mistakes. Your early promotions up the initial rungs of the career ladder reflect your early technical learning. By year 10, you’ll still learn — and you might still be picking up new programming frameworks and languages — but your progress and improvement isn’t going to be as dramatic as it was in year 1.
Second, experience doesn’t directly translate into impact. If ten or twenty years from now, you’re still solving the same scale and scope of problems as you’re tackling today, then you haven’t increased your ability to create impact. And if you’re not creating more value, why would any employer pay you more than someone without that experience? This observation is independent of industry or profession.
It can be easy, comfortable, and even fun to keep doing what you’ve been doing — and it can be a reasonable lifestyle decision if you’d rather spend your energy elsewhere — but you shouldn’t then also expect your career to grow on its own. What matters isn’t the number of years of experience but how much value you create. To keep growing your career, you have to keep finding new ways to increase your impact.
Management Is Just One Leverage Point to Increase Your Impact
Transitioning into management is one way — but not the only way — to grow a successful career. Many engineers become managers because management provides an obvious and well-defined leverage point to scale your impact. Teams need managers as they grow, and years of technical experience can be a useful asset when developing management skills. As a manager, you influence and affect the work of your reports — and if you’re a good manager, you increase the value created by everyone on your team. If that additional value exceeds what you could have created as an individual contributor, your career ends up net ahead.
Management, however, is not the only path for career growth, nor is every strong engineer well-suited to becoming a manager. As long as you can find other leverage points to amplify your impact, your career will continue to grow. Most large companies where technology plays a strong role, such as Google, Facebook, Amazon, Microsoft, etc., will also have a well-defined technical career track to recognize that other leverage points exist besides management. Climbing that ladder to become a staff or principal engineer, however, is where many engineers struggle. The less conventional paths outside of management require more creativity, and there are fewer available narratives of successful engineers outside of management for us to model ourselves after.
So What’s the Secret to Growing Your Career Without Becoming a Manager?
The key observation is that while your technical programming ability may plateau, the impact of your technical contributions doesn’t have to. Your ability to decide where to spend your efforts to maximize your impact — what code to write, what software to build, and which business problems to tackle — is unbounded. It’s this ability that distinguishes the most valuable and effective engineers from everyone else.
So how do you grow your impact as a software engineer without becoming a manager? You identify and solve problems that are core to the business, or you enable those around you to more effectively solve those core business problems. It’s in this alignment of your technical efforts with business value that your career grows. When the hours you put in directly translate into meaningful and measurable results, when your efforts directly move growth and revenue metrics, your employer is incentivized to give you more resources and flexibility so that you can achieve bigger results faster.1
Here are some examples of how you might amplify your impact without going into management (and without co-founding a startup, which typically leads to management), based on software engineers I know:
- You build tools and abstractions that multiply the output of the engineering teams around you. For example, Jeff Dean, through his contributions to Protocol Buffers, MapReduce, BigTable, Spanner, and other systems infrastructure, has increased the output of other engineers at Google by over an order of magnitude. It’s no wonder why Google created the engineering level of Senior Google Fellow essentially for him.
- You develop sufficient expertise to consult on software or experiment designs from other engineering teams, and your feedback is valuable enough that it shaves days or weeks worth of work or it turns key projects from failures into successes.
- You become an expert on a deep, technical field that is material to a growing company. For example, you become a machine learning expert and then work on news feed ranking at Facebook, ads ranking at Google, or search ranking at Airbnb. The projects you ship directly translate into growth and revenue for the company.
- You identify a critical business opportunity, perhaps by working with the sales and business teams, and you become part of the founding team within the company to build out a product to address that need.
- You build out onboarding and mentoring programs to teach and train other engineers, and you make them significantly more valuable members of the team.
- You play a key role in building out a solid hiring process, and you help recruit and close engineering hires.
- You make significant contributions to building the engineering brand for your company. For example, if diversity is a strong part of your engineering brand, you may move forward the state of diversity in hiring in the industry.
These are just a few examples of how you can increase your impact, but the possible paths are limitless. Notice that in none of these paths, is building software an end goal — rather, it is a means of helping the team and the business succeed.
Focus on what creates the most value. Your career success and growth will follow.
One corollary is that if you work on a team or a company that isn’t growing, it will be more difficult for you to grow your own career because the value that you can create is limited. If you’re working on a dying product that loses the company money, how much value could you possibly be adding? This is why Sheryl Sandberg argues in Lean In why it’s so important to hop onto rocket ships when evaluating job offers. ↩
"One of the few titles written from an engineer’s perspective with enough specific information to help you and your team work better."
— Mike Curtis, VP of Engineering @ Airbnb