
Is developer compensation becoming bimodal? - ingve
http://danluu.com/bimodal-compensation/
======
mafribe
I teach computer science at a well-known, large and mediocre university.

I see bimodal grade distributions all the time. The more technical a subject,
the more bimodal the grades.

In fluff subjects like software engineering where grading relates to essay
writing and group projects, grade distribution tends to be gaussian. OTOH in
technical subjects where I grade by automated test suits, basically students
fail almost all tests or pass almost all tests.

These grade distributions have been constant, regardless of university,
regardless of who teaches the course.

There really is a sharp threshold that separates those who get programming
from those who don't. And those who get programming really are _a lot_ more
productive than those who don't get it. Moreover, once you get it, learning
further parts of CS (e.g. new algorithms, new programming languages, new OSes
etc) is much easier then if you don't get it, and learning new things makes
you even more powerful. The mastery of doing great things is joyful and makes
you want to learn more. The frustration of failure drives you away from the
subject.

I find it plausible that grade distributions turn into similar income
distributions later in life.

~~~
deanCommie
Actually doesn't your experience hint at the opposite trend in the working
sector?

If everyone (roughly) either fails programming, or aces it, then the working
professionals are the ones who passed AND excelled.

~~~
jon-wood
Oh if only that were true.

I've worked with people in the past who know just enough to hack together a
front end on top of a simple database, but who would completely fall apart
when presented with anything more complex than that. These are the sort of
people who when asked to build an internationalised website "solve" the
problem by copying an entire PHP application into directories called "english"
and "german" and then proceed to change the text in the German version.

~~~
Bartweiss
There's that XKCD about asking how novice users solve computer problems. "I
save the video to iCloud, then copy the url into this video downloader, then
put the download into this transcription site, then upload that to..."

I think this is a big chunk of explaining how bad programming goes, too. It's
not "too incompetent to build a thing", it's "incompetent enough that
everything runs on voodoo and evil".

------
rayiner
I suspect the bimodal distribution for programming and law have the same
explanation: a group of highly profitable firms targeting a subset of the
overall industry have imposed a de facto hiring floor that limits supply,
raising wages.[1]

Why is Cravath raising salaries while 85% of legal grads are taking jobs
making half or less of its old salary scale? Because it has a hiring floor. It
won't hire lawyers that aren't at least one standard deviation, if not more,
from the mean.[2] Their demand is high--each lawyer generates on average $1.3
million in revenue--and supply is limited to the 10-15% of the market that
meets the hiring filter.

I suspect the same is true in the tech industry. Google, Facebook, etc. don't
hire candidates who can "do the job." Like in law, there is this idea that
it's important not just to have competent programmers, but programmers who are
smarter than your competitors' programmers. These firms limit their pool of
hires to those who, by their metrics, are one or even two standard deviations
away from the mean.[3]

Meanwhile, everyone else is willing to hire the median programmer. They can do
the job, and there isn't the same idea in that segment that it's worth paying
much more to have people who can not only do the job, but do it faster/better
than your competition.

[1] How this group of highly profitable firms continues to exist despite
market competition is outside the scope of this post.

[2] Cravath measures that as a function of law school rank and class rank. No
comment on the validity of this model.

[3] Again, no comment on whether going to CMU and acing interview puzzles
makes you a top programmer. What matters is that these firms think it does.

~~~
daxfohl
Most of the comments seem to be focusing on the supply side. I agree the
demand side is probably the greater factor.

~~~
GBond
Yes, I agree.

The web-scale software segment is at a unique point in time where it is still
in an "arms race" mode of growth for the best employees between its
competitors AND making tremendous profits.

------
jasode
If there's a pronounced bimodal distribution, it seems like the biggest driver
of it would be the lumping of various programmer specialties into one giant
bucket. It seems like the 2 sub-buckets would be:

1) $100k or less: backoffice programmers where software itself is not the
product sold. Also known as enterprisey/LOB/CRUD developers working outside
Silicon Valley. (E.g. programmer working on mortgage servicing software for a
bank in Kansas earning $80k salary.)

