Negotiation for Software Engineers
And how it matters for more than just salary
If you clicked on this, I imagine you were probably looking for a post about salary negotiation…and I do not want to make you feel like you wasted the click. So I watched a Mayuko video about it, and a Kevin Naughton video on it, and read a blog post available on Educative. I will make this the focus of the introduction, at least.
I had considered including my own personal experience with software engineer salary negotiation, but it is three words long: I didn’t negotiate. They called me with a number, I said maybe, and then I thought about it for a little while before saying yes. That was my personal “negotiation.”
There is one tip that was common between all three sources, and it was to not give them a number. Instead, let them give you a number and negotiate up from there. The Educative post I included above elaborates on this, complete with a “baseline” salary you create by taking your monthly spending, multiplying it by 12, and then multiplying it by 1.5 or 2 to account for savings/investments. You have a number, but you do not reveal it. At this point the advice becomes more debatable, but the benefit of the Mayuko video above is that she interviews someone who has actually negotiated salaries on behalf of FAANG companies.
Even if you have a good idea of what your skills are worth, it’s best not to list a specific number when discussing salary.
Listing an explicit number essentially sets a ceiling for the maximum amount you could earn. Your listed amount could be less than the company was willing to pay, meaning you’ve accidentally lowered your pay. Even if your suggestion is spot on, the company will only negotiate down from there.
Instead, ask what their budget is for this role. The company will often lowball this budget, which gives you a salary floor that you can negotiate up from. Asking for their budget also opens up the possibility to get benefits outside of salary to sweeten the deal while still respecting their budget.
-From the Educative link
I think we’ve all heard this horror story about the recruiter who lowballed a candidate, settling for tens of thousands of dollars less than they were willing to give, then had the gall to brag about it on social media. Someone on Blind pointed out that this is part of the practice — from the company’s perspective, her mistake was not making the deal, but bringing attention to the company’s practices by posting about it. The fact that these companies are all willing to negotiate indicates the possibility of “money on the table.” In other words, logically speaking, these recruiters must have some incentive to offer lower salaries, and candidates in turn have a strong incentive to negotiate for higher salaries. Mayuko compares it to poker, which is the perfect metaphor here.
What does negotiation have to do with software engineer interviews? This is a software engineer interview blog, is it not?
Well…kind of. Originally, it was just a fake corporate blog for a parody company called CORGICorporation. I had also considered using it to review Silicon Valley episodes, but decided to use yet another Medium account for that.
When you first talk to a recruiter, you two actually have a “negotiation” almost right off the bat — you negotiate when to schedule your interview. As a candidate for a software engineer, you want a convenient time, and you may also want as much time as possible to study. The recruiter, in turn, wants to fill positions and is incentivized to do so. If you pick a date that is too far out, the recruiter may fill the position by the time you are scheduled to interview. If you pick a date that is too soon, you may not be ready.
The more I thought about it, the more interesting it became. Negotiation is everywhere. We negotiate for who will be assigned what tasks. We negotiate for assistance, sometimes treating our own team members like temporary consultants, or exchanging knowledge with deadlines as an incentive. Then, of course, part of our 1:1s can consist of negotiation. We negotiate for higher salaries, promotions, and the ability to work from home.
Negotiation Ninja Podcast
I was listening to the “negotiation ninja podcast” on my phone, and it definitely sounds like the kind of thing we would all make fun of on ShlinkedIn. They advertise becoming a thought leader, and some of the people they interview share the kinds of manipulative tactics you would read about in How to Lose Friends and Influence No One (Wisecrack’s nickname, not mine), like asking someone to do small favors in order for them to get a dopamine surge and inadvertently build trust. Here is my personal favorite thing they discuss in the podcast: If you want to acquire a company, act extremely nice to them until you convince them to sign a sign a form stating that they cannot “shop around.” Then, now that you have eliminated the possibility of them finding their true value from an outside company, turn off the fake niceness and whittle them down. Hire a team to review them, find small flaws that justify lowering their valuation, and acquire them for much less than what you had originally offered.
To be clear, the podcast episodes do not promote these practices. Still, I find it all pretty fascinating. On the surface, negotiation has very little to do with software engineering. You don’t negotiate your way through a compiler error. You don’t negotiate your code into not being vulnerable to the newest exploit. But we have to work with and for people, and as long as there are people involved, there is almost guaranteed to be disagreement, deal-making, and a need for compromise.
- This in a post with a similar theme, but anyone pulling in numbers like this should not be allowed to pretend to be relatable
- This in an article from the point of view of a company that is HIRING software work. It is the other side of the story, the people who are trying to build out software products by hiring us
- This in an article about negotiating for estimates
We were fourth-years in college, talking to a customer about the product they wanted to build. One team member took the lead, asking them for specifications with full confidence, and not once mentioning that we had no experience with this sort of thing. It ended up working out — other team members learned the programming language on the fly, and technically nothing she did was deceptive. That sort of “strategy” stuck out to me. I won’t say whether I consider it unethical or ethical to not be completely up-front about your own team’s abilities and experience, but…
…She is the same person who, when internship offers came around, knew exactly what to do. She knew to line up multiple offers, then get companies to compete in order to drive up a price. This is the kind of thing I had put zero thought into before, like women who talk about dating multiple Tinder matches before getting a boyfriend while I generally just swipe right 1000 times until I accidentally fall in love with a bot.
I really don’t want to end the post on that sentence, though, so here is Maxine the corgi.