« Simulated Annealing

Compensation 101

What I wish I knew before I started my job search

I spent a few months last year searching for a new senior software engineering role. Looking back on the process, the hardest part was figuring out my approach to compensation and salary negotiation.

At the beginning, my plan was to get as many offers as possible. This is the standard advice that most job seekers in the tech industry receive and it’s very appealing due to its straightforwardness. By getting multiple offers, you are receiving the most up-to-date signals on your market value and can leverage the offers against each other to maximize your compensation. I am especially drawn to this myself, since my engineer brain likes working with concrete facts and numbers.

But as I went through the process, I realized there was more to do than simply wait for the final stages to begin thinking about compensation. I quickly learned that companies did not politely wait to bring up compensation—while it is illegal in California to ask about previous salary numbers, many recruiters ask for general “expectations around compensation” in the first conversation. I kept pushing back the discussion, citing that I was in the process of gathering information, while panicking more and more since I had no clue how to gather said information.

In the end, I randomly and haphazardly did research for a few weeks before beginning the actual negotiations. With the benefit of hindsight, here’s how I wish I had approached job compensation.

Pre-interview: Set your baselines

There were a number of effective methods I discovered for gathering up-to-date salary information. I made the mistake of searching for this data after I had already begun several interview processes, meaning I was still adjusting my baselines during active conversations with companies.

1. Free online research

I am still surprised by the amount of publicly available information now regarding software engineer salaries. It is much easier now to get actual numbers around base salary and equity packages than it has been in the past.

Of course, you need to take any free online research with a grain of salt. Use this data as a ballpark estimate, rather than an definite benchmark for your own future compensation. The data might be inaccurate, since most of it is anonymously self-reported and also leaves out important demographic or region-specific adjustments. The offers you receive may also vary significantly depending on the role itself, making it hard to use a frontend web engineer salary as a baseline for a backend systems engineer.

Some websites I referenced included:

In addition to online websites, Twitter is an excellent source for specific numbers on compensation. Unfortunately, it’s hard to find these tweets and the discussions might not be happening exactly when you are looking for a job.

Jackie Luo turned her Twitter thread of anonymous self-reported salary numbers into a blog post aiming to provide more salary transparency.

The recent #KnowYourWorth hashtag was really impactful in encouraging engineers to publicly share their compensation information.

Unfortunately, the discussion quickly devolved into an argument around being overpaid or underpaid, plus infighting about the huge disparity in compensation for underrepresented minorities (URM) and across various geographic regions. Many people who decided to share their compensation ultimately deleted their tweets, demonstrating how Twitter is not necessarily the most dependable source of compensation data.

Here’s a good explainer thread on the challenges of discussing tech compensation on a broad scale, along with some advice on how to negotiate:

2. Crowdsourcing compensation

The #KnowYourWorth hashtag had the right idea, even if it derailed in the end. Talking about compensation is very awkward and 280 characters is not exactly conducive to level of the nuance required to understand how or why someone was able to negotiate their pay.

Instead, I think a better approach is crowdsourcing compensation data from your personal network. In-person conversations with industry peers and coworkers allows you to have those nuanced, in-depth discussions and better understand any discrepancies that might exist.

I was initially hesitant about asking friends about their salaries, fearing that people would get offended or shut me down. To my surprise, all the people I asked enthusiastically agreed to have these discussions. It helped that I was equally willing to share my previous salary and any offer numbers I received at the end of my own job search process.

It was especially helpful to talk to peers who were the same level of experience and had recently been through a job search of their own. I could leverage the compensation numbers as if they were additional competing offers that I received.

For example, a former coworker with the same experience level had accepted an offer from a large unicorn company nearing IPO about a year earlier. He shared with me the details of his offer package and those numbers ended up being incredibly useful to me during negotiations.

coffee_chat A re-enactment of the coffee chat with my coworker.