2) $150k or greater: programmers for a "tech" company in Silicon Valley. (e.g.
the programmers at Apple/Facebook/Google earning $150k+)

If you combine those 2 groups nationwide, you'd end up with 2 humps in your
graph.

~~~
Amezarak
I really think it's location, location, location, not necessarily whether or
not the software is the product.

I've worked for consulting companies, product companies, and right now I work
for a sort-of back-office organization. The best I've been able to do, despite
several years of experience, good references, inside connections, a graduate
degree, and being pretty (I think, anyway) personable is...75k. And I don't
know anyone doing much better _unless_ they moved to SV or NYC.

My long-term plan is to see if somehow I can find the time to find a side-
project or contribute to something open source, so my ability is out there and
highly visible to anyone considering me, but that is going to be very
difficult for where I am now. I'd _love_ to make low six figures, it seems
difficult to believe even in SV there are new grads making 150k, and it's
frustrating to me because I know I perform at the level of people making that
much money.

EDIT: In case anyone was curious, new grads hired for development in my area
of the US get paid from about 35-45k.

~~~
ryuker16
IDK, I'm calling horse __ __on that.

I'm a self taught developer who have roughly 1 year exp. and moved to
Tennessee(40th poorest state in the union, ultra low cost of living) for a
software gig last year. I'm black, 30 year old male, and have a resume with
more job/career hopping than a con-artist.

I'm not really that great at programming(got fired after 6 months!).....first
offer(I took it) was low ball....at 55k!! Next job I took over paid me and
offered $92k with zero negotiation to lower it: All within one year.

I've worked prior tech jobs offering $25k-40k and they were usually some
unholy mash up of lite programming and I.T. help desk/system admin roles.

From talking to companies, the non-sexy locations have to pay up the ass and
fly in talent for open source. The .Net guys around me make bank too.

If you have several years of programming experience and can only get $75k, I
wonder if you program in VB or some obscure academic language....I usually
have to argue with recruiters to lower their pay requests per hour...in the
south.

~~~
Amezarak
I mostly have done enterprisey stuff, webdev and desktop, so C#, Python, Java,
C++, Javascript, and then a long tail of other stuff. Really good at SQL. No
IT stuff.

I can't explain the .NET world, but I think what could hurt me with open-
source type companies is my lack of a Github. Nothing I've done for work has
been public, my personal projects are nothing I'd be willing to share and,
quite simply, the very last thing I want to do when I get home at the end of a
ten-hour day is program, especially when I have many, many other things that
need to be done - around the house, with the family, etc.

Like I said, my plan is to somehow find the time and contribute, so there's
_something_ out there, but it's going to be rough and take a while. But if
that's what I've gotta do, that's what I've gotta do.

Overall, I think the biggest factor is my unwillingness to move. I do live in
a very poor state. I am very confident that if I went elsewhere I could make a
lot more. There are maybe a dozen and a half employers here. Generally the
rule seems to be the commercial companies pay nothing, and the government
contractors pay by what you can negotiate plus years of seniority.

Maybe I should go the recruiter route - I never have. That's one reason I
posted, to see what other experiences are. Thank you.

------
ffjffsfr
Majority of new IT grads earning 150k? This can't be representative sample for
US.

> this is from about 100 data points, members of the “Hackathon Hackers”
> Facebook group, in 2015.

What's the point of analyzing data from such narrow and unusual sample?

RE: how to get data about programmers salaries, I'd say try to check job
postings, they usually say how much company offers.

~~~
personjerry
Does 150k include bonuses and stock?

In my experience, 150k base pay sounds awfully high

~~~
base698
It's about average for LA at the moment. Not new grads mind you but 5+ years
experience.

------
dkopi
The most important thing to remember about developer compensation, especially
when comparing to more "traditional" roles, is scale.

A programmer working at a large internet company may be impacting millions
upon millions of people. Building a feature that lets you collect (or save) a
penny from a user every month is worth $240K a year when spread out over 2
million users. $120M when spread out over 1 billion users.

