How do you boost your lifetime earnings? The most common way is to change jobs occasionally and negotiate a higher salary.
But there are costs to changing jobs—you might have to move your family to a new city, learn new technology, or leave a team you really like working with—so this isn’t always an easy option.
You can also earn more without changing jobs
In this table from John Sonmez’ Ultimate Guide To Salary Negotiation For Software Developers, John shows how much your salary will grow over 10 years if you get a 3% raise each year. Here’s my own version of that table where I’ve added a two columns showing what happens if you negotiate an additional 5% raise every two years. Five percent every two years is a conservative estimate of what is achievable for most software developers without changing jobs.
|3% raise each year||5% MORE every other year|
There are three interesting things here.
1. You can make up ground even if you didn’t negotiate your starting salary
Let’s you started your job at $80,000 and didn’t negotiate your starting salary. Then you found out how powerful negotiating can be, and realized you probably could’ve negotiated for a starting salary of $90,000. You like your job, but now you feel like you’re underpaid. What can you do without changing jobs?
Take a look at the table above. If you negotiate an additional 5% raise every two years you’ll make up that gap in your starting salary by Year 6. If you started at $80,000 and negotiated an additional 5% raise every two years, you’re making more than if you had started at $90,000 and gotten the standard 3% raise every year!
So if you’re at a job you like and you didn’t negotiate the best starting salary, you can make up ground by negotiating a raise every couple of years. Good to know!
2. Periodic raises can beat higher starting salaries if you have to pick just one
Take a look at the first three columns in our table. It’s obvious that you’re much better off negotiating a starting salary of $90,000 instead of $80,000. But look what happens to the “Total” when you compare a $90,000 starting salary with 3% raises each year to an $80,000 starting salary with an additional 5% raise every two years.
You can make more by pursuing a 5% raise every other year than if you just negotiate your starting salary!
So if you had to pick one—a higher starting salary, or a higher-than-usual raise every couple years—you would be better off getting a bigger raise every couple years.
3. You don’t have to pick just one!
The best news is that you don’t have to pick a higher starting salary or periodic raises. You can double-dip by negotiating your starting salary and negotiating moderate raises every couple of years!
And look what happens when you do: You make a lot more money over time. Back to the table above, the worst-case scenario is you didn’t negotiate your $80,000 starting salary and you just accept the 3% raise you’ll get every year. The best-case scenario is that you negotiate your starting salary up to $90,000 and you negotiate an additional 5% raise every two years. In the best-case scenario, you make $250,000 more than in the worst-case scenario!
Add more value, make more money
I know what you’re thinking. “Sounds great! But it’s easy to say, ‘Get a 5% raise every two years!’ How do I actually do that?” Here’s the short answer:
Bring more value to the company than what’s expected of you. Then ask to be compensated for it.
Your current salary was set some time in the past. Either it’s your original starting salary or it’s your starting salary plus some incremental raises over time. When your current salary was set, the company had expectations for what you would do to earn that salary.
So if you want to make more than your current salary, you need to bring more value than was expected of you when your salary was set. The company’s ultimate goal is to make money, so you add more value by helping the company make money.
“But I’m a software developer. I don’t have anything to do with sales! How am I supposed to do that?”
Generating revenue is one way to help the company make more money, and you’re right that writing software usually doesn’t directly contribute to revenue. But “generate revenue” is only one of three ways you can help the company make money.
Here are the three main ways you can add value to your company: drive revenue, reduce costs, reduce cycle time. Focus on activities that do one more of those and you’ll add value to your company.
Stop right here and think of ways you could drive more revenue, reduce costs, or reduce cycle time on your projects.
Got some ideas? Here are a few I came up with:
- Write more code (cost reduction)
- Manage more projects or bigger projects (more revenue and cost reduction)
- Fix more bugs (cost and cycle time reduction)
- Train new team members (cost and cycle time reduction)
- Mentor other software developers (cycle time reduction)
- Take responsibility for a weekly status meeting that your manager usually runs (cost reduction)
Most of the ways software developers add value are not revenue generating, but that’s ok because they’re still valuable!
That list should give you some good ideas. Still can’t think of any ways to add more value? Ask your manager to help you out: “I would like to take on more responsibility and add more value. What else can I do?”
“What do you mean ‘Write more code’?”
“It’s easy for you to say I should write more code, but I’m already working full-time. How am I supposed to that?”
Good question. Let’s go deeper on that one and hopefully you’ll get some ideas you can use to go deeper on that entire list.
One way to write more code is to work more hours. That would probably make you more valuable to your company, but it’s not what I have in mind. Instead, look at “code” as something more than lines of code. Think of it as a tool to help do something. Instead of “write more code”, we could say “build more tools”.
That’s something you can probably do without working more hours. How? The obvious way is to get more efficient through practice and code reviews. If you’re more efficient, you can write more code in the same amount of time.
Or you could learn a new part of your company’s tech stack. If you mostly write front-end code, you could start learning the back-end part of your company’s stack so you can work faster with fewer handoffs to other developers on your team. That might be a more valuable use of your time than learning that new JS library.
Here’s how you might describe the value you add by writing more code:
“I started doing code reviews with Sara, and my code has gotten a lot better. I’m moving faster and bumping into fewer bugs. I also started working on the Ruby on Rails part of our stack so I can integrate our Angular code faster.”
Write more code. Add more value. Make more money.
When you add more value than was initially expected, getting an additional 5% raise every two years is very doable. Just look at all the value you can add with one item from that list!
As you get more experience, some of these things will happen naturally. For example, you’ll often be given more projects over time, and that makes you more valuable. You might be tapped to train new co-workers as they’re hired, and that makes you more valuable.
So keep track of the ways you grow and add value. Keep track of your salary increases. When your salary lags your value, proactively talk to your manager to make sure your salary is adjusted to reflect the additional value you’re bringing to to the company since your salary was last set. Every couple of years is a reasonable cadence for those conversations.
Do that consistently, and you’ll make a lot more money over your career.