508 comments

[ 3.1 ms ] story [ 326 ms ] thread
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?
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.
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
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?
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.
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.

"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.

And there is the problem that a lot of the 'good' coders generate code that cannot be read by mere mortals, i.e. the majority of devs.
The software industry has done a really poor job of separating button pressers from actual engineers. Just like in civil engineering not everyone is capable of being a good developer.
This is just the Dunning–Kruger effect in action.
Programmers need to Unionize!
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.

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

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

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.

I often heard it as: “The market can stay irrational longer than you can stay solvent”
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.
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.
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.
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.
I don’t see why this is reasonable, but for what it’s worth my recollection of those years does not align much with yours. Home price indexes in Cupertino were down 15% tops even when mortgages were nearly unavailable, and SF city population peaked in 2001 and bottomed in 2004 at a count equivalent to 1999 (a total loss of 11,000 people, ~10%). This is even with Silicon Gultch hysteria.

Also, the blog post doesn’t claim the change in salaries will be linked to a recession at all —- it’s claiming the supply demand dynamics of the SWE labor marketplace will change somehow. It’s hard for me to reconcile that with the fact that PMs are paid quite well at technology firms that pay their engineers well, and they don’t have the same skill barriers to entry.

> We're getting close to the next recession

Maybe. Maybe not.

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.
> 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?

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.
(comment deleted)
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
"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.
> 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.

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.
> "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.

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.

That's nice, except the majority of FAANG engineers will never see one of those projects.
"We don't understand it"? Source?

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

value isn't the whole story -- there's a large supply of programmers who are much cheaper than what a stanford grad makes (hacker schools and eastern europe / india are examples)

there are good arguments for why american companies can't outsource effectively for all roles, or the higher quality of a stanford grad, but they aren't simple arguments and they depend as much on low-quality managers as high-quality talent

even in a high-price city with a reasonable tech ecosystem like london, programmers aren't paid as much as SF or even NY.

comp is complicated

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.

... But there aren't.
The article raises the question of why we can't explain the absence of such people, given how much easier it is to at least get your foot in the door in tech compared to other professions like medicine and law.
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.
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.
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.

It's worth pointing out that generating a lot of value (productivity) is not a guarantee that your wages will grow in proportion to that value. In fact, for the last 50 years, in most careers, wages have not tracked productivity. This is the "Productivity-Pay Gap." (https://www.epi.org/productivity-pay-gap/ )

While that gap has opened for most Americans, it looks like the average progammers' wages are right in line with productivity growth (maybe not Silicon Valley wages, but I think those are pretty disconnected from the rest of the country anyway). So the question is not, "why are programmers' wages so inflated?" but instead, "what depressed everyone else's wages and will programmers remain immune?"

The "what" has been a noisy political argument in the last several years especially. Suspects include foreign competition, automation, changes in corporate management, lax antitrust enforcement, and the decline of unions.

Foreign competition is an obvious and much-discussed threat. My Job Went to India (And All I Got Was This Lousy Book) was the title of a real book in the wake of the dot-com crash. More recently that threat seems to have receded, if temporarily. Companies still employ offshore programmers where they can, but the consensus has emerged for now that some combination of language differences, cultural differences, quality of training, and the difficulty of coordinating across time zones holds them back from taking over the most complex tasks. I see this as a temporary reprieve. Foreign programmers' quality will improve, both sides will learn to cope with language and cultural differences, tools for remote work are rapidly improving, and perhaps most importantly, competitive companies are being founded outside the US. For those companies, there are no language, cultural, or timezone differences in hiring local talent.

I don't see automation as a threat. Or rather, programmers' jobs have been "automated away" on a regular basis, but you still need programmers to operate the automation! Assemblers replace machine code, compiled languages replace assembly, higher-level languages replace lower-level languages, off-the-shelf frameworks and middleware replace starting from scratch... After each change, programmers are more productive and more valuable, not less. This is unlike manufacturing, where the worker who is replaced by a robot may never learn to program that robot.

I don't see the last three (corporate management, antitrust, unions) as especially important changes but others may disagree. I certainly don't see any reason programmers should be immune, except that the above two factors give them a lot of leverage. Lax antitrust enforcement was obviously a factor when some of the big companies conspired to hold down wages, but again, it doesn't seem to be enough by itself to hold wages down. Programmers seem to have done okay without unions, but I do wonder what it would be like if programmers had a guild system the way physicians and lawyers do.

> 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.

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.
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.
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.
It feels to me like I fell into programming, like it just happened that I graduated college with a skill that was highly in demand. But how did I end up here? Because of my race and gender people were more likely to see me as a potential engineer and take my efforts seriously. Because my parents could afford a computer in the 1980s there was one around for me to learn on. Because they could afford good schooling for me there were classes where I could practice this skill and study the theory behind it. It's hard to know the chain of causality that led to me getting into programming, but it's substantially less likely that I'd be here if I'd not had these advantages along the way.

If you think of privilege as something you have that makes you a bad person, if you know the word and know it applies to you but you try to hide and dismiss your privilege, to find axes along which you have less of it, that's only marginally more helpful than if you were to deny your privilege entirely and insist that all your accomplishments in life have been due to your efforts alone. Having privilege puts you in position where you have an outsized ability to effect change. The best response to privilege is to turn it to fixing the situation that led you to having these major advantages over others.