That's really my answer to the common question at the end of the post: "I
don’t understand this at all and would love to hear a compelling theory for
why programming “should” pay more than other similar fields, or why it should
pay as much as fields that have much higher barriers to entry."

~~~
rmk2
A roadworker should be paid amazing rates, then, because millions of people
will end up using that road.

~~~
rajeshp1986
Construction workers are traditionally resources, They can be quickly
replaced. With software this becomes tricky. You need to spend considerable
time, amount and energy to find the correct replacement who can drive it with
same efficiency. The 2 reasons why companies like Google, Facebook etc pay so
much is because: 1) They want to attract the top talent, top 1%, 5% may be. 2)
They want to keep people happy so that the key people working on most
important features don't leave the company.

~~~
gaius
The majority of companies consider developers to be "resources" too. Do you
have an HR department where you work?

------
rajeshp1986
Funny thing that I was having a discussion with one of my friend who is in the
middle of salary negotiation. The company is pushing him hard to accept the
offer well below than his expectations and he was expecting more hike as he
was relocating to bay area. He was quite disappointed that he didn't get the
salary figure he was expecting but still wanted to accept the offer as he
didn't want to loose the opportunity. We discussed at length about how the
salaries in software ended up like this. Why are they not transparent like
finance guys, lawyers, doctors etc. This is also the standard structure across
the world for all software industries irrespective of the country. The
salaries are not transparent and the developers are kept in dark.

How did we end up like this? Is it not a bad thing for the company that
employees are demotivated when their pay sucks? I feel it is a very basic
thing. To make more profits you need to build better products and sell better.
How much can you save on operating costs by paying employees less?

I feel the companies & HR needs to modernize itself. There was a time, you
could get away by paying a particular employee less and he may never find out.
This is an Information age!! Information freely flows. There are many sites
like Glassdoor, Paysa where people can go and find out more about salaries
that you are paying to your employees. It is no longer a well kept secret.
What is required here is that companies and HR's understand this and make
salaries open and relevant to the value produced/added to the company.

Since the early managers probably didn't understand the dynamics they went
with what they could do best at their time. I feel this model of negotiating a
salary based on previous salary should be deprecated. It should be replaced
with a more open model.

It doesn't hurt much to know that the next guy is getting paid more than me,
if that guy truly deserves it and produces much better code or is adding more
value to the company than me. What hurts more is that to know that the company
values the other guy more and pays him more just because he is straight out of
college or gets lucky at salary negotiation.

I think it is time Developers & Engineers talk more freely about their salary.

~~~
morgante
> Why are they not transparent like finance guys, lawyers, doctors etc.

The average banker or lawyer is an order of magnitude better at negotiation
and valuation than the average developer. It's literally their job. For a
finance guy, not optimizing your compensation package is sacrilegious.

Meanwhile we have still have lots of developers who think it's absurd that
they'd even be paid $100k and don't want to think about money at all. [0] They
drag down compensation for themselves and for others.

Unfortunately it's not simply a matter of information. You can tell people
that the market rate for their position is $200k/yr but they'll tell you
that's absurd, that they think it's too much, or that they'd rather just focus
on code.

Doctors solved this by sharply restricting supply and making it illegal to
practice without being part of their cartel.

