Insights from 50 publicly traded tech companies, and a list of those paying the most and the least in median total compensation - with previously unreported details. Originally published on 9 May 2023.
👋 Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. We cover two out of seven topics from today’s subscriber-only deep-dive on Compensation at publicly traded tech companies. To get full issues twice a week, subscribe here.
In 2015, the US Securities and Exchange Commission issued a rule which mandates publicly traded US companies to disclose their compensation details. Every year, 3 data points need to be made public:
- The median annual total compensation of all employees, except the CEO;
- The annual total compensation of its CEO;
- The ratio of these two amounts.
We’re right on time to take a look at the latest figures. Over the past few weeks, the majority of US publicly traded companies have published their median total compensation numbers for 2022. During this time, I’ve collected data on 100 tech companies. I can say the results are interesting.
As a first peek, let’s cover how we arrive at the numbers, like those in this set:
“Median employee” vs a senior software engineer
The data we share today is for “median employee compensation.” But what is this? It’s not simply the median – or midpoint – of companies’ total compensation distribution, but it does relate to this.
First, a definition. The median of a series of numbers is the figure in the middle of the series. The median is sometimes identical to the “average” of all numbers. For example, like in the chart below showing 5 employees, among whom the average salary is $150,000, where the median element is also $150,000:
In a series, the median is the middle figure, and can be both lower or higher than the average figure. Let’s look at another 5 data points, where the median and average greatly differ:
For compensation, the median figure can feel more fair than the average figure. This is because the median value shows 50% of the population make equal to or less than the median, and the other 50% of workers earn as much, or more. This is considered fairer because “outlier” numbers – such as the packages of top earners – don’t distort the true picture of a company’s distribution of compensation, by pushing up the average. Basically, outlying compensation packages have less influence on the median number.
The issue with the average is that outlier data points can make it meaningless. For example, take a 5-person company, where average total compensation is $250,000. Does this mean roughly half of employees earn around $250,000? It may not:
This is a made-up, model example, but as we’ll see in CEO compensation ratios, there are companies where the CEO earns well over 100 times the median compensation. Using the median creates a more “realistic” picture of compensation values and distribution.
Companies are required to identify their “median employee.” Mandating a company to select the “perfect” median total compensation value would cause unnecessary difficulty, especially at large companies, This is because it would mean keeping track of exact total compensation for every employee. This is complicated because equity such as stocks and shares forms part of many people’s pay, and its value can go up or down over time.
Instead, the regulation gives organizations leeway to use a simpler, less complex approach, such as using statistical sampling. As the SEC writes:
“A company could, for example, identify the median of its population or sample using:
- Annual total compensation as determined under existing executive compensation rules; or,
- Any consistently-applied compensation measure from compensation amounts reported in its payroll or tax records.”
Companies need to explain their methodology, but otherwise have freedom to choose their best “median employee.” Businesses can refer to the same median employee for up to three years.
The median total compensation should mean ~50% of staff made more than this number, and 50% made less. For example, here’s how Microsoft crunched numbers to find its median employee:
“We identified our median employee from among our employees as of June 30, 2022, the last day of our fiscal year, excluding approximately 11,024 employees who became Microsoft employees [via acquisitions Microsoft made that year]
To identify our median employee, we used a “total direct compensation” measure consisting of:
1. Fiscal year 2022 annual base pay (salary or gross wages for hourly employees, excluding paid leave), which we annualized for any permanent employees who commenced work during the year
2. Target bonuses and cash incentives payable for fiscal year 2022 (excluding allowances, relocation payments, and profit-sharing)
3. The dollar value of share allotments granted in fiscal year 2022.
Compensation amounts were determined from our human resources and payroll systems of record. Payments not made in U.S. dollars were converted to U.S. dollars using 12-month average exchange rates for the year.
To identify our median employee, we then calculated the total direct compensation for our global employee population and excluded employees at the median who had anomalous compensation characteristics.”
I say the median employee should be the midpoint total compensation figure, but in practice the median employee won’t have the perfect median value. In the above example, Microsoft excluded the salaries of employees whom the tech giant inherited from acquiring other businesses, and it also excluded outliers, meaning its median value is slightly off from the true median. However, it is what the company believes the median should be after excluding outliers.
US-based senior software engineers almost always make more than their company’s median compensation number. The median value is a lot less useful for roles closer to the “bottom” of the distribution (like interns whose pay is likely among the lower percentiles) or closer to the top (like a Staff+ engineer who’s in the upper percentiles of the population).
Senior software engineers based in the US will almost certainly be somewhat above the median value for two reasons:
1. Looking only at engineering, senior engineers are somewhat above the median. A few weeks ago, when covering Uber’s engineering level changes, I recreated the company’s engineering split, of which around 2,000 software engineers – more than 50% of the population – were non-senior engineers:
Of course, Uber no longer has a split like this. Meanwhile, some companies are senior-heavy, meaning some senior engineers are below the median, due to their place in a top-heavy hierarchy with its distribution of roles above senior engineer. This is almost always mitigated by the next point, though:
2. Engineering tends to be better compensated than most other functions. At tech companies where software engineering is a profit center, it’s common for software engineers to have some of the highest total compensation at a given level.
Of course, companies don’t consist only of software engineers; there are sales and marketing workers, administrative roles, research and development functions, and more. One function that can out-earn engineering is sales, by hitting and exceeding targets in what is frequently a commission-heavy job.
A note: for engineers, the median compensation level at non-tech companies is close to meaningless. At places where the majority of roles are lower paid, the median employee’s compensation package will reflect this. However, this number is almost certainly much lower than what a software engineer there earns. This means the median is not useful to engineers, as a low median doesn’t mean the pay at a non-tech business is uncompetitive.
This is the case for a couple of well-known companies:
- Amazon: the median compensation package is $34,195. However, total compensation for senior software engineers is typically over $300,000/year in areas like the Bay Area or New York.
- Stitch Fix: the median compensation package is $39,000. The company makes clear who its median employee is: “Our median employee in fiscal year 2022 was a remote Senior Stylist. For fiscal year 2022, the annualized total compensation for our median employee was $39,000.” However, a data platform engineer is offered a base salary of $174,000—$190,000, and, likely, additional equity on top.
- Apple: the median compensation package is at $84,493, suggesting this is the package of a non-software engineer employee.
- Uber and DoorDash: at $76,767 and $79,737, both packages suggest the median employee is someone working in operations. These positions and customer support roles outnumber engineering jobs at both companies.
Throughout this article, we are talking about total compensation, not salary. Base salary is only one component of total compensation, and this is especially true for senior tech workers at tech companies. Total compensation is the aggregate of:
- Base salary
- Cash bonus (or, for salespeople, cash commission)
- Equity awarded
Most of the companies in the higher total compensation buckets are places that issue significant equity to employees and would likely be in the top tier in the Trimodal software engineering compensation model.
Highest and lowest median packages
Let’s begin with the headline numbers: the highest total compensation for median employee, by company. There’s plenty of nuance in this topic, which we’ll get into later! The highest compensated median employees work at these companies:
Okta had its 2022 financial year run from early 2021 until early 2022 and it’s very likely its eye-catching median number – which is streets ahead of Roblox in second place – was created by acquiring Auth0. In 2021, Okta’s median compensation package was $258,687. Then in May 2021, Okta acquired Auth0, a 900-person company.
The Auth0 acquisition was a stock-heavy deal, in which former Auth0 employees received a large, one-off stock compensation grant. I’ve talked with current Okta employees, who all think the median employee was someone who came through the Auth0 acquisition, and received this one-off stock package. This would explain why the median total compensation package jumped by nearly $140,000 in one year. I expect that next year this value will fall to below $300,000. However, this data reveals the windfall which Auth0 employees likely received from joining Okta!
And if the Okta number seemed large, the company shared that it should have been even higher, assuming the median employee stayed at the company. From Okta's report:
"The median employee terminated employment with the company in February 2022, following the end of fiscal 2022 but prior to the determination and payment of bonuses for fiscal 2022. The median employee’s annual total compensation (...) would have been paid to the median employee in March 2022 based on the individual’s target bonus and bonus plan attainment for fiscal 2022) would be $432,502."
I'm scratching my head a bit on this addition from the company. This is because Okta should have chosen a representative median employee. And their choice of the representative median employee left the company before bonuses were paid. Yet now the company claims that this employee would have made more, had they stayed and collected their $30,709 annual bonus. But, again, Okta needed to choose the appropriate median employee, so this choice feels hard to understand.
Roblox presenting an annual median total compensation of $315,000 is not the kind of one-off that is likely to be the case with Okta. There is good explanation in how the company ended up this high: 75% of employees at the company work within product and engineering functions. This is higher than any other company has reported, from all 100 companies. It suggests that the median number for Roblox could be closer to the compensation for a senior engineer.
I reached out to an engineering manager at Roblox, asking them on how representative this number is for engineering. The manager confirmed that it's representative, and also that Roblox pays top of the market. They shared that when candidates had competing offers, the only companies where they would still occasionally "lose" against, numbers-wise, was Meta and Netflix, and not by much.
While Roblox is in the gaming industry, they benchmark their compensation not primarily against gaming companies, but against top-tier tech companies. Their peer group includes Dropbox, DoorDash, Roku, Snap, Splunk, Twilio, Okta, and Workday. No other gaming companies compare themselves to this tier of tech companies, and it also shows in compensation.
And, to be fair, the company does have a lot of engineering challenges that are similar to most of Big Tech. Just think of the root cause of their 3-day outage that we covered in Real-World Engineering Challenges #3, which came about by being one of the largest customers of HashiStack, and the first ones to come across a Consul circular dependency that even HashiCorp engineers - the folks creating Consul - have not observed before.
Why is Netflix not in the top 10? Another surprise is not to see Netflix on the top 10. For software engineers, Netflix pays top of the market - and does all of this in cash. They tend to offer more than any other company for senior engineer positions - only Meta or Google tend to compete with them, head-on-head. Heck, the company pays so well that it could afford to not increase compensation packages in October of 2022 - as we covered in The Scoop #29.
And yet, the median number for Netflix is $218,400, which is a good 35% below that of Meta and Amazon, and 50% below that of Roblox. Even though we know that Netflix can - and does! - pay competitive with those companies. So why the difference in the reported number?
The answer lies in the composition of the company. Netflix employs more than 12,000 staff, but only 2,000 of these work in tech. And most of the non-tech staff is compensated below where software engineers are: and so the median employee will almost certainly not be a software engineer. This is especially true, as, up to 2022, Netflix rarely hired non-senior software engineers.
On the other hand, at companies like Google or Meta, the median employee could be a software engineer, even if it is not a senior engineer.
In addition to the 10 companies listed above, 25 other businesses paid more than $200,000 in total compensation to their median employee:
Something interesting stands out from this list:
Smaller companies can offer a higher median compensation package than their larger competitors. By smaller, I refer to market cap or market share, compared to a sector’s leaders. Fastly is a content delivery network (CDN) which competes with Cloudflare and Akamai. It’s far from a market leader by revenue and market cap:
Also, Fastly is behind in public-facing market share, according to measurements by W3Techs, just 7.6% of websites use Fastly, compared to 5.2% using Akamai and 75.9% using Cloudflare. Yes, Akamai has only a 5.2% share, which speaks to its enterprise focus. Meanwhile, Cloudflare is far more popular with the consumer and small business segment.
Based on all factors, it’s clear that Fastly is the #3 of these CDNs: it’s behind Cloudflare on all metrics, and has only a tenth of the revenue and market cap than Akamai, even though Fastly has a bit more of the consumer market. So is being #3 reflected in the median compensation? Absolutely not; quite the opposite, in fact:
Why is there such a big difference in median compensation between these 3 rivals?
- Geographic distribution. 79% of Fastly’s workforce is US-based. For Cloudflare it’s 59%, and 40% for Akamai. Total compensation is significantly lower outside the US, and given that 60% of Akamai’s staff is international, the median employee is more likely to be someone outside the US. And for Cloudflare, it is most likely a US-based employee in a less senior position.
- The premium in working for a lesser-known brand. Both Akamai and Cloudflare are well-known companies, and considered market leaders in certain CDN areas. They will have no trouble attracting candidates, some of whom will take a pay cut to join. For example, Cloudflare is known for its “no negotiation on compensation” policy. In contrast, Fastly pays a premium to attract top talent.
Keep in mind that the median numbers quoted by the three companies refer to different people:
- Fastly: a US-based employee, likely close to a senior engineer
- Cloudflare: likely a US-based employee but below a senior engineer
- Akamai: likely a non-US based employee, likely well below a senior engineer
For similar positions, Fastly, Cloudflare and Akamai are likely to pay comparably. I would speculate that Fastly may be willing to be flexible in negotiating packages, as it pays a premium for being a less known brand.
Which companies pay the least, by median? There appear to be a few surprises:
This list looks surprising if we assume median total compensation reflects the value of software engineer pay. But this is the wrong conclusion.
Low median total compensation usually means the median employee is not a software engineer. We mention above that the median compensation package at Stitch Fix is for a Remote Stylist position, while Amazon’s media employee may be a warehouse worker, while at Uber and DoorDash it’s an operations role.
Another reason for a low value is when the median employee is in a low-cost region. This is the case for Accenture and Cognizant. Both these are service companies with most staff based in India. The median employee is most likely to be an entry-level software engineer in that region.
For example, Cognizant has 355,000 employees, of whom 258,000 are in India. The company helpfully breaks out three median values for nuance:
- Global: $31,450 (out of all 355,000 employees)
- UK and western Europe: $70,462 (out of 27,000 total employees)
- US: $93,846 (out of 41,000 US-based employees)
What these numbers mean is that 20,000 employees in the US make more than $93,000 in total compensation. It’s safe to assume that for senior positions, the company can be competitive on pay, even if this isn’t visible in the median numbers.
The same is true of other companies in the list. For most, the likely explanation for a surprisingly low median number is one or both of these:
- Most workers are not US-based, but are in lower-cost regions. For example, Groupon has only 28% of staff in the US.
- There are more non-tech employees than tech employees in the business, and the median employee is a non-tech role.
This was two out of the seven topics covered in today’s deep-dive issue. The full issue additionally covers:
- Big Tech’s salary benchmarks. How does Amazon, Apple, Alphabet, Microsoft, Oracle, Meta, Salesforce and NVIDIA benchmark their compensation, and which ones benchmark each other mutually?
- CEO pay ratios. Which CEOs took home the most and the least, relative to a median employee? How do standout CEOs such as Satya Nadella and Tim Cook compare to others?
- Compensation packages with job stability. Many companies which offer strong packages have had layoffs recently. But which places have not let workers go, and also pay well?
- Where to find these “hidden” numbers. Companies don’t advertise their median pay brackets. How can you find this revealing number for most publicly traded US companies? And which companies are allowed to not publish this data, and how come?
- The complete list of 100 tech companies. In browsable format, so you can slice and dice the data on the median compensation, CEO pay, and when the companies last had cuts.
Many subscribers expense The Pragmatic Engineer Newsletter to their learning and development budget. If you have such a budget, here’s an email you could send to your manager.
Featured Pragmatic Engineer Jobs
- Senior Backend Engineer - C#/.NET at Straddle. £90-125K + founding team equity. Remote (UK).
- Senior Solutions Engineer at Tint. $130-195K. Remote (US).
- Product Engineer at Causal. Remote (US, UK). The team tackles interesting challenges like simplifying React state management.
- Backend Engineer - Data at Causal. Remote (US, UK).
- Senior Backend Engineer at Polarsteps. Amsterdam (Netherlands).
- Senior Data Engineer at GetHarley. £70-100K. Remote (UK) or Hybrid.
- Senior Frontend Engineer at GetHarley. £70-100K. Remote (UK) or Hybrid.
- Senior Software Engineer at Tint. $140-195K. Remote (US).
- Senior Product Engineer, Frontend at Attio. £90-125K + equity. Remote (Europe).
- Senior Data Engineer (RoR) at Terminal49. $140-200K. Berkeley, California.
- Engineering Manager - Security Product team at CAST AI. Remote (Lithuania).
- Software Engineer at Freshpaint. $130-210K + equity. Remote (US).
The above jobs score at least 10/12 on The Pragmatic Engineer Test. Browse more senior engineer and engineering leadership roles with great engineering cultures, or add your own on The Pragmatic Engineer Job board and apply to join The Pragmatic Engineer Talent Collective.
Want to get interesting opportunities from vetted tech companies? Sign up to The Pragmatic Engineer Talent Collective and get sent great opportunities - similar to the ones below without any obligation. You can be public or anonymous, and I’ll be curating the list of companies and people.
Are you hiring senior+ engineers or engineering managers? Apply to join The Pragmatic Engineer Talent Collective to contact world-class senior and above engineers and engineering managers/directors. Get vetted drops twice a month, from software engineers - full-stack, backend, mobile, frontend, data, ML - and managers currently working at Big Tech, high-growth startups, and places with strong engineering cultures. Apply here.