I had ended up receiving multiple offers, but only one was from a FAANG-sized company. The rest were from smaller startups, who had extended me offer packages that were, understandably, heavily-skewed towards stock compensation. The difference in company sizes made it very difficult to use the alternate offers as leverage during negotiations. The large company was able to argue their offer was better because it was guaranteed income. The other offers, while generous with their equity grants, were significantly riskier and could be framed as uncertain lottery tickets.

Having the concrete numbers from my coworker allowed me to push back the big company’s resistance. Even if it was a year prior and not an offer I received personally, I countered using actual data to argue that my market rate was higher. After hearing this, the company offered me an additional 10% in my offer package, citing that their “understanding of market rate was updated” for the role.

This anecdote demonstrates a few things:

  • Negotiating power is skewed against the candidate: I needed to justify my arguments with additional supporting evidence, whereas the company recruiter can just rationalize the merits of the current offer.
  • Large variance when relying on just the set of offers you receive: if you happen to receive offers from a wildly differing company sizes and compensation structures, it will be difficult to negotiate.
  • Companies themselves may not have the latest information: even though companies have access to data providers that help determine their rates based on equivalent roles, this doesn’t mean they have perfect information. Sometimes companies may be operating on an outdated pay model, not maliciously attempting to underpay their candidates. I have heard of entire salary bands for roles being updated internally because the pay was not competitive enough, after multiple candidates gave them data about alternate offers.

Gathering more data mitigates all these factors, and crowdsourcing compensation is one of the most effective ways to get reliable data.

In addition, I find that frank discussion of compensation is beneficial to all parties, even those not actively job searching. Shared salary information helps fight pay inequity, and also establishes a relationship of trust and openness. I notice I feel more at ease discussing other difficulties, since we have already set a precedent of being willing to talk about uncomfortable topics like compensation.

For those unsure about how to initiate the conversation, here is an example template you can use to reach out:

Hey [NAME], I’m currently looking for jobs right now. I know you recently just went through the job search yourself. If you don’t mind sharing what your [COMPANY] offer was, or what you did to negotiate the offer, that would be super helpful. I’m also happy to share the offers that I get. I’d love to buy you a coffee and chat in person, but also no problem if you prefer not to share!

I feel strongly enough now about the benefits of pay transparency that next time, I will aim to have these conversations with people outside of my immediate network. There are a variety of small-scale forums (not Twitter) where prompting discussion could be really impactful. Some ideas include setting up an in-person chat with industry peers at conferences or coordinating a call with a subset of fellow engineers from communities like the Android Study Group.

You can easily find information about macro trends around pay disparity in tech. Candidates who don’t negotiate make 20% less on average than their peers. If you’re in a position where you don’t have other data points and are unsure how to negotiate effectively, the statistic can help set a benchmark. In other words: “Not negotiating? Ask for 20% more.”

These macro trends are especially useful for women or underrepresented minorities in tech who are systematically underpaid. I focus on the numbers for women in tech since that is my relevant demographic, but I encourage you all to do your own personal research because the industry-wide discrepancies in compensation are often shocking.

Hired’s 2017 Wage Inequality Report found that companies on average offer women 4% less than men for the same role, with some offering women up to 45% less. According to Carta’s 2019 Table Stakes Report, women employees own 49 cents in equity for every dollar men own. Though women are being compensated with equivalent equity as men given the same role, the study found that:

Women aren’t in the right roles at the right time—the roles with outsized equity. (…) In companies under 20, women represent less than 30% of employees. For successful companies, strike prices typically rise as companies grow and raise more money. All else equal, early employees have the potential for more earnings.

I’m not sure there will always be direct action items around these industry-wide statistics. It’s a little unclear if you can create a blanket policy as a woman to always “ask for >4% more compensation” or aim to join companies with less than 20 employees for “outsized earnings.”