[0] Seriously, on HN people regularly complain about making too much. Even in
this very thread you can find people who are skeptical of high salaries:
[https://news.ycombinator.com/item?id=12588504](https://news.ycombinator.com/item?id=12588504)

~~~
collyw
I was interviewing in Spain a while ago, the salaries are fairly poor here.
Some guys with ten years experience were asking for very little. I should have
told them to up their requirements.

At the same time none of them seemed very enthusiastic at all.

------
asdf742
Does anybody else think the salaries are a little high? Perhaps the sample
size is skewed? I'm somewhat senior in software engineering, but I literally
don't know a single person making over 200k. Nada. Not one. I also don't know
any college grads who started making 150k. That seems absurd, unless you're
only looking at certain companies and top performers or something.

~~~
humanrebar
200k isn't that rare for senior engineers in large firms in NYC or the bay
area.

~~~
lallysingh
Not even senior.

------
joeblau

      > Programming also doesn’t have a licensing body limiting the number of programers,
      > nor is there the same prestige filter where you have to go to a top school to
      > get a well paying job.
    

This is my favorite quote from this article. I went to a great school and even
though it wasn't Berkley, Stanford, MIT, or CMU, that qualification has
_never_ limited my ability to get great opportunities.

~~~
phd514
While it's true that a prestigious degree is not strictly necessary for
obtaining a good job, in my experience, it helps a lot in getting your resume
nearer the top of the stack for those job openings.

~~~
gaius
It matters alot in the first 5 years of your career.

Consider tho' that a developer with say Google on their CV has the "prestige"
that once would only have been conveyed by a university.

------
syllogism
Developer compensation is high because developers produce more valuable work,
and in the short term the labor market isn't that efficient. People don't make
very efficient initial choices of career, and their initial choices are fairly
sticky.

In the middle of a gold rush, how does it happen that people change their
plans, and go out and mine the gold, sell the pick-axes etc? Dropping your
plans generally sucks. All else being equal, you'd rather not. And you
probably know less about the opportunity than the one you're pursuing. Because
not everyone is going to drop everything and go mine gold, if the gold mining
is profitable, the people who do pursue the opportunity are going to do very
well. And that'll continue to be true for a long time — because people just
don't respond to these opportunities that efficiently.

As a comparison: in Australia during the mining boom, the salaries available
for work in the mining industry compared very favourably to other industries.
And yet I knew lots of smart high-school grads starting degrees in fields like
chemical engineering, aerospace engineering, computer engineering...Smart kids
would eagerly enroll to study fields where there was no industry to speak of
in Australia; even though a lot of them weren't planning to move overseas. In
the meantime, salaries for mining-related fields were sky high.

My hand-wavey, empathic read on this is that following price signals into a
field you don't have a particular affinity for feels somehow wrong. I think
smart kids are very vulnerable to this sensation. They feel like simply going
into the high-paying field is somehow too "obvious". It's an affront to their
sense of individuality. I think the small/large company thing is in part a
similar effect.

~~~
dsfyu404ed
It's say it's the "smart but not intelligent" kids that are vulnerable to
that. The "smart kids" ride the wave to get their foot in the door and pivot
into something more stable.

Being the local subject matter expert on a relevant topic or straddling the
management/technical line goes a long way. Look at what happened in the
defense industry in the 1990s and tech in the 2000s.

Being able to code well and having domain specific knowledge is more valuable
than just being able to be a rock-star. When times get tight companies shed
weight (people) and carrying around a splitting maul is a better deal than a
sledge and wedge because it even if it's a little less powerful overall.

------
tboyd47
The discussion about bimodal pay distribution is interesting, but I think
there's a much more parsimonious explanation to it. Most of the companies that
are going to be paying software developers $150k+ are based in or around SV,
where rent is abnormally high.

But what's even more interesting to me is another question the author
discusses halfway through the article:

> How is it possible that programmers are paid so well without these other
> barriers to entry that similarly remunerative fields have?

The author posits three hypotheses: 1) supply of programmers is naturally low,
2) immigration laws keep the supply artificially low, and 3) the overall
relative efficiency of American companies create a productivity force
multiplier for everyone at the company, including programmers.

I want to introduce a fourth hypothesis, which is that programming _skills_
are highly commoditized, which causes demand for those skills to increase.

If I work for OmniCorp using 100% proprietary OmniCorp technologies, they have
no reason to pay me more than the bare minimum because I'm effectively married
to them. If I work for OpenCorp on a 100% open-source stack, then the
buzzwords listed on my resume prove I can be productive at thousands of other
companies, giving them all incentive to compete for me.

~~~
city41
But isn't OmniCorp married to their devs too? Those devs probably took a while
to get up to speed on the proprietary stack, and outside devs would have a
ramp up time. Not to mention outside devs would be hesitant to take the job
seeing as they'd get stuck learning proprietary technology making them less
mobile.