If I look at my situation, my race, class, and gender privilege have been helpful, but my nationality privilege is by far my biggest unearned advantage. Someone at the poverty line in the US earns more than 90% of people in the world, even after adjusting for money going farther in poorer countries. This is not to minimize the suffering of people in the US, along any dimension, but to illustrate the extent of the problem and the work required. With so much need, how could I possibly justify keeping my luck to myself?

So I earn to give. I can't reject my privilege, I can't give it back, the best I can do is use it to give back.

-- https://www.jefftk.com/p/the-privilege-of-earning-to-give

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.

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.

> 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.

I never said you should live on beans and eggs and skip vacations. Most engineers are paid well enough to live well on their base salaries while saving a reasonable amount of money.

What I'm advising against is stuff like spending so much on your mortgage that you will go broke if your RSUs drop in value or your annual bonus is less than you expected; in other words, live a lifestyle you can afford with your base salary.

> My advice is similar: live on your base salary, and save a lot of it

To be fair, that comment doesn't exactly align with advising someone against getting a mortgage they can't afford unless they receive a bonus.

I'm currently reading "Narrative Economics" by Shiller and it mentions propaganda historically being fed to the poor/middle classes in regards to saving as much money as possible (so banks could profit or earn commish off it)...I'm by no means against saving/investing money, but your original comment (and the multitude of others that are similar) makes me wonder how much of that propaganda is alive and well today.

This is an extreme, uncharitable interpretation of the parent comment.
> So you can be old and crippled finally going on the vacation you dreamed of?

No, so you can retire early, as in your 40s. It's stated clearly in the article and not easy to misinterpret.

And if ageism in the industry is as bad as it seems to be, being able to retire in your 40s might be a pretty important consideration. If nothing else, it gives you a way to turn down work you don't like doing.
This definitely flies in the face of what the economist Milton Friedman[1] perceived as our societal values.

I personally hope this kind of thinking isn’t the trend.

[1] https://youtu.be/km9OCw3f5w4

No. So you can be old and crippled and still live.

If you are assuming that you will always be able to work, making the wages you make today, then you will have a rude awakening the day that you cannot. Living below your means has been almost universally good advice since the dawn of civilization.

I do appreciate your sentiment however, in that there is a lot of advice from FIRE types who talk about even the most minor indulgence as some hedonistic waste of money. And it makes sense to remind those who go to that extreme, that spending money now can actually buy a little happiness. But I think you're being slightly disingenuous by taking the parent comment to the extreme of living off rehydrated beans when they're simply reiterating the idea of saving as a virtue.

I think there's a balance between what you and grandparent are suggesting, but it's hard to strike, and there seems to be a lot more advice about either retiring by 40 or yoloing it than striking that balance.
I think on the types of salaries this article is referring to, you could happily do everything you want to reasonably do lifestyle wise while still save a safety net for the future. Travel, coffee and restaurant meals, expensive hobbies, nice neighbourhood. Should all be achievable.

If you want to play it safe, then you're really just trying not to leverage your wage into insane debt. You could live a decent lifestyle while putting money away and be financially fine if wages went down. But if you get loans for a $1.5m home and a $200,000 car you might find yourself with payments too high.

Or retire at 40-50 and live the good life doing all the things you didn't have time for when you were working, without being crippled like people working regular jobs are when they retire.

And have enough left over so your spouse can keep living comfortably after you're gone. Even if they were a SAHP and thus had a gap in their retirement savings.

And have enough left over so your kids and grandkids can get a head start in society.

It's not just about you in this very moment...

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

which would be a fine statement if we knew exactly what is going to happen.

As we have no idea if we are going to live till 100, and drop dead in the act of procreation with one's 50th life partner, or die at 32 of bone cancer after 5 years of off/on chemo and other invasive procedures. One has to build in slop to cope with all that life might throw at you.

The amount you save is entirely up to you. Some people might be willing to live off beans if they save enough to move to a pacific island in 5-10 years.

Other people are contented to live a bit larger, because they plan to stay where there are.

As with all things you need to figure out your goal and plan for that, and have enough slop to account likley occurrences (family, illness, recessions)

By this logic the eptiome of efficiency would require my children to die on the same day I die. I can't bring them with me after all.
You seem to be fighting your own personal demon here. This is not what the parent commenter meant. If you can't meet basic needs, there is no point trying to save a lot of money. The advice becomes relevant as your income begins to rise above cost of basic needs.
> 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...

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.

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....

In my experience, people with this argument are often trying to rationalize exceptionally unaffordable hobbies, like leasing a top end Audi or Tesla every 3 years.
There’s a middle ground which is to spend intentionally so that you’re not wasting money. You can set aside a percentage for purely fun stuff. But a lot of us waste money — we spend on stuff we don’t need, things with diminishing marginal utility. How many dinners out a month are really necessary to improve happiness — and at what point does it cease to move the needle? That’s subjective, and will vary from person to person.

It’s about being intentional.

I'm curious - what percentage of pre-tax cash per year would you recommend saving? All of my friends are on my case for not "saving enough" because I'm living my best life, but I'm not sure what the appropriate number is if my net worth is increasing.
15% of your pre-tax salary saved for 40 years should get you enough to retire at a comfortable level compared to your current spending. Lots of tech workers do not get 40 year careers. If you plan on a 25 year career, you need to save more like 35%.
I save around 30 pretax...theoretically it’ll get easier with a TC increase. Don’t know how to save more without drastically reducing quality of life though.
Managing your life is about balancing risk. Having 6 months in an emergency fund is golden when (not if) you get laid off or something bad happens like a car wreck or illness or whatever. During the course of your career, it will likely happen. When it does, not having monetary worry be part of it is golden.

