How to Negotiate a Raise: A Guide for Software Developers

Written by Ryohei Watanabe
Updated: June 18, 2023
Table of Contents

How To Negotiate a Raise in Japan

Are you a software engineer going for a raise within your company? Then this short article is for you. I worked as a software engineer and doubled my salary in 2 years. In this brief guide, I will tell you how to negotiate a higher salary within your company. At the bottom of this article, I've included advice from developers in Japan that negotiated a raise.

Email Template

Here is the email template I like to use to begin a salary discussion. I begin by stating the company's philosophy of compensation (by seniority, performance etc). Then I list the feedback I received and the accomplishments based on a brag sheet that I keep. The salary increase should be the logical end of all the positive feedback and achievements.

During our conversations, you said that performance is based on [insert their criteria].

During our performance reviews, I have received great feedback [insert the feedback you’ve received].

Here are some of my achievements so far.

  • [insert achievement] which led to [insert impact] for the business

  • [insert achievement] which led to [insert impact] for the business

  • [insert achievement] which led to [insert impact] for the business

Based on my accomplishments and current market rates, I would like to discuss a salary increase. A salary increase to [desired salary] would be aligned with market rates and the achievements outlined above. Do you have time next week to discuss this?

What about team spirit?

If you're negotiating your salary for the first time, you'll need a mindset change. Most developers avoid asking for a raise because it's uncomfortable. They have vague fears of not being a team player. My experience has been different. I have never seen these fears realized. Every conversation I had was collaborative and pleasant. The feedback I received was "we've been seeing how hard you have been working and we think you deserve a raise as well." The fear around being a team player is a fear of failure in one of its many guises. If you need a little more encouragement, here's a quote for you.

team spirit is for losers, financially speaking. It’s the glue that binds the losers together. It’s the methodology employers use to shackle useful employees to their desk without having to pay them too much. Felix Dennis

Any reasonable business owner understands how important salary is to their employees. Employers also understand that software engineers can work elsewhere. This is doubly true if you do good work.

The company will keep you if your contributions outweigh your salary. If you do good work, you should negotiate a higher salary (hey, you earned it). The only rule is to negotiate like a professional.

If they refuse to increase your salary, you're in the same place as when you began. But you will have more information about your performance and areas for improvement. You can improve those areas and ask again. You can decide to stay at the job or search for another job after you ask for a raise.

Best Practices

Asking for a salary increase is serious business. It takes preparation and hard work. Here are some things I did that helped me advocate effectively.

Keep a Brag Sheet

Keep a brag sheet of your achievements at work. This brag sheet should have details of what you accomplished and the impact you made on the business. Keep this in a .txt file on your computer or note-taking app. Write down each of your contributions and the business impact they had.

Why?

When you ask for more salary, you must have good reasons. These reasons have to be compelling to your employer. When it comes time to negotiate, your memory will fail you. Your brag sheet will not.

In your brag sheet, be objective about your accomplishments. If your brag sheet is sparse, think hard about whether it's a good time to argue for a salary increase: you may not be doing good work or you may not have a convincing case for a raise. You should put all your focus on doing good work and revisit the salary increase in a few months.

Side note: brag sheets can help you write a good resume if you ever move to another company. It will also be great for your interviews.

Do Good Work

Sounds obvious but do good work. It's the most important thing you can do. Nothing else matters in salary negotiation if you don't do good work.

If you do great work, you have a good chance of increasing your salary.

Side note: Doing good work helps when you change jobs. Most coworkers will give you a stellar referral. Referrals are still the best way to change jobs.

Copy Someone Better

If you don't know what "good work" looks like, you can hack it by copying the best engineer on your team. This will be your version 1 of good work. Look through their past comments in code reviews. Understand what they look for in code. Study their suggestions in meetings. Study their work habits. Study their code. What features are they working on? What are they doing? Copy them.

A good copy can't be distinguished from the original. Yeah, copying is a bit of a hack. But until you have a better image of what good work looks like, you should copy. It's better than paralysis by analysis. It's better than whatever image you have of good work. The upside of this approach is that you will be doing the same work as a senior engineer and showing your team your willingness to contribute. After a while, you can get promoted. You'll also find someone willing to teach you.

Nobody will stop you from doing good work. You can do it if you want. But it’s easier said than done. You’ll mess up a few times. That’s okay. Just make sure you understand the business before you start making wild suggestions. Or you will receive the you-can't-be-flippin-serious look from your team.

Learn on your Own

I should write a blog post on how to become a better developer. But tldr. You should be studying and making stuff outside of work to bring new ideas to your workplace. You should work on difficult stuff at work. You should be teachable. You should find mentors by enthusiastically contributing to your team.