I do believe it’s useful to know industry biases around compensation because it can help guide negotiations in the right direction. I only thought of this tactic after I completed my last job search, so I can’t say exactly how to appropriately take advantage of this data. But I will certainly consider these trends when thinking about compensation next time around.

4. Paying for compensation data

Recently, a new set of services have launched to help aggregate compensation data and coach women through salary negotiation. For $175, 81cents claims to help close the gender wage gap by generating a report tailored to your background, with recommendations for negotiation tactics. Wager offers to pair you up with an industry peer for $75, with further Pro services available like individual consultations.

I tried the Wager Conversation service for $75 shortly after I accepted the offer for my current role. I asked to be paired with a mid-level to senior mobile engineer and ended up talking to an Android engineer based in NYC and another Android engineer who was contracting full-time. While I learned a lot about how to have effective 1-on-1 compensation conversations, the differences in our geographic locations and job functions were large enough that the data wasn’t the most helpful for me.

If you have limited time and mental bandwidth, I think crowdsourcing compensation data from your colleagues and friends in the same location is the better option. On the other hand, I firmly believe that more data is always better, and I think these fees are probably quite reasonable given the potential upside for more negotiating leverage. I would definitely consider using these services next time I look for a job.

There are also other purchaseable resources which I haven’t tried. Patrick McKenzie wrote a highly influential salary negotiation blog post which I encourage you to read. McKenzie recommends his friend Josh Doody, a salary negotiation coach for software engineers, who wrote the book Fearless Salary Negotiation as well as offers a salary negotiation course.

During the interview: Establish a game plan

My main recommendation during the interview process is to come up with a game plan when negotiating with recruiters. The advice for best practices can vary significantly: people both insist you should never give a number first and also strongly disagree with that statement. Think of your responses ahead of time for common situations and questions. This will make you more comfortable in the moment, since not everyone can act effectively in high-stress situations.

Here is my running list of scenarios and how I might deal with them. I will keep this up-to-date as I improve at compensation conversations:

  • Ask for salary ranges: at the end of the initial call with the recruiter, ask them for salary range for the role and any relevant compensation information. Legally in California, companies must give a range if candidates ask. Only 1 out of 25 companies that I interviewed with offered a salary range unprompted. @HeatherDoshay recommends this framing:

I’m excited about this role and I like to get this out of the way on the first call so neither of us are wasting each other’s time if it’s not a match. What is the target salary and salary range for this role?

  • Decide on a response to compensation expectation questions: my current approach is to only defer the conversation if I’m still setting my baseline. I do give recruiters my range for expected compensation (studies have found women are punished either way), since I feel confident in aggressively revising my compensation expectations upwards. For refusing the discussion, I like this template from the NYTimes:

This position is not the same as my last job, I’d like to discuss what my responsibilities would be here and then determine a fair salary for that job.

  • Breakdown your comp expectations along multiple axes: total compensation ranges are the first step. Concrete expectations around base salary versus equity will be very important, particularly with smaller companies that have larger equity portions in their offers. Prepare as many specific numbers and data points as possible.
  • Practice how to ask for more: having set phrases can help you argue more effectively. One phrase I think is especially effective if you’ve already decided on a specific role is:

If you can get me X, I'll accept the offer right away.

Getting the offer: Do your due diligence

Finally, make sure that you understand the complex details of your offer. I have accepted two different job roles with significant equity compensation, and sometimes I am still confused about how everything works. Here’s a list of resources to get you started:

Some general information:

I feel very strongly about improving my own thinking around compensation as well as helping support others do the same. These conversations also should not end once you sign your offer—continuing to think critically keeps you informed about market rates and helps determine when you should look for a new job. If you want to discuss numbers or share what has helped you in your compensation and negotiation process, send me a note here.

This article was last updated on 07/20/2022. v1 is 2,643 words and took 7.5 hours to write and edit.

Simulated Annealing

A newsletter on software, creativity, and good books. Get new posts sent to your inbox.

powered by TinyLetter