You can also broaden your opportunities by paying off your house and not borrowing to pay for depreciating assets (cars and other things with wheels or propellers). Getting burned out and want to take some time off? It's a lot easier if you are not having to make a big debt payment or rent payment each month.

> 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.

>> 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.

How else could you explain the extreme wealth of people like Donald Trump though?

> "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)."

Is it? The chorus of HNers who say they didn't need to go to college to get software development jobs and telling others to skip college says otherwise. The significant quantity of bootcamp graduates also landing jobs does too. While both of those categories worked hard too, it's still an order of magnitude less than "doctors and lawyers".

> less than "doctors and lawyers"

I didn't say it's the same quantity of work, if you read my comment carefully. Nor is that the main argument at all. I said it requires special traits, which it does. People who skip any formal education and are still great developers are very rare, and those people definitely have special skills and talents (e.g. you can't point out >99th percentile gifted kids in music or math and claim that it's "easy").

> "Nor is that the main argument at all. I said it requires special traits, which it does."

Okay but I'd dispute even that. Students are going to CS programs these days for the money, not out of any particular talent or passion and a number of HNers echo that anytime the topic comes up. Beyond that, many of the boot camp grads come from other non-technical professions; I just saw an HN article about an airline attendant who became a developer (https://news.ycombinator.com/item?id=21902079), for pity's sake.

To be honest, I'm not sure the special traits needed is any greater for a significant number of development jobs than say, for example, an auto mechanic.

Did you read the blog you linked?

Her job title is "R&D Content Engineer". Her job description as detailed in the post:

> I get to learn things and then write it up in a technical blog in order to teach others about code

In other words, she's a technical writer. Much respect to her and her big job transition, and we need more people like her. However, she is not the best example to support your argument that "SWE is so easy, anyone can do it, even non-technicals like flight attendants!".

BTW I have no doubt there are examples of non-technicals who became actual SWEs working on non-trivial projects, but they aren't that many. Even folks like her, who switched to a technical role (even if not SWE), are pretty few and far between.

> "Did you read the blog you linked?"

Did you? Try reading the "My First Dev Job" and "Life as a Junior Software Developer" sections. She didn't become a writer until later.

Nice try, but her "first job" as a "junior engineer" lasted for only a few months, and then she became a technical writer and stayed in that role since.

Check out the dates in the blog. She just started her bootcamp in fall 2017. By spring 2018, she was already a technical writer.

(comment deleted)
That's kind of an insulting assumption about the individual involved but, okay, if you want to be pedantic about examples, there are plenty of other possible exemplars previously posted on HN:

https://dev.to/nprimak/getting-started-as-a-self-taught-engi...

https://dev.to/thecaitcode/why-not-having-a-cs-degree-is-awe...

https://dev.to/taeluralexis/how-i-landed-my-first-web-develo...

Have fun picking away at them.

I haven't made any assumption. Unlike you, I read the post, instead of just linking it as if it supports my arguments.
No rebuttal for these that you could manage, I see, nor are you gracious enough to admit that my general point was correct.
This is a common pattern, in my experience. There is a pretty large bleed-out rate from programming jobs that are genuinely hard to pseudo-technical but basically communication oriented jobs.

These jobs are usually non-essential roles in which success criteria are vague and almost anything/anyone can produce work considered good enough, meaning such people can "success fail". Word processors don't produce compiler errors or segfaults, after all.

Common endpoints for people who can't handle the rigours of programming:

- Tech writing

- Business analyst

- Product manager

I'd argue that all of these jobs are dramatically easier than genuine coding because it's often deeply unclear how to measure the quality of the output. Whereas coders who can't code end up with programs that don't start, or which crash constantly.

Sadly this sort of transition-to-people-role move is something I most frequently see with women. You see that effect also in the dropout stats in college degrees.

Exactly. GP brought her up as an example of a completely non-technical person transitioning to an engineer.

That does align with the headline of her blog and certainly with her mission to attract non-technical people to transition to SWE roles.

However, when you read her actual career path, it's clear she never actually worked as an engineer: she started bootcamp in late 2017, then in mid 2018 she transitioned to technical writer and stayed in that role.

To me, that post epitomizes a problem with language diffusion when it comes to the SWE debate.

This results in predictable implicit forking of the term "engineer".

You have folks like this lady who use the term to refer to any a technical or semi-technical job.

Then you have folks who do actual engineering work, and hire for actual engineering positions, who know the former group isn't actually qualified to do said work.

Also, the "engineer" title inflation is peaking when someone with zero technical background starts a bootcamp in late 2017, and by early 2018 holds a job with "engineer" in the title.

The only result is the above forking, when the title has become essentially meaningless.

> I'd argue that all of these jobs are dramatically easier than genuine coding because it's often deeply unclear how to measure the quality of the output.

There's also a wide internal split between people who can write working code in some limited capacity and folks who can pick up almost any language and write a complete product in it.

Think the difference between a junior frontend engineer who knows only the narrow path that was spoonfed to them in a bootcamp vs someone like Bill Gates who picks up C and writes an OS with it.

This gap is the reason for the SWE compensation gap. FAANG, for instance, try to hire only the latter and universally avoid the former.

