Why are programmers so well paid... in the USA? In the rest of the world that's not the case (programmers are paid a bit higher than other engineers but the difference is not that pronounced as it is in America).
Edit: And I would add: programmers are paid very well in the USA at FAANG companies. I would love to know what's the percentage of programmers that work at American FAANG companies (my bet is less than 1% of the world's population of programmers... but I haven't done the math).
I thought the same 5-10 years back, but at least in Europe things seem to have taken quite a turn and now programming is definitely paid a lot higher than other Engineers (I studied Industrial Engineering in Spain but moved to programming). Same in Japan.
It's higher, but I wouldn't say "a lot higher". I have lived in France, but I think the situation is similar (if not worse) in Spain, Portugal and Italy:
The majority of senior software engineers (more than 5 years of experience) get around 60K euros/year. It's more difficult to get around 80K euros/year but it's possible.
Now, the average non-software senior engineer in those countries gets around 45K euros/year. So, yes, 60K euros/year > 45K euros/year... but it's not such a huge difference.
"Now, the average non-software senior engineer in those countries gets around 45K euros/year."
For Industrial Engineering (the most common) it's €18k-€22k when you finish the 6-year degree (4+2), and if you go so far as to become "project director" with some extra qualifications you get €71k/year (which is literally a "director-level" position). I'd say that these are rare enough to be well matched with the few people making €100k+ working for a company abroad.
One of the problems is that there is a lot of self-taught developers, where they make that same "junior" salary of 18k-22k after 1-2 years of a bootcamp or learning on their own. So this brings the whole average down, but for the same amount of experience (studies+work) I'm pretty confident a software developer makes 1.5x-2x that of an Industrial Engineer for all of their _technical_ careers.
That's another thing that reduces the effective wage in europe: it's much more common to go to grad school (for engineers)
Effectively no one in the US gets a master's in CS, other than immigrants who get higher priority and possibility different visas (think like O-1) with said degree, so it makes sense for them. There are certainly PhD students, but they tend to genuinely want to do research IME rather than just do more school for more money down the line.
It's a skilled job in high demand, for some reason, though I suspect many companies could do just as well with half the engineering department.
The same has been true for other trades at certain times, here in Australia truck drivers, welders and other trades could be making an absolute fortune working for the mining companies.
As you refer to, it's the presence of FANG's. I wouldn't be surprised to hear movie stars are paid more in America than the world. Los Angeles is the world's entertainment capital. A lot of the answer to the question stems from 'Why is the US a hegemony?'
Stock compensation is also the real kicker. Probably one the most amazing things that Silicon Valley made widespread is the ability for employees to own pieces of the business. I noticed that many non-US companies don’t provide too much ownership to engineers (although it is starting to change for the better now). As many company stocks grow over time, each employee’s compensation package balloons to much heftier amounts. People’s salaries have the potential for non-linear outcomes.
Stock options were pretty widespread, at least among senior employees, before Silicon Valley. However, we've seen a huge run-up in stock prices at many of the big SV employers since about the dot-bomb recovery.
My pet theory that I don’t know how to rigorously test in data is that programmers are very well paid so they don’t go to the competitor or start their own competitor.
Programming software requires very few fixed costs outside of the programmers themselves; electrical engineers aren’t going to be able to make fabs (or get contracts with fabs), file patents and compete with intel the way software engineers can rent out a garage and make a social network with some novel twist and capture enough attention to get significant advertising revenue.
When you select for the tails of the normal distribution, the following distribution will have a pereto-like-shape. Since it's such a high skill field (abstract symbol manipulation to create automatons that carry out work), it selects on the right end of conscientious & intelligence distributions, which are both normal. That has a long tail, and incomes follow that distribution.
The more normal distributions you are cross selecting for, the more extreme the skew becomes. When you begin selecting for intelligence, conscientiousness, privilege of opportunities, sociability, creativeness, negotiation skill ... it gets more and more extreme.
Someone once told me that programmers should not complain about their "already high wages", because they have it good. They're well paid, have benefits, and they sit at an air conditioned desk. While I don't disagree with that statement, it's always bugged me because in the bigger picture I feel like this is not true, and especially the part where devs should not be able to raise grievances due to the claim their wages are high.
If you look at it from the business perspective, devs are part of company that built the product, which they then go to market and make profits from. Profits that can be in the hundreds of millions. Why shouldn't the devs and the other workers (both engineers and the other company employees that helped make the profit happen), be paid well for it? And in certain companies where profits are in the billions, shouldn't those employees be making a lot more then? A lot more than what they're making now, that is, which means devs are not so well paid relative to the profit margin. The same goes for any profession too, waiter and line cooks at restaurants should be making more; their work directly contributed to the restaurant's profits, and should be better compensated than they are now, instead of this 12$/hr across the board without regard to profits.
If you look at it from the economic perspective, we can go with the claim that programmers usually make more than the average job, sure. But 'so well paid' is kinda relative at that point. We're 'so well paid' relative to professions that are not so well paid, and keep in mind that the other professions have been around a lot longer than software (ie waiters). Wages themselves have not really increased on its own for the working class over the years, a lot of it has been artificially forced in the form of minimum wage by LAW. So if everyone else is making terrible money, and we as devs are considered to be 'so well paid', then maybe we aren't really 'so well paid'? Basically the other professions are artificially being kept lowly paid, so in comparison of course we make a lot. But if we factor in appropriate wage gains over the years for them, devs should be making a lot more than what we have now.
Haven't thought of it much more than that, but the thought always comes when someone mentions that devs make a lot. Anyone else have these kind of thoughts?
Far as I can tell you’ve expressed a view I’ve held through my career: those of us working for income are working class, right alongside all the other people working for income with us. We’re all entitled to the fruits of our labor. We’re all more aligned with the janitors and office assistants than with the executives. And we should organize as such.
We won’t get a bigger share of the value we produce by treating our white collars differently. We’ll get it by recognizing we’re workers (high paid often overworked) and find commonality with our peers, not our bosses.
You're absolutely right to think that we aren't actually paid that well. I mean don't get me wrong, I was a waiter for over a decade and I lived in poverty. Obviously I prefer my current situation.
Your labor is, by definition, worth more than you're getting paid. If it wasn't, your employer would fire you.
It think it has to do with the pseudo-monopoly FAANGS. They make so much money that they reckon throwing a lot to the devs makes sense. They're less likely to leave if you pay them, but one should also emphasise the pseudo in that: these are firms that feel stuff needs to keep moving, and they want to foster a pro-dev culture to make that happen. By comparison you have Oracle, which is also entreched, but from what I can see are never mentioned as a dev-friendly place, and are not often lobbed into the FAANG salary debate.
SV also has a load of startups that reckon they are gonna be a FAANG someday, so they figure they'll take on some of the business practices, such as paying devs a lot of money.
The other lump is places that don't see devs as central to the business model, which is a lot of diverse places.
About supply, I'm not sure even with that upward curve of CS grads, that there's enough. A fair few of the people who take CS during a bubble are not in there for the long run. How many people do you know who sat next to you in a coding course and now can't write a Hello World? Strip those out, and you still get an upward curve, but a few tens of thousands of grads doesn't seem like very many.
I'm not so familiar with the other branches of engineering, but my impression is that many of them are in capital-intensive industries. If you need a chemical plant to be able to do your job, that will have an impact when you negotiate to get on the job ladder. You'll get more than your average wage slave, because the owner of the factory wants his capital utilized effectively, but he's also got a lot of leverage over the employees.
So why don't the FAANGS think this? After all, you can't work in ML without a load of machines? Thoughts to ponder.
FWIW, Oracle is a great place to just do a 9-5. Their compensation is competitive with FAANG, their health package is ridiculously good, and you can pretty much do anything you want, so long as it doesn't cross division lines.
You won't change the world there, but you will work on interesting projects, have good job security, and you can put your work down at the end of the day.
Source: Acquired by Oracle, left shortly thereafter because I believed I still wanted to change the world.
I'd be surprised if there were a mode as low as $50K (which is less than median US household income)given that implies that salaries as low as $40K or even $30K aren't uncommon. And if you move that mode up to $70K or so, it's going to start to get hard to distinguish the two modes.
I don't disagree with your basic point. I just think there's likely to be enough variance in both categories that they may not resolve themselves into clear modes such as seem to exist in law, for example.
Something I'm unsure when discussing "total compensation" is how to include things like Stock Options to try to make an objective metric, because:
- They vest in 4 years in most companies, so do you do Salary + 1/4 of stock options?
- They are options and not even stock, so you are not getting much _at the moment_ you receive them. Is $1 of stock options === $1 of hard cash?
- Do you even discount the stock options accounting for risk? I know I do in my head when evaluating an offer (0 < multiplier < 0.2 depending how generous I'm feeling based on certain metrics).
- Refreshers make things messier, now you have salary + 1/4th * N_0 * val_0 + 1/4th * N_1 * val_1 + ...
- What about bonuses or incentives for referrals or similar?
The argument in favor of using this metric is 'this is how management values you right now'. It has the bonus of making vesting schedules moot, and avoids concerns about stock valuation -- shares in GOOG granted 4 years ago are more valuable than shares granted today, leading to an almost unintentional increase in compensation.
If you just want to budget your life, well, IMO just use base salary for that when looking at FAANG scale comp. The rest goes to retirement / brokerage investment / Tesla. If you need to proceed anyways, I recommend:
- if paid in Restricted Stock Units in a publicly traded company, discount the value by 20 percent
- if paid in non-public shares or options, mark to whatever you could get for them if you sold today (typically 0 dollars)
- consider all shares vesting this year, regardless of when they were granted -- summing your refreshers is not that hard
- plan on 2/3'rds of last year's bonus.
- don't rely on referral bonuses unless your job is "recruiter"
- don't bother calculating fringe benefits unless you know the money would be spent similarly if you spent a few months on unemployment.
Since I'm an SWE, I actually wrote a simple program to help calculate total compensation that factors salary, bonus, sign on, initial RSU grant, RSU refreshers, and expected company stock bonus. It generates year-by-year compensation as well as an average for the first four years.
It by no means accounts for everything, but at some level the $100/month I get for transportation and other benefits is a fraction of a percent of my overall compensation, so I don't bother thinking of those.
Regarding options, I value those at $0 unless I'm joining the next hottest thing or IPO-imminent company. In those cases, I'd apply some discount based on probability of the exit, etc. Those are so hard to calculate, though. It feels more like winning a lottery than anything.
I started my life in startups and am three for three in "success" in that two were acquired and one is still chugging and making profit after 15 years. In all cases, net value of my options was $0, even when I owned ~1% of all non-founder options. The money I made in the exit was due to being the head of Engineering, so I got a cash bonus from the investor as part of the executive contract, and I got retention RSUs from the acquiring company.
At least for me I convert everything in the offer letter to cash as directly as possible. So the RSU’s I can sell after the year are included in my 1 year comp and the ones I can’t aren’t, those are easy. Bonuses, straight to cash as well at the expected value (and it’s in your contract, emails or verbal agreements I would value at $0 unless they made its way into the employment contract). Transportation or other perks I value at my BATNA- which, if I can walk to a competitor, the fact that they are offering a shuttle is worth $0 to me, but if I have to drive to the competitor it’s worth the car upkeep costs.
Options are harder because you have to predict an expected value and may not be able to actually exercise them early for cash: in that case I usually default to valuing them near 0 for yearly comp.
Employee options must be granted with a strike price at the current fair market value, which means they aren't worth anything the day they are granted. For private companies, that fair market value is decided by the board, who may be incentivized to show steady growth when there is none. There will also be preferred stock held by investors, so you still won't make money on a liquidation above the strike price. And if you quit, you lose your options or have to immediately buy a risky stake in a startup.
Options really aren't worth much unless the company becomes many times more valuable after the grant, and that's so unlikely to work out for the average employee that it may as well be $0.
Without you even telling me your company, cap table, strike price, or even your intention to stay, I'll buy all of your options on the date of grant for $20, provided that once we strike that deal, that we do it consistently through the rest of your career.
They're clearly not worth anywhere close to $0, but if you believe they are, hey "free $20".
I'm disappointed at this section, it is missing fairly obvious things.
- Because programmers are disproportionately also living in the most expensive regions, so they may be paid well, but not as well once you consider the CoL. Imagine if you told 50% of plumbers/pilots/etc they would have to move to Palo Alto or SF to practice their career, those salaries would also jump.
- Because volatility. Anyone who's lived thru 2001 or 2008 knows that feast-and-famine jobs have to pay well to compensate for the famine periods, otherwise people wise up and dont take the deal.
(EDIT)
- Because unlike with law/medicine/plumbing/piloting and practically most other fields, there are constantly new things introduced that dont really push the field forward much. Consider the 200 web frameworks. Some are great. Many are just rehashes of older stuff with slight tweaks. However, this has the effect of making experience moot -- because newcomers always have an incentive to create something new and level the playing field. Look at the Cravath salary scale on the site, and imagine if law vastly completely every 5 or 7 years. The salary curve wouldnt be as steep.
- Because they are like athletes and many have a shelf life. There is ageism for many, and for those w/o that problem, there is often a shelf-life for their technology skills. You are being compensated for continuous improvement and the risk that your skills become stale.
- Because scale. Like investment firms, one person in tech can have massive impact and collect some of the premium as salary.
SF plumbers only get paid a lot because SF engineers can afford it. Tech companies only pay SF engineers a lot because they can afford it. That entire distributional outcome comes from the top: tech companies make absolutely embarrassing amounts of money, and engineers have (for now) enough bargaining power to get some of it for themselves.
Or as a counterexample, there are plenty of industries that do not exist in SF because they don't have large enough profit margins to support it. There are no factories in SF. CoL comes from the high salaries, which comes from the high profits. Not the other way around.
I've long maintained to those defending high real estate-dirt pricing to show me how such pricing creates a smartphone industry, cancer treatments, disease lab tests, and more currently, mRNA vaccines, versus letting 100,000 smart people coalesce into the same physical proximity without worrying about shelter costs (in the US, they would also have to not worry about medical bankruptcy). In an age where economic advantage accrues to those with the greatest cognitive capacity to throw around, instead of land, the first nation to commoditize the complement of the cost of land and the utilities underneath it, and shift all that trapped capital into developing many vibrant, dense Shenzen-like communities, will vault over the other nations.
I don't have a dog in that hunt. I have my land on a somewhat sane cost basis. My interest is academic.
> Programming pays so well that it seems a bit absurd.
As usual it's important to keep in mind that this is a bubble. This is the SV bubble, where programmers get paid out of wheelbarrows filled with money.
Elsewhere programmers get paid about as much as other kinds of engineers, maybe a little bit less on average.
Maybe that's because developers outside the SV are garbage, maybe that's because there's a set of fairly unique and hard to replicate conditions in the SV that resulted in companies having to pay these sums.
> Elsewhere programmers get paid about as much as other kinds of engineers, maybe a little bit less on average.
That's not true. I'm in the UK, and while software dev salaries are considerably lower than in SV, they're still quite a bit higher than is typical is other engineering disciplines.
I don't know about elsewhere in the US but here in [edit: south-eastern] EU programmers basically formed their own social class, one considered even higher than executives, top tier managers etc.
I'm in the EU too and I don't know of a single place where programmers are considered to be a higher social class than executives and top tier managers.
The EU is a big place and everyone's experience is different, but I think you're overstating matters hugely.
It's most probably more of south/eastern thing, but it definitely exists here literally as I am describing it - even the government acknowledged it in their yearly statistics; even the EU did actually.
Fair enough. In my part of the world it's probably still the finance types who would have that public perception. Programmers are seen as well-paid, but not particularly influential in comparison to executives.
I'm an engineer in the US and this is my personal viewpoint as well. I tested this attitude the last time I was interviewing and picked a company that values engineers by choosing to stay small rather than fill the ranks with middle managers. My CEO wouldn't have a product without me or someone else filling this role, so while his value to the company is capped at fundraising, mine is only capped by my own abilities, which granted my experience gives me the leverage to value myself highly in the company.
Makes sense though - as all of you and not just programmers are rather well paid compared to people in continental EU, the difference is not that huge. Where I am the average programmer has 5-10x more than any other person, and 2x more than directors - and the outlier programmers can make even 20x more than other people, and that's still ignoring the millionaires (and few $ billionaires) that sold their startup stakes.
In the past decade, only programmers became rich from 0 here - all other people inherited their wealth.
Czechia, Slovakia, Poland, Croatia, Slovenia, Serbia, Romania, Hungary, Latvia, Estonia, Lithuania, Bulgaria and Montenegro. Probably Greece too but I don't know how it's there personally. Plus the non-EU countries in the region - Albania, Serbia, Kosovo, Moldova, North Macedonia and Bosnia and Herzegovina.
I sort of thought so. I'm in Prague myself and I would say that 5x-10x may be a bit of a stretch. I'm personally only a bit over 2x country average, though I think I'm underpaid so I might be checking out the market soon.
Most people in CZ have around 24k CZK/month, and 240k/month is certainly doable for a programmer. Not an average one, that's true - though not necessarily the best one, there's still plenty room to the top.
Shoot me an email at emteycz@gmail.com, I might be able to help you.
It s very US centric as well. I disagree there s a shelf life for a known technology since the skillset you require as a programmer is more to adapt, work with a good speed/quality compromise and connect with your business/users beyond the minimum.
I wouldnt know the real US wide situation, but I ve worked in continental Europe and Hong Kong, and we have nice salary but well far from 300k a year (I reached 100k this year with 7 years of XP, in an investment bank and I think Im paid at the average).
Programmers, in my experience, are still paid less than profit-incentivized workers like sales traders or trading floor quants. But you could say a quant is a programmer and skew the pay up I guess. Just dont let them near your source code (as a Quant you dont get the variable pay part of your big salary if you do enough quality to have version control :D)
>unlike with law/medicine/plumbing/piloting and practically most other fields
The odd thing about software engineering is the number of these jobs that remain unfilled. As an example, Microsoft has 3,746 engineering jobs available plus probably another 1,000 technical roles in sales, service, and support. You'll find pretty similar numbers across the FAANGs and other major tech companies and VC start ups. So you've got lots of open roles and lots of developers that could double their salary but the connection is not being made.
Contrast with something like law. Law Firms will fill the roles they have with the best lawyers they can find. There's not a bunch of open slots at top firms that aren't getting filled because they can't find associates that will raise the bar.
>> The odd thing about software engineering is the number of these jobs that remain unfilled. As an example, Microsoft has 3,746 engineering jobs available plus probably another 1,000 technical roles in sales, service, and support. You'll find pretty similar numbers across the FAANGs and other major tech companies and VC start ups. So you've got lots of open roles and lots of developers that could double their salary but the connection is not being made.
>> Contrast with something like law. Law Firms will fill the roles they have with the best lawyers they can find. There's not a bunch of open slots at top firms that aren't getting filled because they can't find associates that will raise the bar.
Microsoft often calls me also. And i ignore the recruiter calls. The reason they have "3,746 engineering jobs available" is probably because it is a raw deal compared to the alternatives -- especially once you account for moving to Seattle and paying Seattle rents. They would have to increase salaries, and poof, all the openings would disappear. Alternatively, they can make the jobs WFH and they would disappear, because i'd be very interested to apply to these jobs if it didnt involve relocating to Seattle, I could live somewhere with sensible housing costs.
Anyone can create underpaid openings and they will go unfilled. I want a personal trainer for $5/hr. Except it doesnt make sense for a personal trainer after accounting for costs, especially given alternatives.
>> Contrast with something like law. Law Firms will fill the roles they have with the best lawyers they can find. There's not a bunch of open slots at top firms that aren't getting filled because they can't find associates that will raise the bar.
Look at the Cravath pay schedule. If you paid these sums to SWEs, those positions would also get filled really fast.
>Anyone can create underpaid openings and they will go unfilled.
Sure, but these positions are not underpaid. They are often 2-3 times what other software engineers make. Location can explain some of it, but in other industries that stuff tends to equalize.
>Look at the Cravath pay schedule. If you paid these sums to SWEs, those positions would also get filled really fast.
That's pretty close to what the FAANGs pay and they're sitting on thousands of open positions. I doubt Cravath even has one open slot.
Totally disagree. Engineers are rational. If these were appropriately paid, engineers would go there and take the job.
The positions are obviously not underpaid at face value
nor are they underpaid on an absolute scale -- but they ARE underpaid relative to what is expected (experience, skills), and what has to be given up (cost of living.), and what you actually get (cash comp vs stock w/ vesting periods)
Cravath pays cash salaries, not step-vested stock that can fall long before it vests. There is no comparison. If there were a comparison, people would be flocking to these FAANG jobs. The fact that there openings again suggests there is something amiss.
>Totally disagree. Engineers are rational. If these were appropriately paid, engineers would go there and take the job.
As far as I can tell engineers are falling over themselves to take these jobs. It's the FAANGs et. al. that are rejecting them for, as you note in your other post, rather arbitrary reasons. It's an extremely unusual situation.
Well thats the thing, some of these positions are expecting absolute 0.1% rocket scientists (IMHO unnecessarily) but w/o the rocket scientist pay.
Remember that some of that top talent are well into their career, they have families, kids with health costs, school districts, college funds, etc. So its a raw deal to offer them just enough to jam them into a 1br or 2br apartment. Why would someone with years of experience and family obligations take such a terrible deal?
The salaries are great for entry level graduates, but in many cases the requirements (either explicit or via tests) are not selecting for entry level graduates.
W/r/t the requirements, I'm not even sure being able to rebalance a B-Tree on pencil and paper -- without a computer or debugging code -- is reflective of any real situation i've ever encountered in my career. It is a fair test if you just want really sharp people...but then you better be offerring really sharp salaries.
Cravath also has a pretty simple pipeline for the most part. Try to hire the top grads from a relative handful of top law schools. Associates are mostly up or out. Rinse and repeat.
The idea that "there is no comparison" between FAANG compensation and the Cravath scale is a bit strange. Looking at Cravath's figures, a fresh grad can expect to make 212.5k in their first year. This is close to the top end of what a fresh CS grad can squeeze out, at least on an annualized basis; if you add in sign-on bonuses, FAANG comes out ahead (e.g Facebook gives its top-performing interns 100k sign-ons if they decide to join when they graduate). At least at Google and Facebook, stock grants over a certain size vest monthly with no 1-year cliff (and nearly all engineers will have stock grants sufficiently large to hit that condition), so the RSUs are significantly de-risked. Amazon gives you a comparable "sign-on" bonus in cash which also vests monthly for your first two years (to compensate for the back-loaded equity grant).
Another question is if you joined a FAANG in 2013 and stuck around until now (or hopped between FAANGs), would your pay have kept up? Trivially speaking, yes. A stock refresher you got 4 years ago would have gone up:
2x for FB
2.5x for Google
4x for Amazon
You would easily be making 450-500k as a senior engineer with appreciated equity (or, you know, making that in cash at Netflix).
If you joined Facebook in 2012/2013 and stuck around there's a very decent chance you'd be a Staff engineer now, not Senior, and making closer to 600-700k/yr.
This is all ignoring the fact that you didn't need to spend 3 years and tens or hundreds of thousands of dollars on law school, which actually understates the opportunity cost, since an engineer joining FAANG will be at least 3 years ahead of a corresponding lawyer on their career track (including raises/promos/appreciated equity), so the more fair comparison would be to an engineer who joined in 2009/2010, which tilts it even further in favor of the engineer.
Entirely apart from all that, I find the question of whether engineers are "appropriately paid" a bit confused. There may simply not be enough engineers with the correct skills/talent/etc (whatever FAANG is looking for) at any price to fill all their open headcount, so increasing compensation would be a zero-sum game (for the companies, obviously).
I think the more boring truth is a combination of a few factors:
1) engineering at that level is actually sufficiently difficult that most people (when considering the entire population) can't do it
2) most people don't know what engineering pays - even outside of FAANG, hitting 6-figures in most major metro areas is pretty trivial
3) most people don't optimize their life/career to any appreciable degree, so even if they did know, they still wouldn't be particularly motivated to get into software (you'd see a lot of people saying that they're not smart/talented/whatever enough, which would be true for some of them, but the claim would mostly be driven by rationalization, not from any actual evidence they have)
To use myself as an example, I started out as an engineer making under 50k/yr (in a minor tech hub in the US, not the Bay Area/NYC/Seattle). Outside of talking to my parents, both of whom are in the field (though both slightly adjacent to the central conception of "software engineering" on HN), I had no idea what the market looked like. Maybe a year or two later I met someone who worked at a reasonably well-paying tech company (though not quite at FAANG levels) making ~200k/yr, which I hadn't even realized was possible. They told me I could be making that kind of money in a few years if I studied & interviewed at the right places. I didn't really believe them. Fast-forward a couple more years: I'm wasting my time in a (different) dead-end software job, making not-quite 6-figures, doing maybe 5-10 hours of work a week. I stumble across Dan Luu's blog and patio11's article on negotiation in quick succession, which light a fire under me. Six months later I'm working at a startup for a bit under 150k/yr. Six months after that (it was not the best place to work) I'm working at a (non-FAANG) tech company making a bit under 300k/yr. I've been there for a bit over two years now and my current annualized comp is over 500k at current stock prices. None of this is terribly unusual; anyone who joined FAANG a couple years ago has seen nearly as much stock growth (and better secondary benefits). If you joined Snapchat a couple years ago as a Senior eng, well, you'll probably be set for retirement by the time your 4-year grant runs out.
Contrast it with the NBA. It is not as if 20 year old Shaq could walk in and they would tell him, sorry the role of center is already filled! There are always open roles for a 7 foot guy who can bench press 500lbs. But someone like Shaq rarely comes along. The teams sadly shake their head and wonder why they can't fill the position of Shaq jr. Then they tell everyone, look! There are unfilled positions!
Something similar is happening at Microsoft. It is not like no one is applying to Microsoft. There are likely hundred times more applicants than there are employees. Good engineers too. But if they can't invert a binary tree on a whiteboard they can fuck off. And then Microsoft will claim they can't fill the position.
3,746 openings that supposedly cannot be filled. Except 100,000 people are applying and failing because in order to get the position, you need to pass a test with a 5% pass rate -- because you need to write and debug code on a whiteboard within 30 minutes. Oh, and once you get the position, you dont get all your comp, rather it is in stock that vests over time, and the stock can fall. Oh, and you also have to pay rent NOW (not when your stock vests.) Oh, and the rent is absurd. Oh, and you went to a top school got great grades and you're rewarded with a shitty 1br apartment because that is all your cash comp can buy you since you are limited to one or two cities.
> rather it is in stock that vests over time, and the stock can fall
At a public company the stock based compensation is nearly equivalent financially (ignoring taxes) to getting 4yrs of comp up front that for a period of time can only be used to invest in your employer. That exposes you to a lot of risk, but on average it results in higher pay since on average the markets are going up (not just in tech) and you're able to invest money you don't yet have (contrasted with, e.g., if stocks were awarded according to current market rate). That risk profile won't suit everyone, but it's not inherently bad.
> you're rewarded with a shitty 1br apartment because that is all your cash comp can buy
Rent isn't thaat high. A nice oceanfront 2br goes for $3k/mo including utilities. Plus, if you really wanted to dip into stock-based comp for rent, your signing bonus will more than cover the difference for the several months till your first grant.
> because you need to write and debug code on a whiteboard within 30 minutes.
Yeah, that can be pretty shitty. It works out for a lot of people, but I'm certain that process overlooks good engineers.
At a startup it means running out of runway. In professional teams, especially SaaS, it's bugs in production that starts taking more and more time that can't be spent on features.
> However, this has the effect of making experience moot -- because newcomers always have an incentive to create something new and level the playing field
I would rather trust someone who's been through a few paradigm, languages and ecosystems as compared to someone two simply memorized the invocations of whatever framework from the bootcamp-du-jour.
Check the data for teachers or firefighters. They tend to be paid more, but are not "well paid" enough to afford living there. Many have long commutes.
The thing about plumbers/electricians/doctors and other professions are that licenses are often at the state-level. So while a developer at XYZ startup in SF doesnt have as much option to pack up and move to the exurbs or relocate to a more affordable area in California, most other professions do. This creates a smoother pay/CoL ratio because you have freedom to walk away from a bad deal.
For law, it's pretty obvious. There's the partners at white shoe law firms and then there's everyone else--many of whom are doing personal injury law or scraping by doing routine wills, real estate, etc. Sure you have in-house corporate counsel and the like who are somewhere in the middle, but it's not hard to imagine why it's generally bimodal.
With programming/software engineering OTOH, yes you have outsized salaries at some big firms mostly in some high CoL areas, but it's a generally pretty well-paid field even if it does tail down for developers at non-tech companies in low CoL areas.
Agreed - in law you can essentially get away with a single predictor for much money you make (given your level of experience): whether you work at a big law firm. This creates a natural bimodal distribution.
In tech there are far more factors:
1. What industry you work in
2. How big your company is
3. Geography (this plays a much bigger role than in Law in my experience)
4. How good you are at negotiating
5. Equity luck
6. What type of tech you do (front end vs backend vs ML etc)
Given this complexity, I'd be shocked if there is a bimodal distribution for devs.
Software scales massively. Other industries do not.
You are simply paying for the cost of innovation. Whole categories of products created overnight. If you can afford it, it's best to get the best possible engineers onboard. Else your competitor will.
That's not really an argument for being bimodal though. A bimodal distribution suggests that you either win the tournament with a FAANG or the startup lottery or you'll be scraping by with a generally low-paying job. And that doesn't really describe programming that I've seen.
> or you'll be scraping by with a generally low-paying job.
That's not what bimodal means, it just means there are two modes (i.e. peaks). It could equally well mean that the general case is pretty well paid, but there is a distinct peak of high earners (e.g. FAANG etc.)
The question we have to answer though is why there's no middle ground. It seems like we have a ton of middle grounds between 'ML engineer at Netflix in SV' and 'Frontend developer for H&R Block in KC.' I see three possible gradients in those descriptions alone: specialization, company and location.
So, my understanding is that law firms have the structure they do in part because there are legal restrictions that say that law firms must be owned by lawyers, not just by any old group of shareholders. Ostensibly this is supposed to be about professional ethics. But so structurally, ownership is reserved for people who are at least in principle involved with doing the actual work of the firm.
I wonder how engineers would do with the same sort of structure? If tech firms had to be owned by people who actually participate in creating tech, how would that change us? And how would it change what we build?
One thing that would be interesting to study is the relationship between the number of programmers on a project and its output. Why does version 2 require more 10x programmers and effort than version 1? (Fred Brooks wrote about this).
A difference between programming and engineering is that you can't really use a team of 50000 electrical engineers. Also, the number of EE's in an organization can't grow to the point of controlling the business.
There may be some kind of positive feedback cycle where programming takes on a life of its own within a given business, and demand for programmers expands exponentially.
Also, I think the author underestimates how hard it is to learn programming. It seems easy to those of us who program, because we somehow got past the "wall" at some point. But for most people on the other side of the wall, it's prohibitively hard.
Is it normal in other industries to work on one product for a few years, then switch and work on something totally different, and then switch again a couple of years later? That's a normal pattern at a FAANG - Google explicitly tries to hire generalists for example. If I am working in one thing today, it's easy to jump ship and work on something else tomorrow. That's a lot of power that employees in other industries don't have, or don't have to the same extent.
(The other answer to the problem is that looking outside of the upper-tech bubble programmers aren't particularly well paid at all. But the linked article does make a decent case that there's a real mystery here.)
Just to follow up on this: the problem is not Why is there so much money sloshing around in tech (that's obvious!), it's, Why are tech workers somehow getting a decent slice of it?
My guess? Because tech companies have small enough startup costs outside the employees that they can credibly leave to start their own company. (And there is enough market demand where they could succeed, unlike some field like Law where it’s true the fixed costs are all lawyers and what they know, but your case record and prestige sets the demand)
I think that's probably a big part of it - and certainly in Silicon Valley. Part of the whole idea of the place. It might not require that much extra power on the side of labor (which this is) to create a large effect.
Seems pretty normal. Every few years Ford has new cars, Frito Lay has new flavors of chips, Coca-Cola markets new drinks, Corning has a more resilient glass, and Taylor Swift has a new album.
A statistical test for whether dev compensation is bimodal is whether a mixture of two lognormal distributions fits the compensation data substantially better than a single lognormal. One can use an information criterion such as AIC to compare fits with different numbers of parameters.
I feel sites like levels.fyi and Blind have given us a better look into the salaries of top (and not so top) paying companies. However they are missing the vast majority of companies paying modest salaries. I suspect these make up the bulk of the lower peak of a theoretical bimodal distribution.
Because for now,
we are necessary tools in the enterprise of automating wealth concentration at scales never previously achieviable.
I may be able to tell myself;
Oh I don't do any of that directly,
but I benefit from those that do none the less,
through pay inflation of those who are bent
the same way I happen to be.
Interesting idea though it needs some refinement. What makes one job aid wealth concentration while another one is merely just increases returns on capital ? All jobs make capital owners wealthier. Returns on capital in the long term grow quicker than wages even though labor is an essential component.
It should be noted that Piketty walked back a lot of his thesis surrounding the rate of return on capital (r) being greater than the rate of economic growth (g). Or, to be more terse, r > g.
As a framework, it's stretching its usefulness when applied to inequality in labor markets, and that would include bimodal compensation of developers.
I'm basically just a mathematically competent but economically dumb observer, so I can't weigh in myself, but there is generally a huge amount of debate over Piketty's work in the economics community.
I've had the book recommended to me several times by "I'm happy to pay more taxes"-types as a one-stop shop for societal ills, but it's not that simple.
The seeming lack of attention on land and other rentseeking also puzzles me.
I don’t know about r > g but stock owners have made more money in the pandemic while actual people are starving. That’s evidence enough. The system is rigged to make house owners, stock owners etc richer as they have power.
I'm not sure that returns on capital always grow quicker than wages. It depends on how things are structured, right? If labor has more power than more of the gains go to labor. We're currently in an environment where labor has very little power.
> I'm not sure that returns on capital always grow quicker than wages
Suggested reading: "Capital in the 21st century" by Piketty. He presents data and arguments for why this is a major trend in capitalism, and suggests a progressive wealth tax to ameliorate this.
Before software there was a limit to how much infrastructure could be built. There is no point in building more factories than you have workers for etc, but with software we can continue building software infrastructure more or less forever which makes wealth limitless.
Capitalism inherently creates income inequality, as labor will forever be paid less than capital accumulation, while having less opportunity to accumulate capital themselves. There is an inherent inequality in allowing wealth to create more wealth, while labor cannot create the same wealth.
The system is unstable. When inequality has reached sufficient levels, there's traditionally been a "hard reset" (France, Venezuela, Cuba...), with wealth being redistributed by force. The United States currently has the highest wealth inequality seen in a democracy. It likely won't remain a democracy much longer.
I think US democracy will survive, but it's surely not a coincidence that we're seeing more extreme, and potentially destabilizing ideas gain ground on both the right and the left amid widening inequality.
Only if the inequality isn't warranted. If it is backed by by armed autonomous drones or other ways to efficiently project power without needing lots of people then there is no reason it wouldn't be stable.
You can have a dictatorship, but you will still need people / your crownies. The day the drones are smart enough that they don't need anyone to maintain them and adjust them, maybe they start getting ideas about that one meatbag in charge of them.
The answer is that there is an inherent tradeoff between Risk and potential growth, i.e. amongst the "initiated" (like people engaged in active debate over these matters) the people who just want a simple life and a job are vastly underrepresented.
This isn't accurate at all. The people that have the capital to actually be able to achieve financial independence have much less marginal utility downside from an equal amount of risk than the average people that have a simple life and a job. For many people, taking that kind of risk can have vastly outsized impacts.
Software development is a field where supply and demand apply without debate. Supply and demand are only ineffective when there is a form of monopoly / regulation in place. Which is not the case here:
1) It's very easy to make a startup software company (in comparison to others types of companies), and there is a healthy pool of existing company
2) CS education is very popular and we have a flow of new graduate every year, on top of that self-teaching is quite accessible.
Now, that means that the market is leaning toward demand (for programmers). Being "necessary" have never being enough to have a high salary, there are countless jobs badly paid at very wealthly companies, you must be necessary (demand) AND difficult to replace (supply too low) to have a high salary.
Some reason of the current trend:
- Very low supply of very high quality that a lot of projects requires: there is a huge difference between "programming" and actually doing software engineering at scale. And if you add some specialities like ML or security, the pool of candidate is getting very low.
- Rush for leading certain fields like AI, Autonomous vehicule, blockchain, etc... Those rushes are so fast paced that it drives the demand up.
- There are so many new startups, as I said earlier it's one of the field where making a startup is the easiest, and a good amount of them have strong ambition and investments (again in comparison to other fields)
I just scrolled through the entirety of the comments waiting for someone to provide this most obvious answer of all. Of course it's downvoted, this is hn.
The companies paying have silly amounts of money because programmers can create an enormous amount of value. An extreme example, but think of Linus who created both Linux and Git. A single person created billions of dollars in value. I don't know that there are other professions where an individual can create massive scale like that.
There is a field like that; movies. And we see this to an even greater degree there. A big name star can literally boost the number of people who will go see the movie. Studios are some of the most unethical money-grubbing cheats. They wouldn't be paying $10m to A-list stars if their bean counters weren't sure it would be a good return on investment.
The dynamics in software are different obviously but the core truth is the same: good engineers make a difference and the return on investment justifies the cost.
Well, inventors did. There are so many single inventions (or discoveries) created by one or two persons, which have created value for hundreds of years and will continue to do so.
Just think about Fritz Haber who (with Carl Bosch) created nitrogen fixation, which completely changed our agricultural landscape. That is actual, real value (=increased food production) we all benefit to this day. Or look at Alexander Fleming, Edison, Tesla, Nobel, etc. this list can go on forever.
Yes, Linus did good on Git and Linux, but I think with RCS/CVS/SVN and Windows/macOS the world would not have lost that much value.
I think the point is moreso that developers can be self-sufficient in the full value chain. Haber didn’t personally go to farms to create improvements in their agricultural process, the industry did that jointly by incorporating his invention in their manufacturing. Edison and Tesla never mass produced their inventions to get them into people’s homes, that required thousands of people working manual labor and many corollaries of factories. Whereas Linus can push changes and millions of people can pull them in to add value immediately without any extra steps. You can argue that Linus didn’t build the communications infrastructure and hardware surrounding that and that is true, but the salient difference is this was truly a one-time exercise. For “physical” inventors like you described, mass production is hard precisely because it is bespoke and requires so many physical resources. Until we have a general purpose self-configuring factory, their leverage is fundamentally lower compared to the world-tier software engineer. And even then if that did exist, it would require programming to operate it to usher the physical inventors into complete self-sufficiency in their value chain.
You don't need to be Linus to deliver a lot of value quickly, either.
- the cost to start delivering value is effectively nothing (a computer and access to the internet)
- the cost of delivering value is small (you need to provision hardware your stuff runs on, sometimes) which gives you high margins
- you are not limited to one geographical area nearly as much as other engineers are (since you don't make anything physical, and legislation is relatively light)
- you don't need to wait a lot of time for dependencies like you do in manufacturing
Disagree, banks do not pay software devs a lot. Tends to be average or slightly above average. But nowhere near tech company salaries.
Bankers see powerful staff as risks, they much prefer having subpar staff that are guarded by rigorous process and management, as that is viewed as less risky. A single staff member who knows a lot and controls a lot of systems means they have dangerous leverage over the business.
Tech companies don’t view labour as a risk, they are part of the product.
I wasn't talking about banks paying tech workers a lot. I was talking about banks paying bankers a lot. There are plenty of bankers of various sorts making $500k+ salaries.
Why are programmers so well paid... in the USA? In the rest of the world that's not the case (programmers are paid a bit higher than other engineers but the difference is not that pronounced as it is in America).
Edit: And I would add: programmers are paid very well in the USA at FAANG companies. I would love to know what's the percentage of programmers that work at American FAANG companies (my bet is less than 1% of the world's population of programmers... but I haven't done the math).