
Programmers Should Plan for Lower Pay? - luu
https://www.jefftk.com/p/programmers-should-plan-for-lower-pay
======
NewEntryHN
Many programmers have a bias in thinking that what they're doing is easy or
simple, because they truly enjoy it and, many times, have learnt it as a
hobby. Their career choice have never been a masterplan on winning big, but it
just happened to be so, so they feel like they're fraud.

Hobbyist programmers (who usually end up being the best ones) usually put
great investment into their career by doing side projects on their free time.
We're talking weekends and night of trying out stuff, hacking stuff, reading,
learning, etc. It's often an invisible investment, because it's a hobby and it
doesn't feel like work.

In the end, programmers don't really need to dig that far to reach a point
where they're good at building stuff using enough layers of knowledge to make
what they do absolutely obscure to others.

Nobody has a hobby of learning by heart the bones in the human body or the law
texts on intellectual property; but programmers most likely know by heart a
sizable bunch of Bash commands and their options, HTTP status codes, API
interfaces, etc. It seems like highly advanced knowledge to be able to solve a
health problem from a set of symptoms, but from the point of view of the
layman, solving a computer problem from an error message is about as magic as
it gets.

~~~
_bxg1
> Many programmers have a bias in thinking that what they're doing is easy or
> simple

In my experience it's exactly the opposite. People who do nothing but write
glue code between major services think they're hot stuff.

One of my personal career goals is to stay as far away from simple glue code
as I can. Unfortunately it makes up most of our field right now. But it seems
like an especially precarious place to be.

~~~
jniedrauer
There aren't a lot of areas left in CS where "clever" solutions are warranted.
If you're writing clever code, then chances are you're doing a disservice to
anyone who has to maintain the mess you're creating. Code is mostly just
plumbing. Boring code is better 99% of the time.

~~~
ken
The flip side of this is that _because_ digital plumbing is "boring", the
industry is constantly seeking ways to avoid it. Writing assembly language was
(usually) really boring, so we developed good compilers to do that for us.

I look forward to the day where I can send data from one place to another and
not have to bother with file formats, text encodings, port numbers, network
protocols, and so on. IP (and especially TCP/IP) is so prevalent today that we
use "IP connection" and "network connection" interchangeably. Someday I hope
we have that consistency at some other layers of the stack. I shouldn't have
to say "send me that file -- what app did you use to make it?"

~~~
fragmede
In fact, that's already been solved for the most boring of digital plumbing.
The data is JSON (which requires UTF-8), and the port number either 80 or 443
- the library automatically handles that depending on if the URL starts with
http or https. `requests.get(URL).json()` will grab that data for you
(Python). That only covers a very specific but very prevalent use case, just
like TCP/IP covers the most prevalent use case for networking.

What are you doing where that can't covered by that use case? Actually, I can
think of tons. What are you doing that _can 't_ be covered by that use case,
_but is still boring_?

~~~
jniedrauer
Something I find myself doing repeatedly is implementing arcane protocols that
were created long before JSON. Bit-packed mainframe protocols. After the
second or third time of working with another binary format, there's no new
knowledge to gain, and it's not interesting work. But it requires meticulous
attention to detail and can't be automated. Most industries don't require you
to solve _this specific problem_ but it's all variations of this. Shuffle data
from one format to another format. Even if it's JSON, you're still moving it
from one business domain to another, or one tech stack to another. Backend to
frontend. Etc.

------
ethn
Wage isn’t based on the difficulty of the job.

Wage is based on the opportunity cost of the uncaptured labor value incurred
due to employment. For software engineering, this is acute since with the same
skills needed for employment one can make a competing enterprise to their
employer and capture all the value.

Other professions require you to have large capital to do so, so the
opportunity cost is either non-existent if you cannot access that capital or
further discounted by the financing cost/risk.

Your end SWE wage ends up being the value you would otherwise be able to
capture discounted to the expected value w.r.t your risk.

Companies profit on employment by having a lower risk in enterprising, thus a
better EV, than their employees in the same enterprise for a given number of
reasons—brand, preexisting customer base, speed, proprietary market analytics,
etc.

~~~
adrianN
I think the skillset needed to successfully start a company is quite different
from the skillset needed to be a good programmer. I consider myself to be a
decent programmer, but I would never be a successful business owner

~~~
taneq
True but a development machine is a bit cheaper than a steel foundry or an
automotive production line. The barrier to entry for a new software company is
orders of magnitude lower than other industries.

~~~
wallace_f
Also, for the most part, isn't yet monopolized by lobbyists, corporatists and
government working together to use regulatory capture to corner markets. It's
pretty extreme in some industries, such as telecomm with natural monopolies,
but also in markets without natural monopoloes. People even get arrested/fined
for ridiculous things like braiding hair, giving haircuts (such as to
homeless), selling hot dogs, selling cookies, or selling diet advice, etc.

So in accordance with OP's theory, if this were to happen the salaries for
devs would go down.

~~~
jefftk
I'm confused: normally occupational licensing and other barriers to entry are
modeled as _increasing_ pay by constraining labor supply. Why do you think I
think the opposite?

~~~
wallace_f
I was just following a thought from the OP's theory. Although it makes some
sense as follows:

Regulatory Capture involves not just occupational licensing, but artificial
monopolies over products and services. For a current example, Facebook has
been lobbying congress and even publicly stating that they want to work with
them to regulate social media platforms and news media; and even though many
can see some benefit to these regulatory laws, the trouble here is that
critics argue these types of regulations tend to entrench large corporations
who have the legal staff and dev bankrolls to deal with these rules. Actually,
many industries, even historically cottage industries such as agriculture has
been in modern time criticized in this way as having rules and subsidies
written by large industrial, corporate entities which benefit large providers
by creating barriers to entry for small competitors.

In short, they create legal barriers to entry to creating the next providers,
such as the next Facebook. In accordance with OP's theory, as the
opportunities diminish, the value of labor decreases.

But yes, traditionally occupational licensing increases cost and barriers to
entry to providing a product or service and is modeled as to increase salaties
and decrease jobs as labor supply is constrained.

This is an interesting comparison of orthodox economics as you have mentioned
with a reasonable yet heterodox theory in the wild I've seen. I haven't seen
OP's theory stated explicitly before. Have you? Unfortunately in economics, we
are dealing with the science of studying human decisions and as such it is
grossly impractical to create a true scientific experiment here to determine
which theory makes better predictions. This is probably also partly why
economics tends to be snobby, pretentious and inflammatory: it is ultimately a
war of words and mathematical arguments when it comes down to it.

~~~
jefftk
Uh, I am the OP, and that's not what I was saying?

~~~
wallace_f
What? You don't think you said something along the lines of the valuation of
labor to a firm being tied to the opportunity cost of the product of that
labor?

------
pbecotte
But... we understand EXACTLY why developers are paid so well. Economics (the
same reason EVERY profession is paid the way they are). There are two factors
that come into play for employee pay- 1. Supply/demand: When demand outstrips
supply, prices rise. The demand for software so vastly outstrips the ability
to produce it that salaries are being driven very high because 2. The marginal
value that an employee can produce. This is a hard cap on the salary that any
profession can charge, and is the primary driver for demand. So long as 2 is
higher than the prevailing salary, demand will continue to rise, which will
apply upwards pressure on salaries.

Of course, high salaries will attract more supply over time, which will put
pressure back down on salaries. The current dynamic is SO out of whack though-
there is a ton of slack in the system.

This isn't a boom/bust thing either. There is SO MUCH business value that
could be had if there were programmers available to build the software. I
don't think we're even scratching the surface of everything that could be
profitably built yet. I think betting on a big bust in software engineer
salaries would be a bad move.

~~~
vonseel
_Of course, high salaries will attract more supply over time, which will put
pressure back down on salaries. The current dynamic is SO out of whack though-
there is a ton of slack in the system._

I understand all of this.

Are there any examples of industries where - for lack of better terminology -
a salary "bubble" formed and later popped? For example, X job used to pay 100k
and now it pays 50k? Probably better to exclude jobs that aren't around
anymore because they were replaced by automation or don't make sense because
of modern technology, at least for this question.

I guess I have an inkling that - ignoring things like economic downturns and
lowering salaries due to high unemployment - employees will fight back against
any downward pressure on pay, and once salaries go up, they tend to stay up.
Sort of similar to what you see when an individual gets raises and jumps
companies for an income boost - you rarely see someone take a job paying less
than their current job.

All that reminds me of how people who graduate during recessions earn lower
income over their careers[1].

[1] [https://hbr.org/2018/09/people-who-graduate-during-
recession...](https://hbr.org/2018/09/people-who-graduate-during-recessions-
earn-less-money-but-theyre-happier)

~~~
_bxg1
I've heard this basically happened with Law. 20 years ago lawyers were raking
it in and everyone wanted to be a lawyer. Today an entry-level lawyer makes
less the half what an entry-level programmer does, and with twice the student
loans. There's a glut in the market. My girlfriend was a lawyer for a couple
years before doing a bootcamp and she almost instantly started making three
times what she used to. It's crazy.

~~~
vonseel
I thought a lot of the pay changes with lawyers was due to tort reform and
caps on punitive damages, but I am basing that purely on vague memory.

To be fair, first year lawyers at _top_ firms do earn comparable pay to
programmers at good companies, maybe not as much as a full compensation
package with equity, I’m not sure. But those lawyers who consistently rank at
the top of their class and among their peers and stick it out and eventually
make partner - they will make much more money than the average software
engineer. See this link for some details on what top Texas firms are paying
associates [0]. Partners at the big firms make a lot more than 190-300k -
probably 2-3x.

The catch is that with law or investment banking you need to be at the top of
your class and pedigree matters if you want to get the best jobs. With
software engineering these days, a degree is becoming less and less important.

I think at the end of the day the person who enjoys being a lawyer is a very
different type than the person who enjoys being a software engineer / coder,
and I’d be surprised if there’s much overlap between the two. I’m sure some
people can be good at both, and certainly most good developers have the brains
to get through law school and pass a test, but the work is so drastically
different many people just won’t be happy in the job, and, like what possibly
happened to your girlfriend, they move on.

[0] [https://www.bizjournals.com/houston/news/2018/06/25/major-
te...](https://www.bizjournals.com/houston/news/2018/06/25/major-texas-law-
firms-boost-starting-salaries.html)

------
honkycat
I've worked with the overseas "talent" and if that is the best they can do,
I'm not worried.

Hell, I've worked with a lot of people on the US side of the pond who have
experience or are educatied and they can't rub two keyboards together to ship
a product.

My observation has been the opposite: no matter how much you offer, a lot of
companies STILL cannot hire enough engineering talent.

~~~
BrissyCoder
Yeah this. I've been in the industry almost 20 years and over that time have
noticed a massive shift in recuitment processes.

The first couple of jobs I had the interview process was a conversation with
barely any technical content (let alone being asked to write a single line of
code). Nowadays there is a generally a barrage of technical testing.

I think companies are realising the huge difference between having top 20%ile
programmers versus the rest. Where I am currently although we get plenty of
applicants we simply can't fill all of the spots.

Agree with the overseas talent comment as well. The amount of technical debt
they create is massive, the overhead in communication is too high, and the
people aren't invested in the products the code they are creating.

~~~
EastSmith
> Agree with the overseas talent comment as well. The amount of technical debt
> they create is massive, the overhead in communication is too high, and the
> people aren't invested in the products the code they are creating.

Technical debt: As an oversee talent, cleaning up the technical debt created
by (now left) US employee, we can see that both yours and mine experiences are
anecdotal.