> Okay but I'd dispute even that.

Well, and you'd be wrong. Here's my anecdote against yours: I'm a hiring manager at a large tech firm, and I see lots of candidates with CS degrees and even some years of experience, who can't code well at all. Definitely not at a level to make comparable pay to partners at law firms :)

> Students are going to CS programs these days for the money

Yes, and many of them are not good software engineers at all.

> I just saw an HN article about an airline attendant who became a developer

You know, there are gifted people everywhere. If someone taught themselves enough programming to make it to "partner at law firm" level compensation range, they are naturally talented and have the right combination of personality traits (which is rare, the specific fact that this person was a flight attendant or hair stylist or whatever is irrelevant).

> bar is any higher for a significant number of development jobs than say, for example, an auto mechanic

I don't know who you are and what you do or don't know, but for high-paying serious tech jobs this is completely false.

> Yes, and many of them are not good software engineers at all.

Companies are very well aware of this fact.

I think you're laboring under a misconception here and as a consequence we're kind of talking past each other. The post author is quoting Dan Luu, who brought up "doctors and lawyers" but that's not really the topic of the blog post; the post author himself started out at fairly low pay (Take a look at the "making more money" link, he started his career out at $65k pay and I have rather good reason to know that the FAANGs were paying much more than that). So, the subject is not "high-paying serious tech jobs", just run-of-the-mill programmers.
> While both of those categories worked hard too, it's still an order of magnitude less than "doctors and lawyers".

Having been to law school, I'd argue that's more about regulatory barriers than inherent complexity. Coming from a family of doctors, I also suspect that medicine is the same, though I couldn't say so first-hand.

That's not to say that regulation is unnecessary. If a bootcamp grad makes a snafu, a widget might not render correctly on a website. If it's a lawyer or a doctor, someone could die or get screwed out of their life-savings. Regulation is there to verify that they've all met the threshold. I don't really have a problem with that. But I recognize that it doesn't make one "harder" than the other.

> The significant quantity of bootcamp graduates also landing jobs does too.

Bootcamp graduates aren't really "software engineers" yet, let alone good ones. They require close mentorship by a software engineer to get to a point they can do useful work unsupervised.

That guy who mentors them did take several years to learn his craft.

These bootcamp graduates may eventually become good engineers, but it will take a few years.

So either way, it takes several years to become a good software engineer, just like GP claims.

Also, I'm not even sure how many "bootcamp graduates" are landing good industry jobs. I mean no disrespect, but generally most jobs that can afford to be selective prefer experienced engineers or graduates of 4 year programs. Finally, I'd love to see some numbers, but I don't see a massive flood of bootcamp graduates landing jobs in the industry. They are relatively rare in all places I've worked at.

I often think the only type of collapse we can expect is if we can develop a generalized AI capable of writing code. If we do that, no profession is safe -- what need is there for doctors if we have AI that can identify disease and treat symptoms with better accuracy. The point at which software developers get automated away is the point at which all white collar careers disappear.
Not sure about your analogy. Doctors do many things apart from ‘identify disease and treat symptoms’. More importantly, doctors like to do the other things they do eg counselling patients, bedside manner, shared decision making, working in a multidisciplinary team, patient advocacy, policy developmemt. Many coders love to just write code, they wish they could just write code in fact, without the other stuff a job inevitably entails. That’s why AI replacement is a risk - the job will change into something different (probably with the word ‘evangelist’ in the title) which is probably not as appealing to many.
Software engineer do a lot more than just "write code". They communicate with stakeholders, help design and spec out the product, participate in team sessions, etc, etc.
Yeah, my point is that software engineering may end up becoming just exactly the things you have listed without the writing code parts... and that is probably going to annoy a lot of software engineers, not to mention the fact that other types of people who would never write code could be better at communication, design etc
> Yeah, my point is that software engineering may end up becoming just exactly the things you have listed without the writing code parts

I really doubt that. Who'd do all the code writing? AI?

In the next 20 years, maybe. In the longer term, probably.
How many doctors are making 300k/year for their bedside manner? Knowledge work is a huge part of what makes it such a valuable trade.
> 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).

That has virtually no relationship to economic value. Economic value is mostly supply and demand driven.

It's a response to his statement that it's not too much work, if you read right above the line you quoted.
> 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.

I don't know, if we're talking comparable salaries to top lawyers (his analogy, the ones that get to top firms and become partners), then we're talking at least Staff+ levels at top tech firms for comparison. That's definitely more than a few years of work, and definitely requires talents and skills that not everyone has. If you get there in a few years of work without much effort, then you're naturally highly gifted.
> 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.

So we agree that:

1. Not everyone has the ability and motivation to start training as a SWE.

2. For the minority of individuals who do, it will take several years of effortful training and work to become just "pretty decent".

Couple that with:

1. Huge, rising demand.

2. SWEs being at the core of the profit centers of many (most?) current businesses.

And that alone is more than enough to explain high pay.

If every new business needed 10-30% of its workforce to be, say, lawyers, their salaries would skyrocket as well.

Except I don't think they'd feel so guilty and unworthy about it.

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.

I think the ability to be hired is orthogonal to how good of an engineer you are.
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.

The problem is that training in programming is very expensive, to the extent that it's easy for just one junior or bootcamp grad to end up consuming all the time of a much more capable and expensive senior developer (e.g. because their code is of such low quality it has to be rewritten).