Have a Stellar Reputation

It's important to have a good reputation within your organization. Go out of your way to help people in your company. The word "reputation" is not in your work contract but it’s the subtext of every responsibility you have. Aim to have a stellar reputation as a helpful person and problem solver.

By helping other people, you'll be doing good work. I had a few great mentors that were always willing to help me. I used to advocate for them to company leadership. "You must keep this person by any means necessary. They are essential to your business." I never told my mentors I did this. But you can assume other people will do it for you.

While your main job is coding, you can contribute to the company in other ways. I created a referral program, rebuilt the hiring process, and wrote job and company descriptions. Pick up the slack and be helpful wherever you can.

It’s not your main job, but it will help the business and create a good reputation among your coworkers. At a small startup, there may not be enough people to do all the work. So you can pick up the slack.

Some workplaces do not care about this work. If it won't help you negotiate a higher salary, you should stop. Or you can do it for your own learning. I leave it to you to decide.

Side Note: meeting participation can impact reputation within the workplace. It’s not a perfect system and it seems trivial. But it's reality. Participate in meetings. Offer good suggestions. I could have done this a little better.

Practice Empathy

Your company should give you feedback in regular 1-on-1 conversations. They should be telling you how to improve your performance about every quarter. If your company doesn’t give you feedback, ask for a meeting with your manager. You need to know how your company determines performance and salary.

With this knowledge, you can advocate for yourself using your employer’s stated goals. You can also begin to work on those things that will help you argue for a salary increase.

In a negotiation, knowledge or information strengthens your case. It will also teach you what to work on. You can also ask the senior engineers on your team to give you feedback on your performance. I've received a lot of feedback this way.

People invest time into teaching others if they show curiosity and drive.

Side note: if your company is an early-stage startup with no clients or revenue, it's hard to get a raise. You should have empathy for their financial situation as well. You might have to change jobs to get a raise. It depends on the business and I leave it to you to decide. But each company and developer is different. Growing companies have more room to give you a salary increase.

Be Realistic

You should be realistic about your salary expectations. Understand the market salary for your role and experience. Don't compare your salary to Google unless you work at Indeed. The reasoning is simple. If you quit and changed jobs, what is the reasonable salary you can expect? That's the salary you should be going for. If you are essential to your business, please ignore this advice (there are caveats to very piece of advice).

If you are below the market salary for your role and experience, bring it up during your negotiation. But you can be above market salary and still ask for a higher salary. It depends on how essential you are to the businesses. It also depends on the financial situation of your company.

Bad Practices

Hide your desired salary

Most salary negotiation articles say to never give your number first. This is good advice for software engineers who have not been hired yet. But that's not you. If you're asking for a raise, you work at the company you are negotiating with. They gave you their number already and it's your current salary. You will not gain anything by having your employer give you their number. Better to be direct here.

Be Confrontational

Be professional. You are not an aggrieved party (you agreed to the salary when you joined). You must collaborate with your employer to reach a satisfactory salary number. You will not get what you want if you are confrontational or aggressive.

Threaten to quit

Threatening to quit will ruin your relationship with the team. I also doubt the efficacy of these threats. Most business owners do not enjoy having a gun to their head. Most employers know that you can change jobs anyway, so it's not necessary to bring this up. They also know how hard it is to hire good developers. Hiring and training developers is a pain and brings its own risks.

Ramble

State your reasons logically. Then ask for a specific salary number. Then wait. Allow them to respond. If their deliberation takes them a few days or weeks to talk about, that’s okay. It’s par for the course.

Talk about your personal goals

When you advocate for a raise, frame the discussion around your achievements and how they furthered the business's goals. Your company might now be sympathetic to your desire to move to a nice neighborhood or to send your kids to a private school. These are fine personal goals! But they are not good reasons to give you a raise. Your company pays you to solve their business problems.

Caveats

I do not profess to be a salary expert. I’m just a guy who tried raising his salary at one tech startup in Japan. This article is based on my experience at a growing startup on a good team.

The situation is different if you are negotiating your salary during the hiring process or in USA.

These guidelines may not translate to a bigger company. Big companies have different processes. Also, salary isn't everything. But it's definitely something.

Community Feedback

Developer Feedback

I would add one small thing:

Make sure your request is in writing (and obviously is well laid out). The person you’re speaking to often needs to get approval from someone at a higher level. You can make their job easier by allowing them to copy and paste what you’ve written and bring it to the approving manager. If you don’t write it out, you leave it up your manager to advocate on your behalf with only their own words and they have to paraphrase what you’ve laid out.