Slack Communication Me: 1. Question A, 2. Question B, 3. Question C US
employee: answers half of the question B, general ramblings about A and C

Zoom communication Me: Lets get on zoom and figure this out right now US
employee: lets schedule the meeting on 2 days, throw a PM and two more
developers in it, so they can waste time too

So, I guess, lets agree that generalizations are not ok.

~~~
SgtBastard
You just made the parents point about the overhead in dealing with offshore
devs is too high to be productive.

Perhaps you’d like to expand on this technical debt you’re cleaning up?

------
f2000
It turns out that being a good programmer isn't simple or easy. I've seen many
teams where everyone on paper looks like they should be a good programmer, yet
only a few team members are doing the heavy lifting and the majority are
really just in supporting roles and sometimes not even doing that so well or
even contributing negative marginal productivity by creating bugs, technical
debt, and team dissension.

~~~
corporateslave5
Yeah but I think most of the time this happens because some senior developer
edges all the other devs out. After a few months of this he’s so productive
with the code base that the others look like bad programmers

~~~
magicalhippo
It's hardly a one dimensional thing though.

One of my coworkers is really good at churning out code in a short amount of
time that will do the job. He's not so good at abstracting his code to make it
more reusable, even when he has time.

Another coworker is a hard-working cleanup guy, he doesn't mind getting his
hands dirty and spend several long days cleaning up a decade of cruft. But he
doesn't always appreciate subtle differences in code, so sometimes introduces
regressions.

Third guy we have has excellent domain knowledge which is invaluable, yet is
an otherwise average programmer.

I've got my set of things that I'm really good at, and the things I'm not
particularly great at.

We don't have a rock star dev, but we have people who are good at different
things and we take that into account when planning and executing projects.

------
JDiculous
Programmer salaries are only especially high in the U.S. and a few other
countries. In most countries, programmers don't get paid anywhere close to
what SV engineers make. In the U.K. for example, programmers start at
~$32k/yr.

I think the reason for high programmer salaries in the U.S. is due to:

1\. Culture that values engineers

In Silicon Valley and in many tech companies, the culture is that high quality
engineers are highly valued and respected, and thus command high salaries.
Companies like Google, Facebook, and Microsoft were founded by ex-programmers
/ ex-CS majors, so they understand the value that high quality engineers bring
to the table and are willing to pay for them. Whatsapp was bought for $20b and
only had 50 employees, 70% of whom were engineers.

In non-tech companies where tech is seen merely as a cost center, programmers
don't make that much (eg. fashion companies). For the record there's nothing
wrong a non-tech company not wanting to pay top dollar for engineers, some
random ecommerce store probably doesn't need world class engineers, just like
a semiconductor manufacturer doesn't need the best graphic designers.

I'm not very familiar with the UK so I don't know firsthand why UK engineer
salaries are so much lower than in the U.S., but if I were to guess I'd say
it's largely because their culture just doesn't value engineering talent like
in SV.

2\. Tech companies have a lot of money.

The big tech companies have very high margins. Facebook's market cap is
$20m/employee, profit is $684k/employee and has a profit margin over 40%.
Apple's market cap is $9m/employee, revenue is $2m/employee, gross profit
margin is 38%, and they have $245b in cash. Even unicorns that bleed money
(eg. Uber) are flush with cheap capital from VCs, with Uber having raised $20b
to date.

Looking at it from this metric, it would seem that engineers are _underpaid_
relative to the value they create. Not only just engineers, but labor as a
whole.

~~~
perl4ever
People on HN look at everything not just from a regional perspective, but that
of a very small clique out of all of the professional programmers. FAANG
companies have plenty of work that is beneath their SWEs, which they
outsource, in some cases, to American companies that have a mix of American
employees and offshore. They hire people in the US around $40-60K and increase
pay very slowly. Nobody gets paid $100K, because (a) if you switch jobs, you
only get an incremental bump in salary, due to not having the right kind of
title and pedigree, and (b) you're competing with much lower paid offshore
employees. Best case is $80-90K after ten years and/or relocating to a major
metro area.

~~~
JDiculous
Interesting. Any examples of this kind of lower valued work?

~~~
perl4ever
I mean, it's not precisely lower valued. It's valued low enough by the in-
house SWEs, that they aren't going to do a good enough job to prevent
embarrassing headlines.[1] Therefore, the outsourcing company isn't going to
_charge_ much less.[2] At the same time, they provide insulation from
responsibility if something does go wrong. So they can _pay_ much less and
capture the difference. The cultural gap[3] prevents their employees from
working directly for companies like their clients so competition doesn't
equalize wages.

[1]This is a reference to particular events of which I'm aware.

[2]e.g. an hourly rate equating to $250K/year, maybe more.

[3]I mean nerd culture, not "real" culture.

------
michaelmrose
This isn't hard to understand at all. Programmers are paid well because you
need a pretty smart person willing to work at a not very exciting job often
offering few interesting challenges that will likely contribute nothing of
note to society but has the potential to contribute substantially to the
efficiency and profitability of your enterprise.

Most of the people that are smart enough to be good are likely to be either
doing something more interesting, contributing more to society, or making even
more money than you are willing to pay them to sit in a chair and write code.

It's not that most people aren't suitable. It's that most of the people that
are suitable aren't available and thus you have to pay more money to compete
to pay the ones that are to sit in a cubical and waste their life helping you
sell more ads.

~~~
sweeneyrod
> a not very exciting job often offering few interesting challenges

I think the exact opposite is true. Maybe programming isn't as interesting as
being a literal rockstar, but I think most programmers' second choice of job
would be "real" engineering which is usually lower paid and in my opinion less
interesting.

~~~
commandlinefan
Yeah, he’s saying I’m either not that smart, or that I’m wasting my life...
I’m not sure what to be offended by here.

~~~
michaelmrose
Maybe you are lucky enough to work on interesting things and don't need to be
offended?

~~~
therealdrag0
Some people like cross-words/sudoku; I don't understand it except I like my
work too just for the sake of solving problems, which is basically the same
thing. Some people find satisfaction in "uninteresting things".

------
twblalock
No matter what happens, his basic advice is sound: spend a small portion of
your income.

My advice is similar: live on your base salary, and save a lot of it, so you
will be fine even if your bonuses/RSUs/options end up worth nothing.

In the worst case, you save up a lot of cash before programming compensation
drops. But even if that doesn't happen, it's still better to build wealth,
save for retirement, and perhaps have the ability to retire early if you
choose to.

~~~
aantix
Why?

So you can be old and crippled finally going on the vacation you dreamed of?
Barely able to walk out in to the ocean, much less surf like you dreamed of?

Nothing is guaranteed. Quit living off rehydrated beans and eggs like you’re
winning a merit badge and start financially planning to see the things your
heart desires.

If you have left over savings when you die, you did it wrong.

~~~
jamii
> old and crippled finally going on the vacation you dreamed of > living off
> rehydrated beans and eggs

I'm continually baffled by this kind of reaction.

I spend ~30k USD per year - more than the average american and more than 99%
of the world. I live in a nice apartment with a garden, a 10 minute commute
from the centre of one of the most expensive cities in the world. I buy
organic food from the local supermarket and eat out multiple times per week.
This year I vacationed in Tenerife, Greece, Italy, San Francisco and
Vancouver.