The other issue is that teaching is a vocation. Many people don't want to teach. If they wanted to teach they'd have become a lecturer or some other more obvious career path where they can spend all day teaching programming. If you hire people who are too inexperienced you're basically forcing an unexpected career change on some random team member who won't like it.

Programming is really hard. I think we tend to underestimate how hard it is. I've seen people who just came out of a CS programme who can't write basic programs in easy languages like Java, or explain what hexadecimal is. I've seen people who can code but just don't do it right, like an intern my company hired who wrote a Slack/GitHub bot in Java (neat) but the entire program consisted on untyped JsonObjects being passed around a handful of giant methods, all of which were static and many of which were duplicated. He knew the syntax of the language but the reasons why you might want type systems, classes or how to create abstractions were missing. Then he left (it was a short internship) and the tool he had created was abandoned because it wasn't that important to begin with. From a pure financial perspective he was a major net loss to the firm.

I don't know what the solution to this is. Training is important, but there doesn't seem to be any way to make it financially sustainable. Ultimately, new developers need to finance more of their education themselves with longer programmes than bootcamps offer, and better bang-for-buck than universities offer.

I think the word "good" was doing a lot of work in the phrase "a good software engineer".

So then the questions is "does a good software engineer make a lot more than a decent software engineer". From anecdotes and such[1], as well as personal experience, evidence seems to point to "yes", although most of the salary surveys and such point to a relatively narrow gap (i.e. less than 2x between 10th percentile and 90th) between minimum and maximum compensation for devs.

[1] https://danluu.com/bimodal-compensation/

I agree with this in general but I feel like it's getting increasingly difficult to change jobs especially as you get older which has the effect of lower pay overall.
(comment deleted)
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.
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!

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

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

Usually because people don’t think the probabilities are 50-50.

> 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...

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.

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.
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.

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.

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.

Based on what I'm seeing living in Vietnam for the last 4 years, the tech salaries here are increasing YoY as developers realize they can make as much as those 'bay area' people. They increasingly have the same level of talents, or better, so why not? Not only that, but the cost of living is increasing in the larger cities like HCMC, so the argument that it is cheaper living is starting to lose weight.
I saw that a few years back when I was working with a company that had outsourced a lot of its operations to India because India was so cheap. Problem was, India had gotten more and more expensive every year to the point where it didn’t make economic sense any more... so they were looking into offshoring their operations to Africa.
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.
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.

You also have to imagine that India and China have increasing quality of life, more demand for their own software and (eventually) higher salaries.
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.
It definitely isn’t just numbers: language is also an issue, and, as I noted when someone asked about auto-translating programming languages, Chinese doesn’t seem to have the concept of lowercase/uppercase, so some things just wont work unless the developer really gets to know things that nobody will teach them because everyone else thinks it’s “common knowledge” and doesn’t realise it isn’t.

As another example, there was a real-time city building/combat game a while back, made by an oriental developer and ported into English by a UK games company. You could set you flag to show your name — with a one character limit. That made sense if you’re thinking of “狐”, but English language players set their flags to “G” or “K”.

Right now, I’m a UK-born developer living and working in Berlin, and my B1-equivalent in German isn’t enough to read German-language design documents without resorting to machine translation. It just about works (office and dev language is English), but German-English is easy compared to Chinese-English.

Seamless remote work is also a prerequisite for levelling tech salaries even within single nations and time zones, but I don’t know enough psychology to argue how far or close that is.

That song and dance has been preached for at least 20 years and I'm still waiting for it to happen. After working several jobs managing outsourced talent, the problem for me was never quality of engineer, it's proximity to the business requirements.

If you're a programmer in a different country with a completely different culture you may simply not understand the reasoning behind why or how you are solving a customer's problem.

No amount of documenting and specing ahead of time can correct this to the same degree as having a programmer that truly understands the business problems they are solving.

As a developer in Eastern Europe I am in this game for almost 20 years and I feel like things are changing fast.

Ten or even five years ago it was very rare to find companies that will pay well for remote talent and it created weird culture when your core senior engineer is paid less than out of school junior dev just because they are living in place with lower costs. At the end companies got what they paid for.

Nowadays I see new wave of companies that understand this better and treat remote workers as first class citizens: not just by amount of money they pay but also bringing these developers to the table and letting them to have stakes in the project not just handling assignments.

I don't know much about culture in India or Philippines, but after working years with developers in both SV and places like Germany, UK and Romania I don't see much difference.

> I don't know much about culture in India or Philippines, but after working years with developers in both SV and places like Germany, UK and Romania I don't see much difference.

I'm working on a daily basis with colleagues in Eastern Europe as well as with India and Phillipines. There are vast differences in culture that is affecting workplace performance. Philippines are fairly americanized and function almost like Europeans, but they are also paid as much per hour so why suffer the distance and timezone disadvantages when you can stay in Europe.

Indians are still cheap per hour but have a vast national labour market which means they rarely stay in a job for more than a few months, perhaps a year. It means many won't stay for the duration of a large project, and changing team members frequently is a burden on any project. Countries also have very different leadership expectations and culturally-savvy leadership is in short supply.

Generally the hard part about programming is communication, both with machines and with all sorts of stakeholders. That's why "naming" is one of the hardest problems in programming.