You may have already mentioned this, but also “Asking for what you want” is one thing people are afraid of. I’ve recently countered an initial figure by letting them know it’s a bit lower than what I wanted - I was hoping for this “NNNyen” and was surprised when they said “okay” 😆.

I almost didn’t ask for it because it was uncomfortable and the initial offer was good. But I’m really glad I did. If you’ve done your homework and are being reasonable, I don’t think there would be much of a backlash if your number is a bit too high. If they’re a good company, they’ll just say no and let you know what you need to do in order to get there 🤷.

Software Engineer, International Tech Company

Head of Engineering Feedback

Brag sheet is def good advice. I’ve only worked in NYC-based companies with VC budgets so absolutely nothing I’m about to share here is relevant to Japanese companies, but small startups here might share some similarities with US startups at times.

In my experience, this stuff changes dramatically with maturity of the leadership (not the same as age of leadership or company) and the budget available. My current company isn’t a startup anymore but I’ve had two experiences with high growth startups, one was well run, the other was not.

  1. Current company but 8ish years ago: they were 100ish people (60ish engineering) and doubling every year when I joined. Leadership came from mature companies and they did and still do compensation in what I consider the “right” way: compensation is tied to performance and reviewed on a regular cadence, full stop. You can’t negotiate salary other than when you enter the company. After that it is all about matching the performance of the individual within the career ladder level to the salary band for that level.

    • Outcomes: company has shared internal metrics that compare salaries in aggregate for a given role across demographics like gender, race, etc. and folks are paid extremely consistently (like within 1% differences between groups) so I think it is effective at reducing bias.
    • Advice if you’re in this situation: brag sheet, advocate for your performance, same stuff you would do for promotions. Managers (and especially senior managers) have discretion for salary increases beyond just promotions, so impress your manager and your grand-boss, because compensation decisions eventually get rolled up and you don’t want senior folks to scoff at the proposal, so use your skip levels if you get them and publicize your work as broadly as appropriate.
    • Caveat: this requires mature leadership and high budgets.
  2. Company [-1]: similar size company, much smaller eng team when I joined (only 15), but doubling each year for a few years. Compensation updates came with promotions or like… whenever they thought about it? It was completely adhoc and confusing. Had no idea when to ask or what to expect.

    • Outcomes: found out that despite several ad-hoc increases that felt huge to me that I had been underpaid (below the bottom of my salary band for my level) for over a year, and this was one of the inputs that caused me to have less faith in the leadership and move along to the next gig.
    • Advice in this situation:
      • Talk to your peers about compensation if they are comfortable with it to get a sense of where you are and how much you think you can ask for. But I wouldn’t directly quote others’ salaries when negotiating your own worth. Your managers won’t like it and you want them to stay positive towards.
      • Even if your company doesn’t have a formal career ladder, they might still have salary bands for each level or title. The numbers in the bands are often kept secret (until recent US legislation that forced them into the public), but your manager might be willing to tell you where in your level you are percentage-wise. Then make your argument for a raise based on that anchor point and the expectations of the role.
      • See if you can get your manager to agree to a regular check-in on salary, this can reduce the anxiety of building up to an ad-hoc ask.
      • Have some empathy for your manager who is probably dealing with a shit-show and doesn’t have much budget to work with. It is never as personal as you think it is. Overall, the reason that negotiating for raises feels gross is that it is gross. Pay should be based on job performance, not negotiation skill.

Matt Murchison, Head of Engineering, Flatiron Health Japan

Share this article

Ryohei Watanabe is the founder of Eight Values. He lives in Tokyo. Looking for your dream engineering team? Check out our list of software engineer jobs in Japan.

Popular Posts

Software Engineer

How to Negotiate a Raise: A Guide for Software Developers

How to raise your salary after you join a company. A personal reflection on what to do.

Ryohei WatanabePhoto of Author of Blog Post
Ryohei Watanabe
Rejection Developer Job Hunt

Rejection in the Developer Job Hunt

Eight Values update, 3 ways to think about rejection in the job hunt, 1 job hunting tactic.

Ryohei WatanabePhoto of Author of Blog Post
Ryohei Watanabe
Coding Bootcamps in Tokyo

Coding Bootcamps in Tokyo: Alumni Reviews and Comprehensive Guide

A comprehensive guide to the best coding bootcamps in Tokyo: Code Chrysalis and Le Wagon. Alumni Reviews, Average Salary, Coding Bootcamp Vs Self Study.

Ryohei WatanabePhoto of Author of Blog Post
Ryohei Watanabe

Related Tech Jobs In Japan

Tech Lead

amptalk ・ Tokyo

Apply
  • Tokyo
  • Visa Sponsorship
  • English OK
  • Partial Remote