This is, by any reasonable standards, a life of luxury. And on a typical FAANG
salary it would take ~7 years to save for retirement -
[https://networthify.com/calculator/earlyretirement?income=13...](https://networthify.com/calculator/earlyretirement?income=130000&initialBalance=0&expenses=30000&annualPct=5&withdrawalRate=4)

You would think most people would be interested to learn that their level of
wealth opens up the option of complete financial independence in a comfortable
middle class lifestyle before the age of 30, but instead it's always straight
to yelling about dried beans.

~~~
csboyer
The last 10 years of life gets incredible expensive unless you children who
want to be full time caregivers... $30K per year + social security likely will
not cut it. $30K today will maybe just cover the in home assistance in a
medium to low cost city. Unsure how inflation will affect things.

You'd need much more than that....

------
woodpanel
"we don't understand why programmers are paid so well"

I think we do:
[https://en.wikipedia.org/wiki/Software_crisis](https://en.wikipedia.org/wiki/Software_crisis)

Demand never stops (at least never did in the last 50 years). If some demand
was met with programming supply it ends that specific demand, but creates new
demands in return. AI won't change that btw.

Now if you excuse me, I have to copypaste stackoverflow answers into my code
so I can sell that as senior architectural consultancy work...

~~~
fragsworth
All we have to do to solve a software crisis is add few more frameworks and
platforms. Then everything runs so slow that you can't implement anything new.

Problem solved!

------
ohyes
Programming is a lot less science and a lot more art.

You're trying to describe a problem in a way that can be easily interpreted by
both an irrational human, and a computer, a creature of pure logic.

If you write for just the computer, you've got an un-maintainable mess. If you
write for just the human, it doesn't work properly.

We really play up the importance of "computer science" skills when hiring
software engineers because that's what's taught in schools, and it is the
basic requirement to write a piece of software that at least works as
intended.

But in reality, you need both. You need good human communication skills
(personal and written) as well as an understanding of the computer.

And things are just getting more complicated. In the late 80s to mid 90s,
there was a hell of a lot you could do with a single developer. Applications
were simpler, you could write that single threaded application to run on a
desktop, and it would be acceptable. One person hacking away in a dark room on
a CRT could get the job done. The communication wasn't as important.

But now (and by 'now' I mean the last 15-20 years), most applications involve
multiple servers communicating, almost anything involves at least a small team
of developers, (and at bigger companies large teams of devs have been the case
for a long time).

So the human communication is also becoming more important. You can't get away
with hacking away at something and throwing it over the wall as much anymore.
This is fine.

But the two skill-sets are diametrically opposed and people who can't do
either type of communication eventually wash out. People who can do both of
these things are incredibly rare, and our education system hasn't even
explored what it takes to produce this type of person. (How many engineers
have you worked with who couldn't write or spell to save their lives? Single
letter variable names?)

Anecdotally, hiring someone competent is actually very difficult. You do a
screen (to weed out the candidates who know absolutely nothing), and they come
in and they still can't do basic stuff like recursion and loops. Or they can't
explain what they did.

------
zuhayeer
> Compensation appears to be proportional to the level of sacrifice (e.g.,
> investment bankers are paid better, but work even longer hours than
> lawyers).

The idea that the amount of sacrifice you make will be proportional to the
monetary reward you receive seems very phony to me (especially in terms of
time spent not productivity achieved). It implies you'll have to enjoy the
things you do less to become rich.

I'm also one of the founders of [http://levels.fyi](http://levels.fyi), a
compensation transparency tool for software engineers where you can get an
idea of market rates today at different levels / companies. Stock compensation
is a huge part of software engineer wages which means as long as there is
economic progress and growth, salaries will grow. Competition also plays in
the favor of software engineers – as it is a very horizontally transferable
skill (generally), it provides software engineers a ton of leverage, giving
companies no choice but to pay market competitive wages for top talent in the
industry.

------
vosper
Programmers in first world countries (and triply so the Bay Area) should plan
for lower pay because there are increasing numbers of foreign (and some
domestic-but-rural!) workers out there who’re skilled and will take less pay
than you and be happy about it _and_ will be able maintain a high quality of
life in their area. I don’t mean the outsourcing/body shops (though some good
ones exist) so much as individuals in Argentina or Mexico or the Philippines.
They’re out there, they’re good engineers, they fluent in English, and as more
companies become remote friendly these people are going to start taking some
jobs. The market is slowly, but surely, going global.

And if you think you’re safe in Ukraine or Bulgaria give it 20 years until a
bunch of Africans in nearly the same timezone come in and undercut you, too.

~~~
NeverFade
Not saying you're necessarily wrong, but there's been similar comments about
India and China since the early 2000s. India alone has over 1.3bn people, and
compensation there is still a fraction of what it is in the US. If it was all
just a numbers game, there should not have been a single working developer in
the US right now.

~~~
vosper
I don’t think India and China are the threat to US software jobs. It’s Latin
America: same timezone(s); shorter/easier flights (because of the timezones as
well as the distance) with easier visa requirements; far greater cultural
familiarity and/or similarity (in both directions); lots of people who speak
excellent English (in Latin America) and a fair few people who speak Spanish
now in the US; less fear of IP theft; no trade war.

Somewhat minus the timezone, a lot of these things apply to the Philippines,
too.

~~~
TheCoelacanth
Latin America is less of a threat simply because of population size. All of
Latin America combined is half the size of just India or just China
individually.

------
yowlingcat
What a poorly written blog post. This is proto-apocalyptic in the same way
that Zerohedge is. The author may not understand why the software industry has
high compensation, but Wall Street does. High margins, low op-ex, data moats,
often winner take all dynamics, broad applicability, capability of
cannibalizing incumbent industries, ease of deploying investment
capital...even accounting for the dot com bubble, technology is the product
and acceleration of industrialization, which in and of itself produced some of
the highest concentrations of wealth in history.

The industry is not immune to bubble effects nor to catastrophic meltdowns
(WeWork was obviously a huge, recent cautionary tale and very likely not the
last), but to pretend not to understand where the compensation comes from is
either lazy, wilfully ignorant, or both.

~~~
jefftk
None of what you write explains why more people haven't switched into the
field, bringing wages down. Other fields work high wages have far larger
barriers to entry.

~~~
yowlingcat
So that's why this doesn't make sense to you. You're refusing to think like an
investor, only like an employee. Comparing one field to another field from the
perspective of a laborer is useless, because the job and career only exists in
context of the business itself. Until you can talk about investibility, this
will remain a mystery to you. You've unintentionally demonstrated the
difference between a programmer and a product savvy software engineer.

To try to end this on a bit more of a constructive note: think about the
difference between the _firms_ that employ software
engineers/marketers/salespeople and the _firms_ that employ highly paid folks
in medicine and law. How do the unit economics breakdown? In what ways are
certain aspects favorable and unfavorable to an investor?

~~~
shishy
I'd always thought it was because the marginal cost of a developer is 0,
right?

That is, developers build software, then they go to work on the next thing
while company can sell existing software.

Each additional unit of software sale doesn't have a developer cost component
(unlike for example, shoes, where the labor cost of the worker is factored
into making each additional shoe).

Is that close to what you're saying?

------
ThrustVectoring
Programming is a field where quantifying worker output is prohibitively
difficult, but ranking workers is relatively easy. As such, it's a prime
candidate for Tournament Theory - instead of measuring worker output, do some
kind of informal rank-ordering and hand out larger prizes to the winners.

Being employed as a professional programmer in any capacity is winning the
first round of such tournament. The compensation spread between this and the
next-best non-tech option _has_ to be high enough to induce people to invest
in learning the difficult skills and risk the ordeal-based hiring tournament.

Efficiency wages also come into play here. When wages are higher than what's
necessary to clear the market, people struggle to find new jobs, which both
reduces turnover and makes employees more willing to put in discretionary
effort.

Some combination of the two is likely responsible for outsized wages in the
field. Efficiency wages is probably more the case for entry-level FAANG
salary, tournament for the large jump over the first couple major promotions.

~~~
amznthrowaway5
Quantifying worker output being prohibitively difficult means rankings are not
easy at all. In big corps the top ranking is given based on things like
knowing the right people and taking credit for other peoples work. At least
there is some fairness in the industry via standardized leetcode interviews.

------
dilyevsky
Programmers are paid well because businesses that depend on their labor are
making ridiculous amount of money. It’s a skill that not everyone is cut out
for despite what nyt wants you to believe just like not everyone can be a
professional writer.

If you look at skilled blue collar rates (eg plumber etc) the difference isn’t
even that big when you consider barriers for entry.

------
erosenbe0
In your average rust belt type city, your average cardiologist is making
400-450k at 50-60 hours a week.

Senior developers in those same cities make 90-150k at 40-50 hours a week.

The doctor, once established, also has the advantage of generally not needing
to consider moving cities for career advancement or to do more interesting
work. This type of security is also quite valuable.

------
angarg12
Are programmers overpaid in the first place?

When we look at eye popping salaries, they usually belong to senior+ engineers
in top tech companies in selected geographies. I know far more programmers
making just above average wages rather than 1% type level of income. And
considering some of the points made by other comments, it doesn't seem
unreasonable that they should be paid well.

Only those lucky enough to get most of their income via stock grants should
prepare for most of that value evaporating in case of a market crash.

~~~
Pfhreak
> Are programmers overpaid in the first place?

Seems unlikely. Companies don't typically pay someone at a loss -- they hire
folks because they expect to make a profit. Wages, almost by definition, are
less than the value of the worker.

Programmers are like any other wage laborer, and should be pushing to own more
of the value they produce.

------
tspike
So much kneejerk reaction to this perspective - it's understandable, I
suppose. If you are leveraging your lifestyle against your skillset to the
fullest extent possible, the idea that it could be unsustainable would be
extremely threatening.

Think of it this way- if he's right, you've insulated yourself from
catastrophe. If he's wrong, you have given yourself a trajectory for permanent
independence from employment.

For people so good at optimization problems, this seems a no-brainer to me!

~~~
ehnto
That's also the premise of Pascal's wager. By their reasoning, believing in
God has a low risk, and high reward. You pray a bit, go to church, and you
could end up in heaven. Whereas not believing in God could either be
inconsequential, or land you in hell, low reward, high risk. So a betting man
should always choose to believe in god. Of course we know that's not how it
plays out.

I have had fun with this thought of risk recently. It seems risk is hard to
communicate between people, because sometimes people conflate the occurrence
rate of the risk with the negative effects of the risk in question. So it's a
low occurrence rate for an oil drill to spill, but the damage is the death of
the ecosystem around it. You could argue the risk is both high and low for
different reasons yet I don't often here people clarify that detail when
talking about risk.

In the scenario of my wage dropping, I would say it's a low risk for me, both
because of my location and the economy my wage is based on, and because the
damage of my wages dropping is low because I haven't leveraged my earnings.
Little damage is to be done, AND the likelihood of a drop is also low.

[https://en.wikipedia.org/wiki/Pascal%27s_wager](https://en.wikipedia.org/wiki/Pascal%27s_wager)

~~~
humanrebar
> Of course we know that's not how it plays out.

Do we? I find his reasoning perhaps a little incomplete but still compelling.
We don't have to benefit of his presence to fill in gaps in his reasoning, but
a lot of the supposed gaps have to do with a misunderstanding of Christian
"belief" (pisteuō).

[https://www.blueletterbible.org/lang/lexicon/lexicon.cfm?t=n...](https://www.blueletterbible.org/lang/lexicon/lexicon.cfm?t=nasb&strongs=g4100)

But this isn't analogous to Pascal's Wager anyway. That wager leans heavily on
the concept of infinite positives and negatives. As great as being a
successful programmer is, it's nowhere near infinitely better than alternative
occupations and employment scenarios.

So we're really talking about cost/benefit analysis with incomplete
information... which describes most important decisions in life.

~~~
mnm1
Yes, the assumption that believing in a god that doesn't exist is only a minor
negative in life is wrong and therefore the whole wager falls flat on its
face. Of course, each person decides this on their own, but we know without
any doubt that it's not a generalisation that can be made about everyone or
even a significant percentage of people. We know this due to numerous
counterexamples (myself included). In fact, it's purely opinion and
conclusions simply cannot be based upon this assumption.

~~~
humanrebar
Your opinion is valid, but your reasoning is circular. You're basically saying
there's no way there is a hell, so there isn't a good reason to avoid hell.

The argument is that a life fully wasted on false assumptions is still better
than an eternal hell.

The same reasoning can be used to discount all sorts of black swan events,
including programming becoming unviable some day, if we want to come back on
topic. Pascal was basically arguing for respecting the ultimate black swan
event, with the understanding that infinities skew any pragmatic calculations.

~~~
mnm1
No, that's not my argument at all. I said nothing at all about hell. I have no
idea where you got that from, but surely not from my post.

My argument is that believing in a god that doesn't exist is much more than
the mere inconvenience that Pascal makes it out to me. It actually degrades
life to the point where it might not be worth living. This is, of course, an
evaluation that one can only make for themselves, but one that many have made.

I'm saying that believing in god simply on the off-chance that he might exist,
is vengeful, wrathful, and a piece of shit (as described in the bible) and
will judge you on petty shit (as also described in the bible) in exchange for
a life that's not worth living, where suicide is the best option, is not a
wager any sane person would take. If it was as Pascal says, a minor
inconvenience at worst, then Pascal's wager would make sense. Since it is a
life-altering change that leads to one of the lowest possible qualities of
life, then the wager no longer makes sense as the person faced with the wager
now has to live a horrific life on the infinitesimally small, asymptotically
to zero chance that said god above might exist.

And that's before you get to the possility that if a god might exist, other
gods might exist. How do I know that believing in the Christian god (which
Pascal's wager is based upon) won't send me to hell when the Islamic god
judges me. Or Zeus. Or Mars. Or Aphrodite. Or the Jewish god. Is he the same?
No one knows. Or maybe an Aztec god. Or one of the thousands of religions of
the world that have gods. Or some other imaginary deity. So which one should I
believe in when I can only choose one out of thousands? Pascal and the entire
church don't make a case for their god being the one in over two thousand
pages of ranting.

Pascal's wager is beyond fucking absurd. Then again, the idea of god itself is
beyond fucking absurd as well. Especially for someone sane who wants to live
their life as best as they can, not based on some imaginary wager and
imaginary forces.

------
mattlondon
I think it needs to be a "simple" supply and demand thing.

Even in the same FAANG-companies, I am aware that there are people doing the
same roles at the same level (and even sometimes in the same team) in London
(a city was equivalent living costs as SF) who are paid significantly less
than their Silicon Valley based colleagues.

I.e. all things being equal (same employer, same job, same level, same teams),
people in SV get significantly more than people in other major cities (and it
is not just like an extra couple of thousand, it is often like $150-200k vs
$300-350k etc). I knew of someone who simply moved from SV to London (same
team, same manager, same role, same level etc - just an office location
change) who told me they got a 60% pay cut - i.e. the _only_ variable that
changed was location, everything else was the same.

The explanation given for these "discrepancies" are that the lower salary
outside of SV is due to "market rate", i.e. that there are not enough other
companies in e.g. London competing for talent to support higher market rates,
and that the FAANG pays "at the top of the market rate", so that is why
salaries are lower in London despite living costs being the same as SanFran.

$150-200k is still a fairly respectable salary in London by the way (London
average is approx £39K/$51K), but you still have a near-zero chance of buying
a nice house on that salary (you might afford an apartment out in the
outskirts that is 40-60 minutes away by train from the office in center of the
city)

A lot of commentators here are talking about the profitability-to-the-company
of a single dev, or the opportunity cost a dev is missing when taking a full-
time position vs starting their own business. I think if that were true, there
wouldn't be such a wild variance based entirely on location. The simple
reality for me is that companies just pay the smallest amount they can get
away with, and it just happens that in SV that needs to be high because there
are a lot of competing companies looking for staff.

I.e. supply and demand.

~~~
edandersen
If employed under UK law then your London friend will also have massively
improved employment rights. UK is not fire at will like the US. To contrast
US-UK salaries you need to compare to the London contractor market where SV
salaries are possible - but with zero employment rights like the US.

------
csomar
> we don't understand why programmers are paid so well.

I think the problem is that programming is more complicated than other jobs.
Your value as a doctor is pretty much equal to the other doctor next door.
That's not true for software developers.

One thing I noticed about open source software, is that most of the projects
(even the big one) are mainly run by 1-2 guys. There can be a hundred
contributors, but the heavy lifting is done by a single person or maybe a
couple. This is different than say a hospital, where you can't have a single
doctor doing all the heavy lifting.

Most software developers are paid shit (outside the USA and Silicon Valley)
and are barely equivalent to other engineers or university educated folks.

> Consulting, investment banking, etc., are similar. Compensation appears to
> be proportional to the level of sacrifice

Yes, because you open a consulting shop and work starts following. It has been
mentioned here, before, that consulting in tech is more about building a
reputation and managing clients than the technical skills. So not really that
much different. If you are highly talented and have no network, you'll make
exactly 0 as a consultant.

> but the combination of medical school and residency is still incredibly
> brutal compared to most jobs at places like Facebook and Google

What the OP misses is that Facebook/Google do not represent your average US
engineer; let alone the average global one. Whether they are talented or
lucky, they are the minority.

> big companies need to compete with programmers choosing to go off and start
> companies, which is harder to do in many fields.

Maybe they are going to startup route because the compensation for a _skilled_
software developer is _very_ low.

Writing software is like writing novels (not exactly but close). A few good
writers are going to make most of the $$ while the rest are going to barely
survive. My guess is that in the future will see more of this trend where you
either go big or go home.

~~~
tomohawk
To back this up, if you need a surgery, you want to go with the surgeon who
has done at least 100 surgeries of the specific type you need and who has done
a fair number of them recently. A skilled and experienced surgeon is key for
best outcome in many surgeries. However, the comp from the insurer is going to
be the same regardless of skill level.

~~~
foogazi
On the same theme, if you need surgery and are a high skills athlete who can
make millions off of that surgery you won’t pay the going insurer rate

------
awinter-py
I think it depends the 'how good, how fast' curve of automation

If google finds a way to run itself with 5k developers instead of 30k, that's
a scary change

If on the other hand we develop tons of cool hands-on automation technologies
that deliver lots of value but require programmer-like people to run them,
that may sustain the labor demand for a while

there's an argument gap between 'AI is taking developer jobs unless you can do
ML' and 'basic app development, even when non-fancy, is like pulling teeth and
requires experts if you don't want to deliver crap that fails all the time'

I think we're still living in the 'basics are hard and require experts' world
for 18-36 months and then the tooling fills in and starts to make magic easy

~~~
tspike
Yeah, I can't see CRUD app development providing top-tier salaries for more
than 5-10 more years.

~~~
mrep
What CRUD app companies pay top tier salaries currently? They all pay much
less than GAFAM from what I have read.

~~~
tspike
Most engineers at GAFAM (or whatever the trendy acronym is) are doing CRUD
work.

~~~
imafish
I prefer FMAGA.. because of the ambiguity.

------
Grimm1
"How easy it is to become one" much to every talented engineer's chagrin. If I
had a dollar for every engineer who writes unmaintainable, non-tested code
that doesn't scale or even manage a company's current needs particularly well
I'd be rich. I think we need to go in the opposite direction and I know I'm
not alone in that thinking.

~~~
twblalock
> If I had a dollar for every engineer who writes unmaintainable, non-tested
> code that doesn't scale or even manage a company's current needs
> particularly well I'd be rich.

A lot of those engineers you describe are rich too, because engineering pay is
not tied to skill as much as to being in the right company, e.g. FAANG
companies pay large salaries to average engineers and startups pay low
salaries to pretty much everyone.

~~~
Grimm1
Yes and often startups are the ones taking a risk to solve more challenging
problems with technology versus the FAANG like companies who operate in large
or multiple markets that have predictable money in them for example ads or
e-commerce. The pay and overall wealth in tech are tied to some ethically
questionable problems and the fact startups can't pull top talent to solve
hard problems that are still potentially vastly profitable is worrying. I
expect things in the startup world to be even more uphill at least with tech
talent in the next decade unless there is a major shift in incentives, this
however, will require either restructuring the average equity agreements or
early investments with larger money for larger salary for key early employees.

~~~
ThrowawayR2
> " _Yes and often startups are the ones taking a risk to solve more
> challenging problems with technology versus the FAANG like companies who
> operate in large or multiple markets that have predictable money in them for
> example ads or e-commerce._ "

Never worked a FAANG, I see. They have plenty of risky projects with
challenging technology problems that they spin up to try to enter new markets.
You don't hear about most of them because, like most startups, they often
don't work out and die quietly.

~~~
opportune
A lot of FAANG engineers also work on infra, OS, security, private/public
cloud, tooling, etc. which have impacts on the company bottom line but aren’t
necessarily visible as external products.

It’s not just 100 people doing ads and 30,000 other people playing ping pong
and trying to outsmart each other with Haskell.

------
smnrchrds
There is a kernel of truth in this article. Consider this:

1\. Wages are dictated by supply and demand.

2\. Software has no formal entry requirements, anyone who can demonstrate
competence can get hired as a software engineer.

3\. The same set of traits make someone good at software development and other
branches of STEM.

4\. An increasing, if not already majority, of young STEM graduates are also
more than familiar with software development. Many do it as part of their non-
tech day-to-day jobs. They may not be able to start working as a software dev
on Monday, but given a relatively short amount of time (a couple of months) to
prepare, they can switch to software just fine.

5\. Pay for software jobs is multiple times higher than other SEM jobs.

I do not see this situation as steady. Here is my speculation: If the wage gap
persists, more and more STEM graduates would seek careers in software. This
will increase the supply of labour in software and decrease it in the rest of
STEM, until the wage gaps closes or at least shrinks significantly. At this
point, the new wages for all STEM would be lower than current tech salaries
but higher than current SEM salaries. Since the number of tech graduates is
much lower than the number of all other graduates, the equilibrium point would
be closer to current SEM salaries than current tech salaries.*

* Note: I don't know the statistics, but I presume that universities take roughly the same number of students in each STEM major. So a university may have approximately 100 graduates per year in each of software, mechanical engineering, civil engineering, ..., biology, physics, ... If for every 100 software graduates, there are 900 SEM graduates, and if only 10% of each SEM major's graduates decide to seek work in software, supply of labour in each SEM category would decrease by 10%, but for software it will increase by 90%. The effect on software salaries would thus be more steep. I acknowledge that this is a very simplified model, but I think it effectively demonstrates my point.

~~~
phreack
Anecdotally so not worth much, but I keep telling all of my acquaintances in
SEM, law and other paths who struggle with making ends meet to try their hand
at programming, even if it is not their preferred vocation, and so far none
would get past very basics introductory tutorials without giving up, if ever
giving it a chance at all.

I feel there is something similar to how many people get traumatized about
Math in high and middle school that scares them into even believing they could
learn about CS. But it's just what I've personally seen.

~~~
smnrchrds
My experience is the opposite of yours. Could it be possibly a function of
age? Because a significant number of young engineering graduates I know have
gone into software development jobs.

------
fit2rule
I've been programming since I was a teenager in the 80's, and have seen it
all. Really. I went from being a god-like teenage computer genius, to an over-
the-hill "old guru guy", with all the pay scales in between. I've done some
big things, and I've done plenty that I'm not proud of.

And now I'm in the situation, early 50's approaching, where I don't have a job
lined up for the year, and am out there looking at the market again. I really,
really don't like what I'm seeing - coders in their teens, making 1/3rd of
what I used to make. Its really a saturated scene, so I'm thinking of other
things I can do. Its long since past the point where I should've made myself
wealthy by now - but long, long hours, over years, spent making wealth for
others has really burned me out on the whole subject.

Nevertheless, I'll pick myself up after a bit of a break, and get back into
it. I'll do what I always have done: look at the scene, determine what the new
hot framework/language/environment is, learn it, use it, and get a job
applying it towards other peoples wealth.

I probably should have been finishing my side projects in all these decades -
and boy, do I have a lot of them. More than likely I wouldn't be in this
situation now if I'd finished some of these things and brought them to market.

Its just so exhausting, making other people wealthy, you know? (Really: the
works I've contributed to have made many, many millionaires over the years...
I should be one of them by now. But hey, those high salaries sure paid for a
lot of trinkets...)

------
0kl
#define PROGRAMMER

A friend of mine works only with html and client-side js.

Another only with Java.

I currently work product but have worked with a whole host of languages.

Another friend of mine is an infrastructure engineer.

Another is a lawyer who codes.

We are all “programmers.” There is a lot to be said about why ”programmers”
are well compensated, but let’s first discuss what it is that is being said.

What is the specific anxiety being voiced about what group? I’m assuming it’s
software engineers. But then what is “well compensated”? I can’t reply to the
author because of how vague it is, but, in summary - you should always plan
for lower pay regardless of industry, but as long as you provide increasing
value to a business, and are much better at it than other people, you will not
see lower pay.

------
syntheticnature
Contrast to the examples given: Veterinarians, who basically do the med school
thing but don't get anywhere near the pay output. Or the social status, it
would seem.

Alternately, going with the assumption the author is correct, I'll clip a
phrase: the market can stay irrational longer than you.

~~~
aldoushuxley001
I often heard it as: “The market can stay irrational longer than you can stay
solvent”

~~~
syntheticnature
That's why I trimmed it where I did, as the author feels they have become
rational. If -- if -- they are, no guarantee on timing for everyone else
waking up.

------
commandlinefan
On the one hand, I’ve been wondering the same thing for the past thirty years.

On the other hand, I’ve been wondering the same thing for thirty years now.

------
saneshark
The best part is, that unlike medical or law you can also do it from virtually
anywhere.

I have been doing some semblance of programming since I was 8 years old (now
39). I think it’s one of those things you kind of have to have a passion for
or you can easily get burned out.

But I also think it’s one of those things that are more in demand than ever.
If I was laid off I’d have to question why I was working for the company in
the first place and didn’t see it coming. There are quite literally 7-8
LinkedIn messages from recruiters almost daily. I’m not sure many attorneys or
physicians can say that. And when you are in demand like that you’re
constantly leveling up your salary every few years.

Finally, I know or very few professions where every 3-5 years you need to
completely have learned something new to stay ahead of the game. When I was 8
I was doing q-basic. I’ve had to learn over 12 languages since then.

~~~
Gene_Parmesan
> I'm not sure many attorneys or physicians can say that

As someone who worked as a lawyer for 6 years before switching careers to
software (after 4 years of self-teaching, mind), I can say that in the one
year I've been professionally employed as a dev, I have already received
several multiples of the number of recruiter messages during the totality of
my time practicing law.

------
ryanmccullagh
On Twitter, there are lots of validations about how easy it is to be a
programmer. This all seems to be based on piecing together a few NPM packages.

~~~
CodeAndCuffs
Conversely, there are a lot of places on the internet that think that unless
you have a BS in Comp Sci, and work in Silicon Valley, Bay Area, or NYC, you
aren't a "real programmer", you're just some code monkey that can throw
together a few npm packages. I think programming doesn't get compared to art
as much as it should. There are certain metrics of "good" and "bad", but there
is a lot of gray are and subjectivity.

In the golden age of Disney animation, you'd be a fool to say any of their
animators were bad artists, but there were definitely better among them. There
are also perfectly mediocre comic book artists who still make a healthy
living. There is art with quality that is entirely subjective. All of this
applies to code. The best senior dev on the backend team of a small company is
probably a garbage coder compared to the new guy at some Bay Area startup.
Code that one team calls elegant and amazing may be called overly complex and
unnecessarily clever by another.

At the end of the day, being a programmer _is_ easy. Being a great programmer
is hard. Like many things in life, you can get a lot better if you practice at
it a lot more, +/\- the "talent" modifier. But at the end of the day if you
can do basic 8th grade pre-algebra, and speak english, you probably have the
education needed to be able to program professionally, its just a matter of
learning the syntax and patterns.

~~~
wolco
"The best senior dev on the backend team of a small company is probably a
garbage coder compared to the new guy at some Bay Area startup."

Just because someone shows up in the bay area it doesn't make them instantly
good coders/developers/programmers. Just because a company is in the bay area
it doesn't make the dev team good either. Usually the great devs are at fangs
or working at a cool startup. There are a lot of companies with little hope
and a lot of teams without solid experience.

The best dev at a small company could be the best in the world or the 5th
worst. From what I have seen is a lot of good developers end up at a small
places because of the challenge and/or lifestyle.

------
timzaman
Author is in a personal bubble and doesn't know it. Most of my European
programmer friends make less than their sales department. I bet it must be the
same in most of asia, india, etc.

~~~
bsdubernerd
Living in EU and having changed a few countries in the last decade, I can
confirm this. Programmers are paid absolutely average salary, typically less
than most other engineering professions.

Programmers being highly paid must be an US thing.

Consultants can certainly be paid (way) more than average, but this is not
something I've seen for regular employee positions.

~~~
thu2111
"Pay is low in Europe" isn't really true. It's a statement based on the (very
frequent, deliberate and problematic) conflation of the EU with Europe. Wages
for programmers are pretty high in parts of the UK, Switzerland, and some
other places. In provincial Germany or French classical engineering firms, yes
sure, wages are much lower. But then developer wages outside of California are
nothing special in the USA either.

~~~
bsdubernerd
I'm not sure about California, but as I was interviewing for some positions in
Zurich, the wage adjusted for cost of living in there, and excluding Google
(which has a presence there), is also average. I lived in Paris for some years
and the same was true. I have several friends scattered across Spain, Germany
and France in several big cities and nobody is getting rich. Maybe I'm missing
the cool working positions.

I never ran any estimate for London since I never had an opportunity to work
there.

------
goldenshale
What a horrible argument. Other professions have guilds that demand sacrifice
rather than focus on skills, and programmers get paid well without that...
and? Most business managers are far smarter than this post assumes. People pay
more and more money for software because they experience and measure the value
that it provides. Until the world is saturated with software solutions we are
unlikely to see a major drop. According to the department of labor the demand
for software engineers has continued to grow, not fall. Sure, 4 week bootcamps
won’t suffice for many tasks, but the fact that those folks are getting hired
says there is still a lot of low hanging fruit.

------
vsskanth
The article doesn't mention two very important things working in the
programmers favor - leverage and margin.

A software product can scale to hundreds of millions of customers with just a
few employees (ex. WhatsApp). This increases revenue per employee.

Software companies have much higher margins compared to other industries. You
can attribute this to network effects and stickiness from lack of easy data
interop between different vendors. This limits competition that drive down
margins.

Hardware engineers in chip design command decent salaries also from leverage
but the ability for a company to switch vendors limits margins, unless you
have IP like qualcomm.

------
Animats
This seems reasonable for the SF Bay Area. We're getting close to the next
recession. The last two times (1999 and 2008) San Francisco and San Jose
emptied out, foreclosures everywhere, traffic way down, layoffs.

~~~
ttul
A part of me can’t wait for this to happen. The pretenders and hucksters get
cleared out. Good people and good ideas have a chance.

~~~
twblalock
Good people and good ideas need funding, which dried up pretty bad during the
last recession. The startup market got hit harder than any other part of tech.
The established tech companies as of 2008 survived the downturn and IIRC most
of them didn't even do layoffs.

------
1nv3nt3r
I would argue that a good developer has spent many years learning and perfect
their art, more so than any residency. Over the last 25 years have been
continually learning, reading papers and journals from CS and mathematics, as
well as online sources. I suspect most developers need to spend time at least
reading and honing their skills across their career. To be fair many doctors
read medical journals and may attend seminars.

The difference between a doctor, lawyer vs a programmer is that a programmer
emerges from a computer science program in a "larval stage". Most fresh
graduates have very little experience in knowing how to structure code at the
level of a senior software engineer. There are years ahead to, maybe, get to
the point of mastery.

The professional fields, in particular Doctors, require that the residency
graduate is more or less fully "baked" and can perform their role without
error. That the residency is grueling is just an artifact of the way the
profession organizes itself. Personally I think it is dangerous to require
doctors to run long shifts. It is almost more of a test of physical fortitude.

There is the full gamut of intelligence and diligence in the medical
community, just as in the software engineering community. Does a grueling
qualification versus lifelong learning in other areas make one profession more
valuable or not, I don't think so. As others have stated, economics has more
to do with supply and demand.

------
crca
Demand for software folks is so incredible (anecdotal), it’s hard to see
salaries falling anytime soon. As a mechanical guy, I envy the job selection.
Software jobs outnumber mechanical 10:1

------
vojta_letal
There seems to be a premise that a programming is actually easy and we are
slowly realizing it. Who else finds it flawed?

I've seen plenty of open source code, proprietary startup code, corporate code
and it is usually shit - full of premature assumptions and legacy mess. It's
because writing good lasting code is super difficult even for great engineers.
Moreover, running platforms usually need to be constant maintainance which
drives up the demand even more.

~~~
buboard
What company writes lasting software nowadays? Most of the consumer facing
stuff i use gets rewritten (worse, but fancily) for no apparent reason every 2
years. I can name products

------
cryptica
Programmers have their own cartel but instead of focusing on reducing the
number of entrants in the field (e.g. by demanding special universities or
certifications), it works through job creation.

Developers have an innate ability to keep creating more work for themselves by
increasing the complexity of the solutions that they produce. Managers are
completely obvious to this.

The monopolistic and highly profitable nature of software companies allows
managers to keep hiring more developers, who keep creating more unnecessary
complexity which requires more developers to maintain... A vicious cycle.
There is no limit as to how much complexity can be created. Most managers
still believe that the best way to speed things up is to hire more developers.

In reality, the best way to speed things up is to reduce the number of
developers and to hire better developers. The problem is that managers, even
highly technical ones are not capable of knowing what a very good developer
is. A technical person cannot accurately rank other technical people who are
better than them; they can only rank others who are at or below their own
skill levels.

There is an old saying that the top experts in any field are those who know
when and how far to bend the rules. This is especially true when it comes to
software development but 99% of technical managers will disagree with that
statement; they still believe in blanket one-size-fits-all approaches.

The spectrum of talent is extremely broad, much broader than everyone
realizes. IMO, even the most talented, most acclaimed CTOs and project
managers will fit somewhere in the middle of the technical talent spectrum so
they will miss a lot of talent.

------
itsmefaz
There are three different problems the post talks about: 1\. High salary 2\.
Layoffs 3\. Cost of knowledge acquisition

High wage: The high wage problem is simple and is only around specific regions
of the world, Silicon Valley pays more comparatively higher than the other
parts of the world. The data showing the salary median $140K seems to not
include the salary median for other regions which I'm assuming is around only
$20K. So, based on this assumption the median salary for SWE all around the
world might fall somewhere around $20K-80K.

Cost of knowledge acquisition: This is also specific to region, the average
cost to graduate from an ivy league school costs about $100K-200K, however if
you compare this data to the other regions the average cost should be < $20K.
This also impacts the salary one makes, after having graduated.

Layoffs: This is something everyone is concerned about, irrespective of their
region or place of work, however since the market size is very huge and there
are lot of opportunities around the world, getting a job is not that hard.

------
programmertote
> My sister is currently a second-year medical resident, and "incredibly
> brutal compared..." feels like a understatement to me. She works 80hr weeks,
> often nights, helping people with deeply personal and painful issues that
> are hard to leave behind when you go home. This is after four years in
> medical school, with still at least a year to go before starting to earn
> doctor-level money.

I wonder which medical residency is she at? My wife is a resident at a pretty
busy hospital in NY metro area. She is in her first year as well and doesn't
do more than two night floats a week and no more than 60-65 hours a week. I
also know so many other doctors (friends/acquaintances of my wife and via my
ex-landlord who owns multiple family houses which he rents out these up-and-
coming/current medical residents in NY metro area) and NO ONE works even close
to 80 hours a week.

This is not to mention that it gets much better after the first year, and by
the third year, you're only supervising most of the first years and simply
studying for Step 3 (board) exam (if you haven't taken it by then).

I wonder if people tend to exaggerate when it comes tho how much time they
spend for work because it makes them feel good/justifiable to the amount of
income that they (eventually) receive. Having quit medical school after second
year in my home country (SE Asia) and having seen my wife (then fiance)
studying for Step 2 and 3 exams, I personally believe that medical studies
mostly requires memorization (a LOT of it) and we would be surprised how
little critical thinking skills and scientific knowledge (not recent ones
they've memorized off the books, but I'm talking about things like physics,
math and even chemistry) your average doctor has. They forget it all in a year
or two after med school for sure (I can't possibly recall more than 206 bones
that I learned in Anatomy in 2nd year!)

------
CodeAndCuffs
Every employment is in the benefit of the employer. They pay you money because
you make them money. They aren't going to pay you 100k a year if they could
fire you and only lose 50k in profit. You make them _at least_ 100k a year.
Also, not all coders are paid 65k a year out of college like this guy. I
personally know coders only making 45-50k a year.

~~~
dehrmann
> They pay you money because you make them money.

What meaningful work is not happening with science or technology because of
the cost of labor?

~~~
username90
Basically everything? The reason most jobs are so hard to automate is the lack
of dependencies having API's you can work against. If we had a billion
engineers they could automate probably 90% of white collar jobs we have today
simply by throwing human brute brain force at all edge cases. And you know,
doing all that labor would definitely be worth it even though it sounds like a
waste. That is why software engineers are paid well, and why they will
continue to be paid well for a long time forward.

------
notlukesky
Not unhelpful to look at the history of STEM employment and unemployment.

It is very hard to predict economic boom and bust cycles but even harder
within industries and sectors.

STEM employment and mass layoffs are no exception. Those in the industry will
remember the AI winter (over three decades even in sheltered academia and now
going through a boom) and mass layoffs of programmers after the dot com crash.

The scar tissue extends further to those with memories of rocket scientists
and engineers becoming New York cab drivers in the 1970s after the glut of
engineers after JFKs call to put a man on the moon.

Key thing is adaptability. Only certainty in life is the compounded interest
on your mortgage and bank loan.

Example article: [https://spectrum.ieee.org/riskfactor/computing/it/the-
changi...](https://spectrum.ieee.org/riskfactor/computing/it/the-changing-
pattern-of-stem-worker-employment)

------
imtringued
This is a pretty awful article. Programmers get paid a lot the same reason why
managers get paid a lot. You can increase your productivity by increasing your
node/headcount. While you're asleep you can still serve customers.

Other jobs don't scale like this and therefore there is a limit to how much a
single person can make.

------
mark_l_watson
I think that the article is probably correct. I retired from a job managing a
deep learning team and we usually had many undergraduate computer science and
software engineering undergraduate interns working in our lab. Uniformly, they
were highly motivated, knowledgeable, and did good work. Thirty years ago, I
used to interview and hire computer science graduates from UCSD: we got some
good people, but in comparison, the modern undergraduates seemed more
experienced and prepared. Perhaps this is just showing a major improvement in
computer science education.

That said, I read an article last week that mentioned 70K CS graduates a year
in the US, a figure that surprised me that it was so low. I think it is an
open question what the value is ofa CS graduate degree is, but an
undergraduate degree seems like a great start to a career in software.

------
gdubs
Someone recently recommended the book, “The Value of Everything.” I’m part of
the way through, and it’s super relevant to this conversation. What this comes
down to is, what is value, and how do we measure it? The author of this post
throws their hands up and says, “we don’t know why wages are high for
programmers.” That, however, doesn’t mean a reason doesn’t exist. But the
point is an important one: if you don’t understand what your value is, you’re
in the dark as to whether you’re over or underpaid, and unprepared for
structural changes that could affect your lifestyle — because you’re unaware
of what affects your value in the first place.

------
devin
The comparison to doctors is an interesting one, but also a very poor one.
Doctors run a cartel in the traditional economic sense. The AMA pushed to
restrict the number of residency slots, and what’s more is that Medicare
incentivizes teaching hospitals to prefer specialists over general
practitioners. Doctors are certainly overpaid.

Restrictions like HIPAA and such make it difficult to outsource labor on the
software side.

It’s clear engineers are overpaid in the US relative to developer salaries in
other wealthy countries. That makes me uneasy, but we got here without a well
defined union or cartel to restrict inflow of labor.

~~~
jefftk
In the article I'm saying it's surprising that programming pays so well, given
that all of these other high-paying fields have high barriers to entry,
unpleasant working conditions, or both.

------
sgt101
Programmers have high wages because the value of new implementation is very
high. This is driven by innovation in business applications and practice, but
also by (the real sense) Moore's law - real sense in that the improvement in
computing power effectively available creates available value.

These factors mean that business can create investment cases, and investment
cases provide pay.

If (real) Moore's law vanished today I believe that there would be 5-10 years
more innovation before the train stopped. But real Moore's law isn't over yet
so I don't think people need to worry.

------
SergeAx
"We don't understand why the sky is blue, so you should prepare for it to
suddenly become green"

~~~
Izkata
You really should, a green sky means a tornado might be about to hit:
[https://news.wisc.edu/curiosities-why-does-the-sky-turn-
gree...](https://news.wisc.edu/curiosities-why-does-the-sky-turn-green-before-
a-tornado-2/)

------
cmrdporcupine
My personal theory is that programmers are paid so well right now in order to
_stop_ them being productive for other companies more than they are to harness
their productivity.

The big Valley companies who own the $$ firehose that is the ads business hire
like crazy and pay top salary not because they need the talent -- most of what
they're building with all this talent isn't adding to their bottom line -- but
because they can't afford for that talent to go elsewhere and then compete
with them.

------
Kephael
The market is bifurcated and similar to law. Most people make comparatively
little but the best of the best make several times the average worker. The
company I work for happily rejects > 99% of applicants and I am certain
greater than 90% of people employed as software developers would never be able
to solve the engineering challenges I solve in a manner as cost efficient and
performant.

------
SQL2219
Google has $1.39M in revenue per employee, along with awesome profits. Apple
has $2M revenue per employee. These companies are not typical. The public
company I work for has revenue of $200K per employee, and almost zero profit.
So, if you work for one of these outliers, you're probably safe. The rest of
us are a different story.

~~~
makapuf
Are janitors who work for Apple or other 2M/employee get super high wages ? If
dev becomes as widespread to hire from, why would it be different ?

~~~
foogazi
If a new janitorial shop opens up in your town it might drive down revenue for
your janitor shop

If a new tech company is created they might compete with yours but they could
also add more value (tools, products, technologies) to your tech company

------
markbnj
I mean this is already true from my perspective, and not very surprising. Back
in the early 90's when I was a C++ programmer I was making about what I make
now in absolute numbers, but of course the dollars went a lot further back
then. There were fewer gigs, but also fewer people qualified to do the work.
Today most code is written at a significantly higher level of abstraction,
there are more programmers and more projects, the money and perks are still
good but the market is more competitive than it was back then. It's also _far_
more fragmented into tech silos, which should work against my theory I
guess... but idk.

From my perspective its always a mistake to think you're safe and things will
never change. The perceived rarity of any skill set should trend down over
time if possessing the skill is valuable.

------
SergeAx
Also, law and health industries are heavily regulated, so there is an
artificial restriction of competition, sometimes quite ridiculous. For
example, to provide telemedicine service in Russia you should certify your
call center as a clinic, with all the stuff like clean rooms and so on :)

------
IshKebab
> Programmers are paid surprisingly well given how much work it is to become
> one.

It is a _lot_ of work to become a good programmer. It's just that most
programmers are naturally interested in it and do it in their spare time.

> Then you have to win the grades lottery

Err... grades aren't assigned randomly.

------
rossdavidh
In addition to all the other reasons mentioned here, another idea: managers
don't know how to use programmer talent very efficiently. Of all the things
programmers are told to do, 90+% of them are useless or worse than useless, in
that they simply make long-term maintenance worse without adding value.

If you cannot use a resource efficiently at all, wasting most of it, then it
is not surprising that you end up with a shortage. When faced with this
situation, management can: 1) admit that they are the problem, and get much
better at allocating programmer effort wisely, a task that will be very
difficult even once it's well understood (which it currently isn't). Or... 2)
hire more programmers, paying whatever is required to get more

~~~
oflanac52
Very true, all the managers and their managers.. and theirs, who's technical
skills have since atrophied, live in these hierarchies and its a great place
for good and bad programmers (mostly bad programmers), to hide, get paid, be
lazy, nice pension and not talk to anyone much, project gets binned, move onto
another one. The large non-tech companies usually have this issue.

~~~
rossdavidh
True that, but even managers who were good programmers sometimes don't have a
great ability to figure out which features, either user-facing or
architectural, are a good idea and which are not really going to impact the
bottom line. I saw it at tech companies as well. In at least some cases it was
based on a need to impress VC's more than to get things done.

------
Kwantuum
The answer is pretty straight forward: programming scales in a way none of the
cited jobs do.

~~~
foogazi
Surprised this wasn’t mentioned in either jefftk (doctors) or luu (electrical
engineers) posts

Doctor’s scale by spending less time with each patient giving a crappier
experience for everyone

Software has very low design/reproduction cost vs chip manufacturers

------
unnouinceput
Quote: "Specifically, I'd recommend living on a small portion of your income
and saving a multiple of your living expenses."

That's a good advice regardless of your profession, the only good thing in
this blog - rest was rubbish, to put it mildly.

------
yayajacky
Whenever anything gets streamlined in our industry (better work
process/compiler/editor/language), successful company instead of letting go
skilled workers end up branching out into more products and regions.

Inventing new industries gets so crazy, we end up leaving things in legacy
repos for decades. A complete normalization/standardization for the entire
engineering spaces would be both wasteful and unnecessary (what, requiring
everyone to know all of the industries and languages before they can get
hired?)

Even if you get to the point of AI programmers who can replace people, you may
run into a incentive problem because AI would have no use of money.

------
Will_Do
A collapse in __wages __seems unreasonable. Wages are almost always sticky and
so wages will go down at most at the rate of inflation.

Also this line:

> Compensation appears to be proportional to the level of sacrifice

Is a doozy and not at all how modern economies work.

I do agree with the general sentiment though. The mechanisms controlling
supply and demand of SDEs are not well understood and it is much easier to
imagine a shock to SDE supply/demand than doctor supply/demand or lawyer
supply/demand. That being said, this would result in a reduction of
__employment __rather than a reduction of wages for those lucky enough to
continue being employed.

------
kick
This article is basically just asking people to live responsibly, which is
something everyone should understand intuitively.

This person appears to be spending half of their income on charitable
donations every year, though, which is admirable but not a smart financial
decision. (They've spent one million dollars on it! A million! With a standard
savings rate, just throwing that into a bank account would ensure that you
could just live off of the _interest_ from that for the rest of your life in
some countries.)

I'm not saying that you should be a scrooge with your dollars, but there's a
reasonable amount to give and there's an amount that (while great!) means you
should expect consequences from it.

Even if you're making far below FAANG rates, just by living within your means
you'll be able to have a year or two's worth of padding saved up (especially
if you're willing to move to a less expensive area while the theoretical crash
happens) in no time at all.

To post an anecdote from a Hacker News comment:

 _Saw this happen in Houston in 2014. Engineers that had started their careers
just after the housing crisis bounced back were sitting cozy on their 150k
/year (in Houston that's gobs) roles, not really putting much into savings
because "there's always Wells to drill."

When prices dropped from 90$ to 44$ a barrel, I saw candidates do some pretty
stupid shit. Nuked the [remainder] of their savings on a new f150 was a
classic drama played out over 2 weeks that my whole team was involved trying
to talk him down in. Others had to move in with their parents, take roles in
deer Park that were something like 2.5hr commutes one way, drop everything for
a Saudi role and move out there... Their freedom of choice was essentially
yanked away.

The only one that seemed to be handling it well was a fresh 3 years in
engineer. No girlfriend, kids, house, and buckets of savings. He moved to
Vietnam and weathered the storm on a beach, taking tiny sips of his savings._

[https://news.ycombinator.com/item?id=19281509](https://news.ycombinator.com/item?id=19281509)

If you're living within your means, you have nothing at all to worry about.
It's really not that hard, and it'll save you a lot of stress when push comes
to shove.

Edit: Changed a word because it came off too hostile. The line I changed is
quoted by 'saagarjha below, if you're curious about what it originally said.

~~~
jefftk
_> This person appears to be spending half of their income on charitable
donations every year, though, which is admirable but not a smart financial
decision._

The number of people in the world without sufficient food, clean water, basic
medical care, and other human necessities is far too high. As someone lucky
enough to be paid as well as I am, if I didn't try to do something about this
I don't think I could live with myself.

Donating 50% is clearly not the financial choice that will leave us with the
most money, but that's not my main goal.

Here's what our spending looks like: [https://www.jefftk.com/p/spending-
update-2018](https://www.jefftk.com/p/spending-update-2018)

~~~
yowlingcat
I would find it challenging to make the same decisions you made. To place 10x
the amount you spend on childcare in charitable donations is certainly your
prerogative, but will your children feel similarly? How much have you saved to
make sure they can go to college without debt? Perhaps start a business
someday? How much of your charitable donation goes to direct aid of the end
recipient, and how much is skimmed off the top in administrative overhead? Is
the end organization subsidizing a wealthy individual minimizing tax exposure?

~~~
jefftk
_> will your children feel similarly?_

I don't think we're neglecting our children at all. They have good childcare,
plenty of time with their parents, and everything they need. I don't expect
they will resent our choices here.

 _> How much have you saved to make sure they can go to college without debt?_

Saving for college doesn't make much sense: the good schools have a price
discrimination policy where the amount they charge is the amount you can pay.
If you're not rich enough to pay the sticker price, each dollar you save is a
dollar more you'll need to pay to the school.

 _> Perhaps start a business someday?_

If they have good ideas they'll be able to convince people to fund them.
Capital is far more accessible than it ever has been. I'm not worried.

 _> How much of your charitable donation goes to direct aid of the end
recipient, and how much is skimmed off the top in administrative overhead?_

It sounds like what you're getting at is, what are the actual effects of our
donations? The majority of our donations have been to GiveWell's top charities
([https://www.givewell.org/](https://www.givewell.org/)) and their
recommendations are extremely well researched, and the money goes a long way
(ex:
[https://www.givewell.org/charities/amf](https://www.givewell.org/charities/amf)).

As an aside, the fraction of the donations that go to overhead vs directly to
the recipient isn't a good way to measure the effectiveness of a charity. For
example, imagine two charities:

A) Spends 95% of your money building wells, and 5% on administration.

B) Spends 80% of your money building wells, and 20% on administration.

Sounds like A is better, right? Except if B is using that administration
spending on making sure they build wells out of materials that will stand up
to heavy use over years, in places where the wells are most needed, and on
checking up on past wells to make sure they're still in working order, a
donation to B could easily result in far more benefit than a donation to A.

 _> Is the end organization subsidizing a wealthy individual minimizing tax
exposure?_

I'm not sure why you would think this, or what sort of mechanism you're
imagining. The charity we've donated the most to, the Against Malaria
Foundation, distributes long-lasting insecticide-treated bednets in areas with
high levels of malaria.

------
KKKKkkkk1
> Medicine seems to be a bit better from the sacrifice standpoint because
> there's a cartel which limits entry into the field, but the combination of
> medical school and residency is still incredibly brutal compared to most
> jobs at places like Facebook and Google.

This was written before a Facebook engineer committed suicide in September:
[https://www.cnbc.com/2019/09/27/facebook-employee-death-
was-...](https://www.cnbc.com/2019/09/27/facebook-employee-death-was-
suicide.html).

------
kisna72
Economy grows because of increasing productivity and programmers have been the
forefront of increasing productivity. As long as this continues to be true, I
think programmers will continue getting high pay

------
tastythrowaway
I... don't think that's true. There's more jobs being created and more and
newer technologies, and not every skill is universally applicable. If anything
students should be more prepared to learn and apply themselves because there
are actually lucrative careers waiting for them (assuming they choose to go
into this field). Once the machines start writing their own code and scripting
their own automation and plugging in their own power cords... well, then we've
got bigger problems

~~~
oflanac52
How "lucrative" it will be at the end only seems to play a small factor, it's
all just too abstract for some people to understand how they can go from Hello
World to 100k a year. Out of 2 college classes of pure cs and cs/business
students 200 or so students (graduated 2017), I only think 25% (maybe less)
went on to actually write build software/web/apps.

Also once machines smart enough to writing their code i'm sure we will have
much bigger societal issues then just us programmers. I see that point
written/said so much it's the biggest platitude of the decade.

~~~
tastythrowaway
Isn't that true of anything you don't understand? That is to say it's not
always easy to connect a -> b -> c with only a cursory understanding of
something. But trivially we can see that technical expertise is valuable - and
surprisingly (still) increasingly so at that. Furthermore, knowing how to
solve problems will always be valuable. As far as your statistic goes, that's
quite a hand-wavy and unsupported assertion. To what population does this
generalize? What is the source? And if only 25% are going on to careers as
developers, does that not imply that the labor market isn't necessarily
growing fast enough to outstrip available need and thus lower salaries?

------
bobbytran
I disagree. There is a large supply of programmers. There is a small supply of
good programmers.

The good ones, if they know their own value, get paid well.

I'm currently paid well. They went through 50 applicants before getting to me
and now rely on me to keep multiple systems running smoothly that run a 100
million dollar company.

I do have a college education, but have been working on some sort of code
almost every day since I was 13 years old (now I'm 40).

Many of the things I do for work are easy...mostly because I know the systems
so well.

------
Friedduck
Perhaps it’s elsewhere in the comments but these same programmers build models
that are as capable as a person at diagnosing illness, or identifying relevant
case law in litigation.

If you look at it from a value perspective the very best programmers are
capable of generating an incredible amount. We’re dealing with a shortfall at
least in part due to the rapid evolution of the industry, and the immaturity
of the discipline.

I can see a future where there’s balance and incomes are lower but not in the
near future.

------
joconnor7113
This whole thread seems ridiculous... where has hacker news drifted?

It’s pretty simple. If programmers are easier for companies to find then pay
would drop. If restrictions are applied making programmers more difficult to
find such as limiting entry into the field like limiting H1B visas or
requiring programmers to jump through the hoops of becoming a “licensed”
programmer then pay would go up or stay the same. Nobody really cares how much
“effort” is required to do your job.

------
foogazi
> we don't understand why programmers are paid so well

productivity, supply/demand

Businesses can create and capture value faster with technology - they compete
for the talent that will deliver that

------
himinlomax
> Programmers are paid surprisingly well given how much work it is to become
> one

People are paid well when what they do is in demand AND few people can (and
want to) actually do it.

It's that simple.

Not that many people can be decent programmers. There's a matter of cognitive
ability: quantitative i.e. IQ, but also probably probably qualitative in that
it may take a particular mindset. There's also a matter of interest, which is
probably why few women choose that career.

------
m_ke
Software is eating the world and will continue to do so for the foreseeable
future. Chips are getting cheaper, 5G is coming and machine learning is
opening up a ton of opportunities for automation.

It's very likely that the next decade will be the decade of automation, with a
boom in robotics and codification of most routine tasks. A shift to AR and
speech based interfaces will also require much deeper expertise than hacking
together CRUD apps.

------
k26dr
If you've ever tried to hire a developer its pretty clear why they're paid so
well. Very good ones are a huge boost to your business and hard to find.

------
nmpennypacker
Whether or not programming salaries will go up or down in the next x years is
anyone's guess. Everyone should plan for lower pay, regardless of what their
profession is.

If you get used to living on 1/2 of what you make, or 1/4 of what you make
with a partner, you'll pretty much always be fine. Not having kids also helps.

Set the bar low, and plan for the worst. Planning for the worst is also a good
practice in programming. :)

------
rajacombinator
Programming is a high value / very low social skill profession. (Bottom tier.)
As such, it will continue to be exploited by apex social predators.

~~~
krapp
It's practically 2020 - the "nerds vs jocks" model of society is long dead.
You're working with an outdated stereotype of programmers as social outcasts
and loners that, even when it was relevant decades ago, was mostly reinforced
by technical rather than social limitations. In modern reality, the web has
been mainstream for decades, there are children's books about coding, and the
apex social predator of the common developer is a developer with VC funding.

------
Sevii
Diseconomies of scale are the biggest barrier to pay decreasing at this point.
The more software you have the more engineers you need to build and maintain
it.

Every software project is bespoke at this point, custom made to fit the
situation.

Also consider that the iPhone only came out in 2007. In 13 years smartphone
penetration has reached billions of people. Which is a gigantic increase in
the demand for software.

------
yibg
I don’t know if I’m overpaid, but I do know my tc has gone up a lot over the
last decade and it wasn’t really anything I did. I consider this a bonus. If
it stays this way, great, if not it was good while it lasted. I lived pretty
well on 1/4 my current tc, and I don’t see any reason to up that. So worst
case I get to save up a bunch of money while the gravy is flowing.

------
RickJWagner
I imagine eventually the pay will go down, as the most useful software is
already written and some aspects of automation creep into coding. (But I've
been thinking that way for about 30 years now.)

I think coding pays well because it requires constant learning. You might get
off the ground with some technology, but you'd better be completely re-
invented every 5 years or so.

------
buboard
Not all devs, San Francisco/faang devs. Author works at google, its easy to do
the math: google slurping a huge chunk of the advertising market and splitting
it to a few thousand people. It s enormous pay, fueled by
monopoly/gateway/cartel dynamics. No, developers dont offer the productivity
boosts that they did in the 80s, lets not kid ourselves

------
thrower123
Programmers are still wildly underpaid relative to the value they create.

We're not that far removed from active collusion between tech corporations to
suppress wages and labor mobility.

There are ongoing efforts to pump up the labor supply to keep wages depressed;
however software just doesn't scale, and throwing more mediocre labor at it
doesn't produce positive results.

------
0xBABAD00C
> Given how poorly we understand this

> Summary: we don't understand why programmers are paid so well

Who's "we"?

> Programmers are paid surprisingly well given how much work it is to become
> one

It's _a lot_ of work to become a good software engineer, and also requires
certain talents and traits that not everyone has (just like doctors and
lawyers).

> When I compare it to how I started programming right out of college, making
> more money for 40hr weeks and no on-call, I feel embarrassed.

I think this type of sentiment is toxic among engineers. You shouldn't feel
embarrassed for charging market rates for the work you do, in fact you should
be proud of yourself for making a good living with honest intellectual labor.

> I think we should treat collapse as a real possibility

I see exactly zero reasons in this text justifying this conclusion.

> Compensation appears to be proportional to the level of sacrifice

This is a simplistic and profoundly incorrect view of economics and world in
general, this is not how the world works.

~~~
saagarjha
> It's a lot of work to become a good software engineer, and also requires
> certain talents and traits that not everyone has (just like doctors and
> lawyers).

Sure, it takes work to be a software engineer, but I don’t think it takes all
that much. You can be a pretty decent one with a few years of work.

~~~
josephg
As far as I can tell the current job market disagrees with you.

It seems like there's two markets for software engineers at the moment: The
market for fresh bootcamp & collage grads, which is swamped with job seekers.
And the market for mid/senior engineers, which is desperate for talent. If
you're a senior engineer its very easy to find well paid work at the moment.
But thats really not the experience of most fresh grads. I've spoken to plenty
of junior software engineers who send out dozens of resumes for each call back
for an interview.[1]

If you could be a decent software engineer with a few years of work, companies
would happily hire collage grads. But despite being desperate for talent, most
companies don't want to hire average junior developers for any price. The top
15% or so of each graduating class finds work easily enough, but most software
companies consistently say no to anyone in the bottom 85% or so of each class.

And thats pretty good evidence that most people can't become decent at
programming with only 3-4 years of study. Even amongst the top 15% or so of
each graduating class I bet most people started programming long before their
freshman year. I know I did.

(And to be clear, I'm not saying that companies filter based on marks in
collage classes. As an industry we interview people and assess them as fairly
as we can. I'm saying most people are demonstrably not very good at
programming after "only" spending 3-4 years studying CS in collage.)

[1] Source: As part of my current role I've chatted with, and technically
assessed around 100-200 fresh grads in the last year. Our hiring bar is
calibrated off the companies we work with, and we say no to the vast majority
of fresh grads from bootcamps and universities.

~~~
saagarjha
I think the ability to be hired is orthogonal to how good of an engineer you
are.

~~~
josephg
If that were true, the best paying companies would fill up with charlatans
with mediocre engineering skill but who interview well. But at places that
think a lot about their interview processes, we don't really see that
happening. Most of the engineers I've met who work at Google and Facebook are
very capable.

(That said, I've certainly worked with entire teams of atrocious engineers at
consulting companies and banks and places like that, who are paid well in
excess of what they're worth.)

And yes, there's also plenty of blog posts from people with solid engineering
skills who don't interview well. I've interviewed a few people like that, and
I've fought tooth and nail for them. But angry homebrew developers on twitter
don't tell you much about the hiring process for the average engineer. And in
reality most people who can program effectively at work can also program well
enough during a job interview. I'm genuinely sorry if you're not one of those
people, but until someone comes up with a better assessment process, we use
what we've got. I'm all ears if you have ideas for fairer processes.

------
xg15
One point I haven't seen in the article is familiarity with the software
system: The longer a developer works for you, the more implicit knowledge
about this particular software system will they accumulate. This knowledge is
specialized enough that keeping an individual may be cheaper and less
disruptive than training new hires.

------
kerkeslager
We can speculate on where the market will go, but obviously, yes, programmers
(and everyone else) should plan for lower pay because there's a reasonable
possibility your pay will be lower, and part of financial stability is being
ready for such possibilities.

The market isn't the only reason you might be paid less in the future.

------
aerovistae
"We don't understand it"? Source?

Seems pretty well understood to me: we generate a lot of value through the
work we do.

~~~
twblalock
So do doctors, as per the example in the article, yet the barrier to entry is
much higher for them.

This is not about value created -- it's about the dynamics of the labor
market. If there were a bunch of people who could create as much value as you,
but demand a lower salary, companies would hire them instead and pay them
less.

~~~
millstone
It is about value created. A programmer who can find a way to extract $1 per
year, from a million users, is worth $1m. But doctors are constrained by their
personal 1-1 relationships: no doctor can handle a million patients.

~~~
twblalock
It is about supply and demand in the labor market, full stop. People aren't
paid based on the value they create. They are paid based on how hard it is to
find other people who can do the same thing.

~~~
jfim
People are paid based on both the value they create, and how hard it is to
hire them.

If someone being hired will provide $10 of value for the company, then that is
the ceiling for their wages. On the other side, the floor for their wages is
the lowest price sometime will accept to provide that value to the company.

------
debt
There’s a lot of awful work that many software engineers simply don’t want to
do and naturally the ones that do work the awful stuff do a pretty piss poor
job because it’s hard work.

So as long as there’s awful work, there will be a market for high paid
software engineers.

------
jb775
> not something that will definitely happen, or that's going to happen on any
> certain timescale, but something likely enough to prepare against

Gonna use this gem next time my wife asks when my hair will grow back.

------
xwowsersx
I'm confused.

The article literally states several reasons programmers are paid so well yet
states "What makes me nervous, though, is that we don't really understand why
programmers are paid this well".

------
SKILNER
The REAL THREAT to developer salaries is GROWING OLDER.

It's very similar to the arc of professional athletes, as the mental abilities
needed for programming degrade at a comparable rate to physical abilities.

------
shmerl
Unless you expect computers to start writing programs for themselves (I
suppose possible at some point), demand for programmers will only continue to
grow. And finding good programmers is hard.

------
guerrilla
I think, as others pointed out, we do know why. It's basic economics combined
with the fact that it doesn't scale as well as other things.

In addition to saving, unionize if and when you can.

~~~
break_the_bank
I think unionizing works in a market where the workers are more easily
replaceable. Not so in the case of software engineering.

I'd rather negotiate with my employer/find another employer that would pay the
same/more than unionize.

~~~
guerrilla
> are more easily replaceable

I believe the article was alluding to a future where that may not be the case.
Also, you can do both.

------
vonseel
Did anyone read the comment by user _randomsong_ [1]?

I hate to be a gatekeeper, but do people not realize that teaching a bunch of
people to code and being a constant advocate for the "everyone should learn to
code" thing will eventually flood the market with supply and lower salaries
across the board?

You've gotta have some self-interest. It's possible to be an advocate for
education without cutting off your own feet...

[1]: [https://www.jefftk.com/p/programmers-should-plan-for-
lower-p...](https://www.jefftk.com/p/programmers-should-plan-for-lower-pay#lw-
ftocr9cDfYtyQj9x2)

------
wolco
It was easy for him landing that job but what happens is the environment is
changing quickly whatever he knows now he will have to pivot.

------
chroem-
> Summary: we don't understand why programmers are paid so well.

Isn't it just Jevon's Paradox but applied to labor?

------
xupybd
In my country I'm getting less than a school teacher with the same level of
experience.

~~~
saagarjha
What country would that be?

~~~
0xcoffee
I'm not OP but I'm in the Netherlands earning ~3k a month.

Reading these American salaries always makes me contemplate moving there..

~~~
xupybd
Wow yeah that is low. As a grad that might make some sense but if you have any
exp that is low.

Is that 3k in USD?

------
noonespecial
I find it more curious that doctors are paid so little than programmers are
paid so much.

------
lilyball
> _When I compare it to how I started programming right out of college, making
> more money for 40hr weeks and no on-call, I feel embarrassed._

I hope he realizes his experience is also a rather privileged one. Many
people, in particular women and black people, have a much different
experience.

~~~
saagarjha
Even if women and black people make a fraction of what a white, male software
engineer would, they’re still comparatively quite well off. _That’s_ how much
a software engineer makes.

~~~
lilyball
The point is women and black folks generally _don 't get jobs_. It doesn't
matter how much a software engineer salary is if you can't even get hired. Or
they do get hired but for the really shit positions. And a "fraction of" an
entry-level male software engineer position is in fact shit pay.

~~~
saagarjha
70% (or whatever the fraction is) of 100k isn’t horrible. I don’t know much
about hiring rates for underrepresented groups, so I won’t comment there.

------
ArtDev
Programmers need to Unionize!

~~~
thundergolfer
A fair response to those focusing on labour market dynamics. If you look at
the profits generated per employee at top companies there’s plenty of room for
engineers to capture more and more of the pie.

Similar things are going on in startups these days. Early employees are
getting screwed even in cases where their startup is hugely successful. In
those cases there’s opportunity for enormous increases in compensation for
engineers if better bargaining means the founders and particularly the VCs
take less.

------
paultopia
The comparison to lawyers is interesting. I don't think law is all that
different from software, but would love to hear from those who have more info
about the software market.

Within the law, everyone acknowledges that the market is bimodal. The top new
graduates make salaries pretty comparable to entry-level FAANG: just under
200k base to start, going up to the 300+change base toward the end of the
"associate" period (7-8 years in), with bonuses adding between 15k at the low
end and 100k at the high end.[1] And that's all cash, not stock. (At that
level, student the difference in student loan burdens seems like rounding
error to me.)

Super-senior lawyers at those firms (partners) make significantly more, and
probably more than anyone except ultra-ultra-superstar software engineers
(like ML people at DeepMind) or moderately successful founders make.[2]
Although this conceals a lot of difference, because very successful partners
at the richest firms make quite successful founder/NBA money. But it's
probably not worth considering those, because it's very hard to make partner
at a biglaw firm.

Just focusing on the first 7-8 years of biglaw career that gets lawyers to
that 3-400k level, the real question is: what % of new law graduates get that
kind of job, compared with what % of new CS graduates can get FAANG-level
jobs? And how much worse are the outcomes for the non-FAANG-level software
engineers vs lawyers?

For lawyers, about 15%, give or take, are getting those biglaw jobs---very
much concentrated in the top 20 schools or so (basically, you go to Harvard,
Yale, Stanford, etc., you can walk into those jobs; further down the rankings
you have to be in some top % of your class). And the median for the others is
around 55kish, which is your small firms, your public service jobs (public
defender, legal aid, prosecutor, etc.).[3]

What does this comparison look for CS grads? Are CS grads at non-top schools
mostly getting 60k/year jobs churning out wordpress extensions or are they
still making 6 figures?

Also, where do CS salaries even for FAANG folks top out? When you're ten years
in, are you still getting what you got at 6 years in, for e.g.?

[1] [https://abovethelaw.com/2018/11/biglaw-firm-announces-
bonuse...](https://abovethelaw.com/2018/11/biglaw-firm-announces-bonuses-and-
updates-their-salary-scale/) (this is one firm, but the high-fi firms tend to
be all fairly lockstep with one another)

[2] all partner mean in 2016: 877k; equity partners (the real partners) 1.1m
---it's probably higher now. Median is a bit lower, however, and there are
tons of outliers to drag those means up.
[https://law.yale.edu/sites/default/files/area/department/cdo...](https://law.yale.edu/sites/default/files/area/department/cdo/document/2016-partner-
compensation-survey-web.pdf)

[3] [https://abovethelaw.com/2018/06/the-most-important-chart-
in-...](https://abovethelaw.com/2018/06/the-most-important-chart-in-the-legal-
industry-and-it-has-nothing-to-do-with-the-law/)

------
ydz
The author didn't mention that another possible reason programmers are paid so
well relative to other careers is that the same amount of programming work
scales better than conventional work. By that I mean, one hour of programmer
work can bring business value to all the users of the software, which can be
in the millions/billions. On the other hand, one hour of work in most other
conventional jobs typically only brings value to one person or several people.

------
non-entity
What about those of us who are already on the "low" end? Or is this something
that's more pr less only going to sleffect off the people getting paid six
figure to write CRUD apps?

~~~
mzz80
I believe that the author is mistaken in their judgment. Demand will rise
since software is becoming more complex and difficult to maintain rather than
easier. However, the closer your position is to “webmaster”, the more likely
your job will disappear and be replaced with jobs that require a more advanced
skill set.

~~~
dpau
this is an important point. long ago just being able to write html and use ftp
could get you a cozy job. the problems being tackled now often require
advanced skills in machine learning and data science. as the requirements go
up, software development may begin to more closely resemble medicine- high pay
but also lifetime learning and high demands

~~~
jefftk
Most software development at high paying places like the FAANGs still does not
require ML or data science. It's understanding the problem, figuring out what
to treat as your constraints, figuring out the best changes to make to the
current system to satisfy those constraints, getting other engineers on board
with your proposal and handling feedback, making your changes, writing
automated tests for your changes, writing appropriate monitoring, etc. These
are the kind of skills that me and most of my coworkers have learned on the
job, and we're happy to hire junior engineers who can code but don't know the
rest yet. Which seems very different from medicine to me?

------
duelingjello
Deep learning / ML / AI have long-term implications to affect essentially all
non-manual jobs, including the subsets of knowledge workers, office jobs and
programming. (That’s in-addition to putting 90-95% of truckers, the no. 1 job
in the US, and ride-for-hire workers out of work within 10-20 years.) Self-
programming systems, given enough computing power and tech progress, will be A
Thing™. At that point, we will be very close to one or more technological
singularities as well, which will have even larger implications and knock-on
effects to productivity, job availability and technological era.

We really need an universal basic income (UBI) at some point, or there were
will be billions of people but very few, livable wages jobs as the
billionaires and potential trillionaires vacuum up an increasingly skewed
power-law distribution of the new wealth created, while billions of people
live in favelas.

See also: the TED talk on deep learning:
[https://www.ted.com/talks/jeremy_howard_the_wonderful_and_te...](https://www.ted.com/talks/jeremy_howard_the_wonderful_and_terrifying_implications_of_computers_that_can_learn)

~~~
thu2111
I used to believe this but don't any longer.

For 'cookie cutter' business software development you don't need AI to write
the software. Better frameworks or even just a respin of tools like MS Access
would be much more impactful. Yet we see relatively little progress in the
space of RAD tools, which were a big thing in the 1990s but have largely been
killed off by the web. How many frontend devs even use a visual UI designer
these days? Mostly they write HTML either by hand or using mashups of
JavaScript and XML like in React. If anything dev productivity has gone
backwards, and expecting AI to fix that doesn't make much sense.

To start with just one big problem - even the best AI can't really
conceptually understand something like a business domain, and business
customers often struggle to understand what software can do or articulate what
they really want.

AI will contribute in some areas, probably with small workflow and performance
optimisations. It isn't going to radically change anything.

------
crimsonalucard
I think the interviews are stifling supply. Most of these jobs don't need
someone who can solve algorithms.