I expect good communicators fluent in the same language working mostly the same hours every day to be in the same talent pool. I don't expect every employer is willing or able to take advantage of the entire talent pool. Many (apparently most!) are willing to pay a premium to have their team physically sitting in desks on site.

US alone has 300+ mils so if it was so easy we’d have lots of local competition already but we don’t.
You don't want to put your software development in corrupt countries. I mean, do you really want to hire a team of people who are used to paying bribes to get ahead?
You’re tarring an awful lot of people with the same brush there, and also neglecting that people may be used to paying bribes aren’t necessarily people who want to pay bribes, and they may act differently when bribes aren’t something you essentially have to do.
It doesn't matter that not everyone is a problem, as long as we can't properly tell one from the other the problematic ones has to be a part of the equation when you deal with corrupt countries. This will usually eat everything you'd save in salaries, which is why efforts to move development to third world countries usually fail to reduce costs.
I was told this twenty years ago when it was time to choose a college major. I believed the doomsayers then, and that derailed my programming career for a good decade.

Maybe this will eventually come to pass, but there are no signs that it's on the near horizon. Most U.S. companies are still uncomfortable with domestic remote engineers, let alone international remote engineers. It won't happen overnight.

I think you have it backwards. Most good programmers in non-first world countries should plan for much higher pay as remote friendly companies grow. The problem isn't that demand will diminish due to the larger pool, the problem is that the demand for good programmers outstrips the entire world supply by a lot.
At my workplace, people work from home when their kid is ill or whatnot, but management has been pushing back against us having more work from home days, and there has been much Sturm und Drang over this.

If management is so concerned over us working remotely a few more days a month, I can't imagine more of a push toward remote workers, particularly in other timezones, with people that have limited English skills.

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.

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.
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

Yeah, I can't see CRUD app development providing top-tier salaries for more than 5-10 more years.
What CRUD app companies pay top tier salaries currently? They all pay much less than GAFAM from what I have read.
Most engineers at GAFAM (or whatever the trendy acronym is) are doing CRUD work.
I prefer FMAGA.. because of the ambiguity.
The rules and regulations are changing. More big companies need people to make more ADA compliant and GDPR compliant CRUD apps now, all these web apps will either be maintained or die, and another take it's place. So until some major patterns are agreed upon by software vendors/browsers/frameworks or whatever, I don't think it will change much.
> If google finds a way to run itself with 5k developers instead of 30k, that's a scary change

Google has a lot more than this, FWIW.

what's the actual number? I tried Googling it, and the first few results are giving me numbers from 5+ years ago (around 20k)
I’ve generally heard that Google is about half to two-thirds engineers, and they have around 100,000 employees. I’m fairly sure they have the most among FAANG.
Considering most of their revenue still comes fom one area I would imagine they could shed a substantial portion of their workforce without any technical advances.

My guess is it's only a lack of direct competition that is stopping this.

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

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.

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

Well, duh. Giving money away is always a dumb financial decision. Presumably they don’t particularly care and can survive without it.

It wouldn't be worth pointing out if:

A. It wasn't so much.

B. They weren't trying to police the habits of others.

This post is bizarre in the context of that: it's telling people to do the opposite of what the author does.

Giving money isn't even exclusively a bad financial decision. In a lot of cases, it makes sense. I don't think it does here.

You’ll notice they stopped donating when they couldn’t afford to. The author can clearly handle giving away half their income here.
I don't think the author is trying to police the habits of others. He's stating his prediction about how factors may change, and what one should do if they agree. Others can agree or not.

As to telling people to do the opposite of what the author does, do you have evidence that the author doesn't live on a fraction of what he takes home? By definition, he does. He lives on no more than 50%, since he donates the other half.

Per a recent post, he doesn't own a car, and has 19 lbs of butter, purchased on sale, in the freezer.

Even if he's living on a meagre $200k/yr after his donations, he's probably still able to save aggressively. And lead a fulfilling life with his wife, children, and hobbies.

> drop everything for a Saudi role and move out there... Their freedom of choice was essentially yanked away.

That's not the only freedom you don't have in Saudi Arabia.