~~~
collyw
Tech is a vast field. We are having trouble finding a Django developer where
we are. Project managers decision to hire based on this, my opinion is we
should look for a good all rounder, as Django knowledge only makes up around
25% of the knowledge that is needed. Someone that knows HTML, some JavaScript,
_any other framework_ , how to set up remote servers and use a database
effectively. If your only skill is Omnicore, your suggestion makes sense, but
there are so many different things to learn, that having a wide knowledge base
makes sense.

~~~
city41
I agree with all of that. It's a complex issue. And it's compounded by the
general "we have no idea how to hire developers" that is found throughout the
industry.

------
hibikir
The assortive matching is very real, but whether that's related to salaries is
another matter. I live in a far smaller tech market than the valley, and it's
plain as day. We might have about 20 large employers that use the JVM. Out of
those, it's so easy to see the good from the bad that many of the good places
are skeptical about even giving an interview to someone working in one of the
bad ones without a reference. Interestingly, places can transform by altering
the way they hire and who they retain: I have worked for a place that was
known as a terrible place to be, and changed their fate by building a very
good interview process and laying off the weakest side of their staff.

I remember doing the climb from the bottom myself: Few places hired new grads,
but the ones that did hired pretty much everyone. it only took a few weeks for
teams to realize who knew how to program and who didn't: inter team
communication quickly became a network of the people that could get things
done. Eventually, as people came in and left, the high performers started
taking other high performers with them to better companies, where similar
sorting happened again, but with a higher floor.

What I have seen instead of big salary differences is that the best firms have
better management and treat developers better: Given that outside of
consulting, the market has relatively well defined maximums, the good
developers congregate in places where the work is more rewarding and doesn't
put high tolls on peoples' lives.

In the valley there are companies that get so much more value out of
developers that they can pay more, but even that has a ceiling, and when we
get to that ceiling, being good companies to work for becomes the next
differentiatior.

------
markbnj
Being a physician or attorney confers additional compensation in the form of
social status and prestige which I think it's fair to say we don't get by
virtue of working on code. I also think that as a general rule there is a
fairly small percentage of people who like programming, and can sit in front
of a computer and focus on code for hours at a time and consider that a
fulfilling way to make a living. I doubt that percentage is ever going to be
much higher than it is now.

~~~
morenoh149
Social status and prestige is all in our minds. You can code and be very
respected in society if you act that way. The problem is that the type of work
attracts (filters?) for introverted behavior. The folks that aren't going out
and being flashy.

------
antocv
You can find salaries data by looking at Swedish IRS, the numbers are public,
but may not be in digital form/easy API yet.

But you can order a catalogue from a redistributor, containing every persons
income from work and income from capital and taxes payed, for previous year.
Would not take much to scan it and analyze.

~~~
pathy
Here is a quick Google Sheets with most "Developer employee codes" that are
reported to the tax authority/Statistics Sweden.

Salaries listed per Quartile, in SEK. The categories are quite broad. There is
a listing per decile but I could not find it right now.

