DEV Community

Vignesh M
Vignesh M

Posted on • Originally published at

How to negotiate for a better salary - Tips for Developers

You might be a great developer with a diverse skill set but if you don't have the soft skills that are required, you may not be going to the place you've been dreaming of. Negotiation is one of those skills that are important for any job. Whether you're negotiating for an offer in an interview or negotiating for a raise with your company, there are some simple things that you should follow to yield better results.

Recently I was discussing in a twitter thread that is discussing salary discussion and how to negotiate better. I attended almost 30 interviews before joining on my current job and turned down most of the offers I got in the salary negotiation round. I can say that I learned a thing or two in those situations and that twitter thread gave me enough motivation to write this down.

Note 1: This is written mostly based on the Indian job market and I am not aware of any other country's job market, but most of these points can be applied to any job anywhere.

Note 2: This is written with experienced developers in mind. If you're on the first 3 years of your carrier you might be still learning a lot, you're welcome to read this post but I am not recommending this advice for you.

1) Know your value (Market research)

First and foremost thing is to know how much you're worth as a developer. You should be aware of the average market rates for your skillset and experience. Companies will mostly try to stick within the market average unless they're in need of an urgent resource. But in most organizations this information is confidential and one should not reveal how much they're getting paid to their peers. This is partly for good reasons and partly used by some companies to take advantage of people.

So the only way to get this information is to get it from the community of developers around you. Go to your local meetup group, WhatsApp/telegram groups for developers and try to talk to them about it. To yield better results, share an anonymous form with the group and you'll have a better chance of getting that information.

There are online sources of information such as Payscale which provides this information along with further advice on your career path, but I am skeptical about the accuracy of the information. Recently there was also a twitter trend #KnowYourWorth in which a lot of people posted how much they make and someone did a stellar job of making a beautiful website with that information grouped by countries. Chances are twitter might be more accurate than payscale's data because it is very recent.

I suggest you use two or three methods of finding this information and then find an average between them. Try to have your expected salary around the average so you'll have a better chance of getting what you want.

2) Don't reveal your current salary

This is a great trick used by a lot of recruiters to limit your negotiating power even before you attend the first round of interviews. Mostly on your first interaction, they will ask you about your current salary. This is a tricky question and it is really hard to work your way around this.

Why you shouldn't reveal your current salary?

Because the companies are trying to use this information to determine what they can give you. They will bluff you with things such as 30% hike is the industry standard when switching between jobs. But the reality is there is no such thing as the industry standard. Companies will pay much more than what is being paid for the same role if they are in urgent need. After all, if the 30% hike is the highest limit you're going to give, why bother interviewing and having a salary negotiation round at all?

Don't fall prey for the tricks of a recruiter who is trained for this. So how do we handle the question?

The very straight forward answer to this question would be "I don't want to reveal my current CTC, let's discuss your budget and see if my expectations are in that range". Any decent recruiter would understand that you dodged their bullet and should move on by saying their budget. But some will counter you that it is absolutely necessary information for them to process your application.

If they insist on wanting that information just tell them your current CTC and let them know, you wouldn't want the current CTC to have any effect on your expected CTC before opening it up and let them know you'll not attend the interview if they pull up the industry standard thing when negotiating.

Another better way to handle this is that saying them "I can't share it now, I will share the current CTC later in my salary negotiation round. let's talk about expected CTC now". This is better because you've given them a hint about what are your expectations and then they can decide if they can afford you or not.

If you haven't revealed your salary in the first communication with them, you can avoid stating it in the final negotiation round as well, use the same technique of I don't want to reveal it, let's talk about what I want here instead of what I am getting now.

Doing this in the first round will be harder than doing it in the final rounds because the people in the final rounds have the actual decision-making authority and if you refuse to reveal your current salary they can actually work around it and give you better options.

Unfortunately, some of the recruiters who will contact you on the phone themselves believe that the 30% industry-standard thing is real and it'll be a lot harder to convince them otherwise. In that case, if you're not in a high need of a job respectfully refuse to reveal the salary and let them know you're open for discussion if they can work without knowing the current CTC. If they get mad and disconnect the call let them be. If enough people started doing this they will drop using this trick altogether.

If you're in a high need for the job you already lost most of your negotiating power (trust me, HRs can find this without directly asking you), one way to solve this is to do job searches when your position in your current company is not weak or things are not really bad. Another way is to have enough savings to be able to manage one or two months without working on a job.

In any negotiating situation, the upper hand is to the people who have nothing to lose if the deal isn't through. So always be prepared to walk away from an interview if your terms are not met.

3) Don't mention the expected number first

This is the 101 of salary negotiations, you should not open up about your expectations first because the one who opened up first might have been the one who sold himself shortly most of the times. If you can avoid or can talk them into opening up you can know what they can offer and then you can counter-offer.

If they're giving you a number its highly likely that they are ready to give you more than that, so use the market research information you got and then increase some X amount from it and then ask for it. You'll most likely be getting what you wanted if you done really good in the interviews.

But in some situations, if they are better in negotiation than you're they'll try to get the number out of your mouth and holding it for long is not a very good strategy. If you're asked more than once to say your expectations, don't give an absolute number. Give something of a range in which the lower end of the range must be a little higher than what you actually expect from them. If you give people a range they'll most likely pick a lower number in that range.

4) Learn the demand of the position

Like I said before, most companies will pay a lot higher than their usual pay scale if there is an urgent opening. If you are going to an interview try to learn about the urgency of that position from an employee of that company and use that information. If you can't get it from an employee, you can get it from the technical interviewer you're talking to.