> 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

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?
> 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/) and their recommendations are extremely well researched, and the money goes a long way (ex: 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.

In my country I'm getting less than a school teacher with the same level of experience.
What country would that be?
I'm not OP but I'm in the Netherlands earning ~3k a month.

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

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?

New Zealand, currently teachers with 8 years experience get 90k.
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.

> Of course, high salaries will attract more supply over time, which will put pressure back down on salaries.

It's not clear to me that there aren't soft and hard caps on supply, even if everyone wanted to be a programmer because the compensation was so great. There are certainly aspects of intelligence, temperament, and personality that are needed to crank through information, organization, and abstraction problems as part of a team for decades of one's life.

This is a bit hand wavy... isn’t current comp due to a handful of tech companies that became very profitable very quickly, and a lot of venture capital money? Without either of these two factors I doubt wages would be at the same level.
Those companies became very profitable because technology made them so. It wasn't some accident that is here today and gone tomorrow. Technology is at the core of companies like Google, Netflix, Amazon, Facebook. Without the technology, which is implemented by SWEs, none of these would exist.

Their number isn't declining, it's growing.

> Those companies became very profitable because technology made them so. It wasn't some accident that is here today and gone tomorrow. Technology is at the core of companies like Google, Netflix, Amazon, Facebook. Without the technology, which is implemented by SWEs, none of these would exist.

Yes but don't assume that people in india, africa, or eastern europe are too dumb to do the same work. Nor do the outposts of the companies you mentioned pay the same US levels in those countries. There must be another component of this.

> Yes but don't assume that people in india, africa, or eastern europe are too dumb to do the same work.

Where did I ever assume that?!

> Nor do the outposts of the companies you mentioned pay the same US levels in those countries. There must be another component of this.

How about "they pay what they have to"?

In India, if they pay $60k/yr, plenty of talented candidates would work for them. In the US, if they paid that much, nobody would apply.

Simple.

Well the question is: why don't they replace the $370k/yr american employees by the $60k/yr indian ones? Why do they pay the premium for US employees? Except for defense projects, it doesn't matter where the code is made, US or India. The German software industry outsources heavily and tech wages don't reach the US levels. Why doesn't Google?
> The German software industry outsources heavily and tech wages don't reach the US levels.

German SWE work doesn't pay well domestically. It's also struggling to attract talent. Probably a reason why Germany isn't known for its many profitable software companies.

> Well the question is: why don't they replace the $370k/yr american employees by the $60k/yr indian ones?

In the case of an engineer making $400k in the US, I suggest this is a fairly exceptional individual, with a level of skills and abilities that are rare in _any_ country.

Since that individual produces large profits for their employers, employers struggle to hire them at any price that is lower than their productive yield.

Strong SWEs can make companies like Google and Facebook millions of dollars per year. So these companies will gladly pay any six figure salary for these individuals.

Of course, if they can get away with only paying them $60k in India, they will. It's not their goal to pay well; it's a necessity.

They try to but it's not always that easy. When you outsource you often need a lot more people to do the same work since there is more overhead. So the total cost may not be that much lower and the output is less.

Not saying this is always the case but it has been like that at my company several times. IMO IT and business need to work close together to efficiently produce quality stuff that the customers want. This is way harder if you are separated by a sucky phone line.

Additionally, businesses learn after being burned a few times that throwing distant resources at software problems tends to make a bigger mess than they started with (no matter how good their PM may be). Often one good developer embedded within a domain in a company is worth more than an entire outsourced team.

I'm sure there are exceptions, but it's what I've anecdotally observed over my career to date.

I wonder if lack of competition has made them lazy when it comes to driving down costs. Each of the FAANGS is a monopoly or near monopoly in its niche and American regulators seem reluctant to deal with that.
The answer would be: 1) they do, and 2) they can't

1) Google clearly hires plenty of people in India. Here's their new office in India, with allegedly ~10k employees: https://careers.google.com/locations/hyderabad/. The assumption that Google is only hiring "expensive american employees" vs "cheap indian employees" does not hold

2) Talking about "american" and "indian" employees is misleading. Your question could just as well be "Why not hire for $100k from <midwest> instead of $370k in CA?" At that level of salary, you're talking about attracting top talent from around the world, who are often happy to migrate. The salary is a reflection of an arms race between tech companies - the same person isn't going to opt for $60k to stay in India - they will either take a $350k job in Facebook, a $300k job in Amazon, or at worst, a $100k+ remote job to stay at home(numbers are illustrative). You simply cannot attract the same talent due to how global(and competitive) the top-end of the programming marketplace is.

> Why not hire for $100k from <midwest> instead of $370k in CA?

That's not a realistic comparison. That's a comparison of an average-ish salary in the midwest to a far above average salary in CA. Realistically, it's more like $100k in the midwest vs $130k in CA or $370k in CA vs not being able to hire anyone in the midwest because there isn't enough volume to be able to find someone who's that much of an outlier.

Except for defense projects, it doesn't matter where the code is made, US or India.

Actually, yes it does.

Google would have to become a remote management company for that to happen. But Google makes so much money that they're not really under pressure to do that.

Outsourcing is a strategy employed by companies who need software engineers on the cheap and are less concerned about the non-zero difficulty of remote work/management.

Plenty of talented candidates would work for that price, and some would emigrate for 3x the salary and a visa. It’s a complicated and moving system I don’t think we are modeling properly in this discussion.
My point is that there are usually quite specific conditions and money flows leading to very good compensation for certain jobs, rather than a 'force' like 'Technology' which seems a bit magical to me. An example is when Ford starting offering higher wages to change the labour market dynamics [1]. Although yes, this was brought about by the industrial revolution, saying that doesn't really provide the crucial insight into why it happened and the effect it had.

[1] https://www.forbes.com/sites/timworstall/2012/03/04/the-stor...

Your initial comment talked about "tech companies that became very profitable very quickly" as if that's some sort of accident. I'm reminding you that it is not, but a direct result of their technological focus.

Technology is a force that makes employees more profitable. Work that used to require dozens of employees now requires just one engineer writing code for multiple computing devices. Nothing "magical" about it, it's the very nature and purpose of technology.

I didn't mean to say it was an accident, but at the same time surely you aren't claiming it was an inevitability?
It is inevitability. Increasing productivity is the goal of technology. Look at technology from the dawn of time, all it did was increase the productivity of labor, both individually and as a group.

Without getting into a huge topic - it also encourages a "winner takes all" set of conditions, in which companies with the right technology and the best employees control a disproportionate amount of the profits in their field.