[https://docs.google.com/spreadsheets/d/1yPjcXoKuwq8SBngQ2-G9...](https://docs.google.com/spreadsheets/d/1yPjcXoKuwq8SBngQ2-G97dxalLT1PqelSM8VXcdDLaY/edit?usp=sharing)

[http://SCB.se](http://SCB.se) is the source.

~~~
antocv
This is nice, and should give a good picture of the industry as a whole.

The data probably masks those who are self-employed subcontractors and take a
lower salary in order to lower taxes at profit time, which should effectivly
double or tripple the reported salary.

Ofcourse, it does get a bit difficult to compare this data vs USA, because we
have social necessities already payed for by the high tax of the collective
workforce, such as health care, pensions, safety, and many other insurances.

So, say average is 42 000sek per month, that gives about 59 000USD per year
salary. Which may seem low compared to USA, but behind those 59 000USD, is
31.49% in taxes for things we enjoy.

~~~
pathy
Yep all very true.

I believe the salary listed here is pre-tax so the take home pay (for someone
living in Stockholm) would be 30 330 Kr/m or $42.5k/yr.

This number excludes social costs; the total cost per month for the employer
is just over 55 000 SEK/m.

------
SloopJon

        > Developer compensation has skyrocketed since the demise
        > of the Google et al. wage-suppressing no-hire agreement
    

Is this true? This seems like a bold claim, given that most of the post is
about how little data there is on programmer compensation.

~~~
chrisdbaldwin
Yes, it happened. Thanks Steve!

------
AStellersSeaCow
FTA: "One possibility is that we have a shortage of programmers. If that’s the
case, you’d expect more programmers to enter the field, bringing down
compensation."

This is imo a big part of why high-end salaries have skyrocketed, but the
author's reasoning is total "let them eat cake."

It's not that there's a shortage of programmers overall. There are lots of
programmers working non-industry jobs for relatively piddly salaries who would
leap at the opportunity to double or triple their compensation at a big name
tech company - if they were qualified to do so.

The problem is that there's a shortage of people who have the aptitude and
skills to work in a big tech company with very high expectations for even
their entry-level engineers. I don't doubt that there are intangibles at play:
soft skills, "cultural fit" biases, to a lesser extent academic pedigree, but
none of that trumps needing to be an actual honest-to-goodness engineer,
rather than a "programmer".

Plenty of other pieces (citation needed) have been written about the growing
chasm between the two classifications of development jobs - engineers who can
create software, vs. programmers who can write code - and I think the salary
differences are just an aspect of that.

------
kriro
My working hypothesis is that there's more programmers in the "very good"
bucket that don't care all that much about monetary compensation than in other
domains. As long as a certain X that is deemed fair is reached they are way
more interested in interesting problems/an opportunity to learn new
things/access to hardware or data they couldn't otherwise get etc.

Or in other words, (good) programmers care a lot more about motivating factors
than hygiene factors than other employees.

I have no data to back this up, only a gut feeling.

~~~
collyw
I think this is true to at least some degree. I have noticed that the better
paying jobs here are Java or Microsoft stacks, probably more corporate style
jobs. Personally I prefer working in a smaller place in Python, and feeling
genuinely valuable to the company, having done some corporate stints earlier
in my career.

------
alecco
I'd like to see that adjusted to cost of living where the job is. I bet is not
bimodal anymore.

~~~
geodel
I do not have US data but in India a few friends and relatives living in same
city have 5:1 ratio in compensation for same no of years as experience. The
lower ones are in traditional IT job others in mobile app / big data.

I think in US it will be same cutting edge skill vs traditional skills.

~~~
alecco
Ratio of highest/lowest doesn't have much to do with distributions. This is
about having blocks of people paid more than others.

------
sev
Just bimodal?

I work for a large, well-known tech company and they just re-titled all of
their front-end engineers to "Software Engineer" (probably to stop creating a
pay divide between front-end and back-end engineers). If you have a "Software
Engineer" doing basic wordpress stuff, another "Software Engineer" doing
PHP/Zend framework stuff, another doing pure JS/React/Angular stuff, and
another doing backend services (concurrency/spring boot/API, etc) - the pay
scales of all these "Software Engineers" _should_ be different.

I'm surprised it's not trimodal.

------
yibg
Having been in the hiring and compensation path at a few companies both north
and south of the boarder, this seems to only apply to the US, and in
particular silicon valley.

Up in Canada, the compensation seems to be more of a normal distribution.

------
faddat
Yes.

Tier 1: Those who solely re-implement. You can do a lot copying and pasting.
It's just not worth as much money.

Tier 2: Those who re-implement while creating anew, typically in specialized
areas or occasionally very well over a wide range of tasks.

Note the importance of re-implementation to both job tiers.

------
projektir
I'm trying to figure out how most of this thread meshes with, say, the growth
mindset.

------
MollyR
I just assumed its becoming bimodal due to silicon valley rents being so high.

------
faddat
Yes.

Tier 1: Those who solely re-implement. You can do a lot copying and pasting.
It's just not worth as much money. Tier 2: Those who re-implement while
creating anew, typically in specialized areas or occasionally very well over a
wide range of tasks.

Note the importance of re-implementation to both job tiers.

