The last step to getting your dream job as a developer is everyone’s favorite: signing the offer letter and making it official. But the first salary a company proposes doesn’t need to be the final offer that you accept.
Here are five rules to follow when negotiating a job offer that will ensure both you and your future boss are happy.
Rule #1: Be reasonable.
The quickest way to an employer telling you to kick rocks in any situation is making unreasonable demands. Demanding a salary way outside the proposed range is a guaranteed way to not be taken seriously.
Most job listings include a salary range for the role. If your salary requirement is way outside the range that is listed (think: $10k+ beyond the upper end), get the question out of the way early in the process.
A quick question early in the hiring process will help you in the negotiation process down the line. Here’s a polite way to see if there is negotiation room in the salary, and something you should ask even before the first interview.
Is this position full- or part-time? I ask due to the salary noted. Is this salary a set-in-stone number?
Questions like this will get one of two answers. Either the salary is set in stone or it is negotiable. If the company indicates they will not be able to pay you in the realm you need up front, you don’t need to waste their time. If they tell you it is negotiable, they’ll be expecting negotiations after they give you an initial offer, making it a lot more reasonable when you start to negotiate later down the line.
Put yourself in the employer’s position and make sure you’re acting reasonably in all situations.
Rule #2: Reasons matter.
The most compelling reason you can give when negotiating your salary is that you just want to match your current salary. If you were making a certain salary in a previous position, indicating that you want to make a lateral move, or just not make less than you’re currently making, is an argument that’s hard to beat.
In many situations, making a lateral move into a career as a developer is a smart, long-term goal financially. For instance, senior developers with 5+ years of experience in San Francisco average $134k/year according to Hired. In most situations, transitioning into the field of web development puts people into a situation where upward mobility in salary is possible, especially if that person has already reached a high position in their current role.
If you made a higher salary in a previous role, and it’s within the ballpark of the range the position lists, mentioning this could help you in the negotiation process– that you’re willing to make a lateral move salary-wise to a role with a more promising future.
Rule #3: Company size matters.
Big development companies operate very differently than small companies. In most large companies, there are well-organized compensation structures.
In large companies, there are often tiered levels of developers.
The title Software Engineer I corresponds with an entry-level developer, and positions progress up to Software Engineer VI (level 6), which is commonly used to indicate a very senior developer. In correspondence with these tiers, there are certain bands of salary that the various levels are compensated.
Each level has a minimum yearly amount and a maximum yearly amount and the range is often anywhere from $10k to $30k. This means, given a certain title, you can be compensated better or worse.
For a position like Software Engineer IV (level 4), a compensation band of $75,000-$110,000 is possible. For a position like Engineer VI (level 6), compensation bands might look more like $95,000-$150,000. The specific numbers will vary company to company and depend on where the office is located.
If you’re currently being paid on the lower end of the band, asking for a raise is generally pretty easy in a large company. So long as your managers are happy with your performance and the company has the budget for it, they can usually pretty easily move you up.
That’s why in general and all things being equal, I would suggest trying to negotiate the level you’re coming in at over upfront cash at a large company. Consider these two scenarios.
An offer for $60,000 is made. Person A negotiates the offer to $70,000/year.
An offer for $60,000 is made. Person B negotiates to a Software Engineer II title.
A year from that point in time, if both people were to ask for a raise in this large company, very different outcomes would happen. The first person, who negotiated the salary and is currently being paid $70,000/year, would be receiving a salary at the top of the band and their request would likely be refused.
But, the Software Engineer II is being paid at the bottom of a higher range. This means a raise to be paid $80,000/year would be easily doable.
I’ve personally had friends who have made a salary jump from $75,000/year to $120,000/year in a single day because of the disproportionate value they were providing relative to their pay grade at very large companies.
In small companies, titles often don’t mean anything. Coworkers of mine who were at the middle point in their career negotiated to have “senior” added to their title. Similarly, if you’re joining a company and the title of the position is Junior Web Developer, you can probably pretty easily negotiate to get the “junior” out of the title.
In small companies, compensation structure isn’t directly linked to the title; it really doesn’t matter at all for the company. They will likely go for it, and this will make it easier for you to negotiate a higher title when you ultimately move on to the next position.
A small percentage of startups get acquired (or bought out) by large companies, but it does happen. Also, when moving to a bigger company with more structure in compensation, they’ll generally try to map your previous title at a different company to your new position. When they do, employees are switched from a loose system, in which titles are irrelevant, into a new, formal system in which the structure is linked to compensation.
In general, the mapping looks something like this:
The difference between Software Engineer I and III at big companies is often as large as $20,000-$30,000/year. Improving your likelihood for being considered for more mid-level and senior roles in the future makes this a no-brainer to negotiate at small companies.
Rule #4: Negotiate improvements to your quality of life.
If you have a long commute to the office, working remotely can give you an improved quality of life in the form of more time with your family, or more freedom to do whatever it is you enjoy. Spending part of your time working remotely is viable in many companies.
One of my coworkers insisted on programming on a massive Apple Cinema display. He was convinced that the quality of his work would be improved by having better tools. Since he was spending 8+ hours a day staring at a monitor, that was something that mattered to him.
Rule #5: Look at your first role as a developer as an investment in yourself.
Consider two different offers, where one position pays better but doesn’t offer as much opportunity to learn, grow, and be mentored. You would be doing yourself a disservice to decide on and accept an offer on the basis of salary alone.
Down the line, your value will be tied to the skills you have. I would almost always suggest taking the offer that you think gives you the most potential to learn, grow, and be challenged as a developer.
In your first position, you’re going to make mistakes and you will learn a lot starting on day #1. Rather than worry about maximizing dollar amounts in the short term, I suggest focusing on getting a position in which you’ll be able to learn the most.
But in the process, make sure you are compensated fairly. As a confident developer, you should be looking to accept a role at a company where you can grow the most and be compensated fairly for the work you’re doing. If at any time in the interview process– starting with your first contact with the company– you have concerns about the position, communicate them honestly and openly.
By communicating about potential problems as soon as you notice them, you set yourself up to be able to handle them when the offer comes.
Know someone who is on the journey to becoming a web developer? Share this post with them!