Most of the technical interviewers might know about the urgency of the position, you can get the information from them by asking indirect questions about the project you're going to be working, how long this position is open, how many interviews were done for this position. This information not only helps you to learn the demand but to learn more about the work culture of the company as well. In any interview, you should be spending as much time as possible with the technical team and try to learn how it is to be working there because money is not the only factor to choose a job.

5) Market yourself as a brand

This is a piece of great advice I learned from the Soft Skills: The Software Developer's Life Manual by John Sonmez. It means a developer should think of himself as a brand and should try to market himself as one. This includes writing blog posts, podcasts, speaking in conferences, organizing events. If the technical team that is going to interview you know about you and your work already, your chances of getting what you want is really high.

Most of the salary negotiation round's outcome is based on your performance and the impression you made on the technical interviewer. Imagine if you are already known to be a great developer and impressed them before even getting into the interview. If you're known as a great developer it is also easy to learn a lot about the position because the people from that company will be more willing to have a conversation with you.

6) Using an offer to get better offers

This is where things start to get a little gray. I won't say that trying to get better offers using current offer is wrong but you should be fair and honest in the process. I have been on both sides of the recruitment table and learned that how much it costs for a company to interview and release an offer and how it affects if someone says that they're not joining on or before a week of their joining date.

If you used your negotiation skills and got what you've asked, the right thing would be not to attend any further interviews. But if they negotiated back and you're getting a lesser offer and you want to use this as leverage, you can do it fairly by doing the following.

Don't accept the offer right away if you're not satisfied with the given offer (In fact, never accept an offer without a day of thinking on it). Ask them time to think about it and let them know you're not completely satisfied with the given offer and you'll be open for other companies to approach you. If you do this chances are you might get a slightly better offer from the same company within a day or two.

Often They will try to make you accept the given offer and you should wait for at least 3-4 days before accepting that offer. Companies will push you to accept an offer but in reality they can wait longer because interviewing another candidate is costlier than waiting a few days for you to accept their offer.

In the meantime if you are contacted by any other company let them know you have an standing offer and we can continue if they are willing to offer more than that. Also let the first company that offered you know that you're in discussion with another company now and they are willing to release a better offer. This might sound wrong but what's actually wrong is doing it under the table and giving surprises to people.

If you're open about this any decent company will appreciate your honesty and try to counter what the other company has to offer. In the worst case, they will pull your offer back and you have to go through another company's interview where you may or may not get the offer. If you haven't got anything with the new company, you can contact the first company and check if the position and the offer are open now.

This approach is a bit of a mess in my opinion and I would just take the high road if possible. But there is nothing wrong with doing this because companies will interview multiple candidates to get a better candidate and this is no different than that. What makes the real difference is how honest and open you're about your actions to everyone involved.

Don't do's in a negotiation

  1. Don't be greedy. if you asked X and given X, don't try to ask more again. It is over when you're given what you've asked.
  2. Learn whether you have an upper hand or not and use these techniques only when you're in a demanding position.
  3. Have an honest assessment of your skills and whether you can do justice for the amount you're asking.
  4. Respect the time and investment the company is making on interviewing you and try to be fair to them (#6).

That's all I have to say about negotiating salaries, I don't consider myself an expert in negotiation. I have been doing really bad negotiations since the beginning of my career. But I learned from witnessing some of the good negotiators doing it and practiced those in actual interview situations. Negotiation is a skill, just like all the other skills it can be practiced, mastered.

Thanks for reading so far, I would love to hear your thoughts on the blog post feel free to comment or DM me on Twitter or LinkedIn.

Top comments (9)

recursivefaults profile image
Ryan Latta

Great article! I wrote one for a more US audience a little bit ago. We have a lot of the same advice.

One thing I'd highlight is that the using another offer to negotiate has ben very risky in my experience and for my mentees. Some companies will hear that you have an offer then feel as though the pressure for them is lessened because you have an offer and they have other candidates.

I do think, it is way better to negotiate when you have the security of another offer or are currently employed. That way you have a safety net, and that helps prepare mentally for the negotiating process.

shivenigma profile image
Vignesh M

Hi Ryan,

Yes. It is little risky but it is kind of becoming a norm in Indian job market. But everyone is doing it under the table and hurt company's business one way or another. I would not recommend doing it either if there is an another way.

recursivefaults profile image
Ryan Latta

That is really interesting. It is great that you were able to provide a perspective on what is going on in India. It'd be really great if other people could chime in from other countries too!

khusnutdinova profile image
khusnutdinova • Edited

Hi Vignesh, thanks for such a useful post.

Negotiation is a tricky thing! We also posted a short article on how to negotiate salary in tech How to Negotiate a Developer Salary While Searching for a Job Abroad. Would highly appreciate it if you check it out.

ogaston profile image
Omar Gaston Chalas

Great post Vignesh.

I respectfully disagree with the note 2 of your recommendation. I think that any developer with 2-3 years of experience might perfectly leverage these tips and they could work as well.

but, Why do you think they shouldn't?

shivenigma profile image
Vignesh M

Hi Omar, thanks for stopping by. The leveraging power comes from being hard to find and having a strong skillset. In 2,3 years not everyone can possess them both,that is just my observation of the surroundings. I'm sure one can play well using these tips and get something great out of it. In general, I can't see if this kind of demands can be made by juniors.

The demanding power increases when you become strong and confident that you can survive. In my opinion, the first 3 years should be focused on building yourself(skills).

askarmus profile image
Askar Musthaffa

A very good technique to negotiate salary.

shivenigma profile image
Vignesh M

Thank you.

shivenigma profile image
Vignesh M

Thanks Nelson.