How To Negotiate Your Compensation As a Programmer Every Year

Understanding how, why, and when to negotiate your salary and more

Jun Wu
Jun Wu
Oct 20, 2019 · 7 min read
Image for post
Image for post
Photo by Wil Stewart on Unsplash

When you have a busy job, it’s easy to fall back into the mentality of comfort and take what you can get. The truth is that no one will be a programmer forever. Some programmers work in the industry for 20 or 30 years. But, they move around as their skillset develops.

Even within the same company, these veteran programmers step up in their career. These days, programming is probably one of the few careers that you’ll find yourself in a situation where companies will compete for your skillset. In today’s ever-changing global economy, that’s valuable. That’s gold. In cities with high housing prices, it’s survival to negotiate a higher compensation package even within the same company.

You want to make your best career move young when you don’t have additional family obligations. Initially, viewing your career horizon as 10 years will ensure that you make the most out of those years.

Why Negotiate?

I wish someone told me this earlier in my career. I came from a scientist’s family. My parents focused on knowledge and achievement. If anything, even though we were poor, I was raised to not care about money so much. There’s the misconception that if you have the right skills, then money will come. But, this both is and isn’t true. There are two reasons why you should negotiate whenever you can: work-life balance and respect.

Work-Life balance

Companies are profit-driven. They’ll only really care about what they pay you if you speak up. Otherwise, they’ll move you through the standard raise grid that they have — 2%, 5% every year. You can only affect major changes if your title changes. Let’s face it — as a programmer, your title won’t change for a bit.

In the meantime, you want to be able to continuously save and invest your nest egg so that you can pursue other interests when you have the time outside of your work. You might also find a partner in life, and you might want to start a family. You might also have children who will make you feel like they’re burning your money. So, get yourself set up as much as you can toward a path to financial freedom. Only with the proper financial freedom can you continue the work-life balance when you expand your family someday.


Managers expect you to negotiate your salary. If you don’t negotiate, then you’re permitting your manager to determine your boundary of happiness. Don’t do it. It’s a slippery slope. Instead, when you negotiate, you gain swaths of respect. Your manager will love that you proactively want to improve your career and your life.

A well-rounded programmer who will be paid premium is one that has achieved both work-life balance and respect.

When to Negotiate?

You can negotiate your compensation any time during the year. It doesn’t have to be at the performance review. It’s best to up your leverage throughout the year so that one or two months before the performance review, you can have a preliminary conversation with your manager to gauge interest in giving you not just a raise, but your fair market value.

You should also look at your work as a constant negotiation. One of the most important aspects of negotiation is leverage. You want to gain leverage every single day at your workplace. The word leverage has a negative connotation. But, the better word for it is value.

What’s your value as a programmer to your company? Maximize that and you’ll have all the leverage that you need.

How to Negotiate?

There are articles all over the internet about how to negotiate your starting salary. But, when you’re working for the company and you’ve built relationships, this negotiation process is different. It’s more delicate. You’ll walk the thin line between getting what you want and walking away. It’s imperative to clear up your objectives before you proceed.

The objectives for your negotiation process can be:

  • Gain more respect from upper management.
  • Increase your total compensation.
  • Show that you care about your work-life balance and your life.
  • Progress in your working relationship with the company.

As you can see, the objectives are more than just improving your total compensation. This process is also for firming up your boundaries, deepening your working relationship with your company, gaining respect, and marketing yourself internally.

The process starts at the beginning of the year and ends when you finish the negotiation process.

1) Planning

At the beginning of the year, you should be planning out what you want to accomplish as a programmer for the coming year. Both from your workplace and extracurricular activities outside of work, what are you looking to accomplish in your career as a programmer this year?

You must see the big picture of your career. If you can’t see it, then do a mindmap. Diagram where you want to go. Then, ask yourself, how will my company help me get there?

You’re in a relationship with your company. You give, and you receive. It’s that simple. Ask the questions:

  • What can you provide that’s valuable for your company?
  • What can your company provide to put you on the map toward where you want to go as a programmer?

In the scope of these two questions, develop a plan for your development within the company throughout the year.

2) Execution

Once you’ve developed a plan, it’s time to follow through. Present your manager with a picture of your plan of growth within the company. Ideally, this is a friendly conversation you have over lunch or some kind of outing. You want your manager to take a stake in your career.

Ask your manager for detailed tasks you can complete so that you can provide value for the company. Add those tasks to your plan. Execute these tasks throughout the year.

Throughout the year, be proactive in spotting where you might be needed. Fill the gap. Be that go-to person who can perform. Whenever you’re needed, you step up.

By stepping up, you’re organically negotiating with your company for more opportunities down the line.

Throughout this process, document every line item where you provided critical value to your company.

3) Get the deal

Ideally, you have a great year filled with ups and downs. Toward the end of the year, your manager has a grin on their face. Each year, there will be fires to put out just before compensation time (no matter what company I worked at, it’s always the same).

These fires are designed to:

  1. Test to see who’s most valuable on your team.
  2. Facilitate negotiation for compensation by gaining leverage for the company.
  3. Alerting the team members that they need to do their homework to negotiate for compensation.

I’ve bumped into programmers who routinely took vacations during this time just to avoid the unpleasant feeling of “being tested” that this process entails.

You need to start your preliminary conversation with your manager before this occurs. You want to approach your manager by saying the following:

“Don’t worry about me. You know me. I’m not going to be a problem at compensation time. Here’s what I have done throughout the year to live up to the expectations we discussed at the beginning of the year. ”

Then, tell your manager that you’ll give a range verified from market value at the compensation time.

At compensation time, show all the work that you’ve put into the company during the year bullet-pointed and outlined. After your manager reviews this, then give your range. Make sure your range is realistic for the company to match. You also want to make sure your range carries a premium in case your company negotiates this down. Your range should include not just salary, but also all negotiable benefits. Stock is usually easier for your manager to match.

4) Prepare to walk away

There comes a point when you grow enough as a programmer that your company can’t afford you anymore. Your company also doesn’t have opportunities for you to step up in seniority. This is the classic growing apart scenario in your relationship. It may be the end of your relationship with your company. However, it may not be the end of your “networking” relationship with your colleagues inside this company.

Proceed with caution when walking away. Walk away by making your manager feel good about having negotiated. Walk away feeling like you’ve talked it all out. Then, you’ll both walk away feeling good about your working relationship.

Some things that can be done to smooth out the process:

  • Recommend a junior programmer who will be a good hire for your manager and your company.
  • Ask your manager to connect you to prospective new work opportunities that will grow your career.
  • Ask your manager for a good timeframe to leave without additional disruptions to the team dynamics (two weeks, four weeks, six weeks?).
  • Interview on your own time to not affect your work.
  • Wait until your manager announces your departure before telling anyone about your potential move.

As a programmer, compensation negotiation can be anxiety-inducing. Don’t let the anxiety multiply throughout the year. Instead, take control of the process by starting at the beginning of the year. Negotiate throughout the year by providing value. Then, when compensation time comes around, neither you nor your manager will be surprised by the outcome.

If you have to move on, leave on a good note.

You never know.

You may be back working for the same company down the line.

What are you waiting for?

Better Programming

Advice for programmers.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store