Current comp is ultimately because computers and the internet are both the entertainment medium of choice (displacing film, radio, TV, and we know all of those industries and the supporting industries they spawned were huge) and a universal personal and business tool (with an impact as great or greater than the automobile did on both personal and business transportation and, as before, we know how big the auto industry and supporting industries became). Computing and the internet are so fundamental now that I do not expect this wave to stop until every person on the planet, no matter what their local standard of living is, has a personal smartphone within arm's reach 24/7.

We're not guaranteed to have no bumps along the way of course but, over the long term, it's really hard to envision a case where demand for developers, and consequently comp, drops drastically before this global saturation occurs.

Those handful of tech companies need a boat load of engineers, restricting the supply.

A restricted supply means you have to play a higher price.

It doesn't matter what causes the lack of supply, its the lack of supply that causes price rises.

I guess that depends on if you're talking about bay area comp or high comp elsewhere, which are on two very different levels, but still high compared to other jobs in their respective regions. For the bay area it might indeed be coupled to extremely profitable tech companies, but elsewhere there is still a very high demand for software engineers from SMBs.

A lot of mid-sized businesses want to gain an edge over their competition via custom software solutions. (The optimistic part in my also thinks that it's still the early days there, where companies in each niche are trying to uncover software driven upsides with fewer resources, and once those are found everyone in the niche competes over squeezing out the most of that opportunity, which requires a lot more engineering resources).

On top of that even moderately complex websites (search function + data pipeline leading into that) that a lot of 100+ people companies have require regular attention from a somewhat skilled software engineer.

So in conclusion, I think that high compensations might be driven up by "a handful of tech companies", but a lot of the demand is mostly uncoupled from that.

There are more factors than just supply/demand and use value. There's the sensitivity of productivity and employee turnover with respect to pay, and the replacement of costly performance quantification with a significantly cheaper rank-ordering system (usually informal via promoting your "best" few engineers).

The former leads to efficiency wages, and the latter to tournament theory.

Example of the first: there are two jobs with an identical market-clearing wage and expected net present value of productivity. The first is relatively unskilled labor - you train them for maybe a week, and they do pretty much average performance for however long they stay. The second requires a year of training during which they provide zero value, then stay an average of a year after that during which they provide double the value. A savvy employer would pay the market-clearing wage for the first role, and above that for the second. By doing so, employees of the second type would be unable to find a job that pays as well as what they have now (since the market isn't clearing), so they'll tend to stay longer and provide extra value.

Example of the second: corporations will pay CEOs much more than vice-presidents. The work that both jobs do is largely the same, and the disparity in value added between the two roles is much less than the salary difference. The spread is there to make sure that senior executives work really hard to be seen as a better choice than their competitors - now the board doesn't have to evaluate how well executives did in an absolute sense, but rather need only judge who the best candidate is for the top role.

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...

It's usually less exaggerated than that - stagnation while inflation or salary increases in other fields are higher.
Airline pilots real wages have been decreasing for a long time. Starting pilot out of flight school makes like 28k for a lot of hours a week.
Yes, and the consequence is that there is a shortage of pilots and prices are rising back up.
Yeah, I’m slightly familiar with that. Flying is a bit unusual since training is so much more expensive than other professions, and requires a lot of hours, so I guess you can consider the first few years like a medical residency. A low-paid training job.

http://www.aacadetacademy.com/CadetAcademy/career_progressio...

AA has an interesting program here, but I still think the best route for aspiring pilots, if you can get a pilot spot, is probably Air Force Academy. It’s very hard to get a pilot spot, though, and I don’t think it’s ever guaranteed unless you do the Army Street to Seat flight program, which does not require a college degree, but they mainly fly helicopters (maybe only?).

I often wish I had been a pilot... currently reading “Viper Pilot” by Dan Hampton which is a hell of a book.

We saw this with programmers and the dot-com bubble. There was briefly really high demand and high pay, and then when funding suddenly disappeared there were massive shutdowns and layoffs. Many devs couldn't find work for years, and the market wage was much lower because there were so many extra devs. (College CS enrollment also plummeted then, which is one hypothesis for why CS training has been slow to scale up to current demand.)

Automotive factory work is another example, I think. Something like: there were high wages (with unions) in Detroit factories, and then competition first from overseas and from other US states led to a collapse in pay (along with a general collapse in Detroit).

I haven't looked into it, but I suspect that there was a time when some railroad workers were very well paid, which then went bust when one of the railroad bubbles popped.

I do feel that the dot com bubble was different. In that case, the whole industry was brought into doubt. "Maybe this whole internet thing isn't all it's cracked up to be." That notion is clearly ridiculous in 2019.

The much scarier "bubble" today is "actually most of this stuff isn't all that hard". There are probably also smaller bubbles to be had in AI, blockchain, venture capital, etc., but I don't think those will be nearly as broad-reaching as dot com.

The thing with dot-bomb was that there were cascading effects. All those startups were buying gear from the "Four Horsemen of the Internet" so their collapse brought down a bunch of the large firms as well. (And it was all mixed in with 9/11, etc.)

Today, even if there were a big ad-tech collapse, a bunch of highly paid Bay Area engineers might end up having to move back to Ohio but I'm not sure you have the same overall economic effects. (And, if it's mostly just a drying up of VC capital, the effects are even less.)

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.
For a long time, law was also a thing that a lot of liberal arts majors from good schools sort of fell into when they had trouble turning their English or History degrees into a decent living.

Big Law still pays pretty well--although I assume the associate work life is as punishing as ever--but it's probably not a great career path in general for someone who is mostly chasing the dollars.

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...

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.