Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
What Software Engineers Earn Compared to the General Population (ramiro.org)
149 points by gkst on April 11, 2016 | hide | past | favorite | 158 comments


Is it meaningful to compare the median annual income of software engineers to the average annual income of the general population?

I'm legitimately curious, what is the statistical significance of an average versus a median?


It's statistics 101 to not compare median to average, simply because an average is more impacted by outlier values and so a member of the general population making $15m a year would lift the "average" income far more than it would lift the "median" income. The numbers set "1, 2, 3, 4, 1000" has an average of 202 but a median of 3, and 3 is clearly a better representation of those numbers as a group.

Also we've got multiple data sets at play and so we shouldn't be using a "ratio" but rather a z-score.

A z-score is a measure to normalize all the different distributions and see how many standard deviations away from the average each value is. It's the accepted practice for comparing across two different data sets.

Udacity covers it in their data science course: https://www.udacity.com/course/viewer#!/c-st095/l-81689336/m...


It's not necessarily wrong to compare the median to the average once a sufficiently large dataset is reached given LLN, but I'd argue that a z-score is still far too basic to capture the nuances of such a varying dataset with so many points. Some type of hierarchical model would probably be best for this dataset.


Fair point on the z-score still to simple but better than a ratio.

As far as the LLN, also right but this assumes that PayScale has anywhere close to enough datapoints for that number to be reached which I would question. Also not sure if we can consider the LLN in the same way if you are comparing a total population with a sample here?

That I guess is the other compounding factor actually, the population of Software Engineers is actually just a sample of the overall population of "the general public's income" and so that does impact this as well. We're not comparing group A to group B but rather group A to group ABC...N.


"average income" as reported is usually the median.

Edit: I'm not sure why I'm getting downvotes.

Anywhere you read about average incomes from a serious source it'll be the median, no one uses "mean income" for average when dealing with incomes, since the distribution is so skewed.

If you even just google "average income" it'll report you the median. Median is so completely standard when reporting on income data that it gets short-handed to "average".


I think you are probably getting downvoted because the article explicitly says that they are using the mean for the general population:

"Moreover, we compare median annual values for software engineers with mean annual values for the general population. Considering how large the income share of top earners is in several countries, annual median values for the general population might well show a different picture."


Anywhere you read about average incomes from a serious source it'll be the median, no one uses "mean income" for average when dealing with incomes

This is demonstrably untrue. A search for "average income" returns articles referencing both median and mean incomes (and usually clearly distinguishing between the two).


I didn't downvote you but people probably did because, if all someone says is "average," most people will assume they're talking about the mean absent any other context. Yes, it's a bad measure to use for certain things but lots of bad measures are used in lots of places.

(Now, if a piece talks exclusively and explicitly about medians and then uses a term such as "this average" that's probably OK because they've already stated that median is the only average they're discussing.)

All Google is doing BTW is basically "deciding" that although you asked for average income, what you really wanted is median income because that's what people are looking for. So it basically reworded your query for you.


Average in this article is GDP per capita, which is the mean, not the median.


We're on the internet, you can link to examples if it is true.


It's a mistake to compare the two -- statistics 101.


So, I guess the point of the notebook was probably not the statistics but the scraping and plotting of the data.

And furthermore, the author just used the data that Bloomberg used here: http://www.bloomberg.com/visual-data/best-and-worst/highest-...


Both arithmetic mean and median are averages, so unless they specify what average they used for the annual income, you may only assume what the author meant.

EDIT: Never mind, the author also says:

>Moreover, we compare median annual values for software engineers with mean annual values for the general population


I'd appreciate a link to anyone, anywhere, at any time, using the word average to refer to the median. The median is the middle, not the average, and often nowhere near the average.


This is standard statistical terminology, where "average" is a general term used to describe a central tendency of data. Canonical example averages are arithmetic mean, median, mode.

In popular usage, this has become muddled because the arithmetic mean is also an estimate of the peak/center of a Gaussian distribution from a sample distribution.

Note that "arithmetic mean" is what you colloquially call "average" and think of as "the mean" but it is not in any way the only "mean", either.

See e.g. https://en.wikipedia.org/wiki/Average



To understand the significance, lets start by considering that the top 1% earn about 20% of the total income, and 60% of the lowest earners only have about 4.2% of the total income.

If you remove both those extremes, then average and median becomes somewhat closer to each other.


If you removee the bottom 60% of people you aren't representing what is happening very well.


And removing the bottom 60% will most likely remove the median.


More than "likely", by definition, if you remove the bottom 60%, you are removing the median (which is where the bottom 50% and the top 50% meet)


It certainly distorts results where the median and average in the general population differ by a lot. Where I live the average is almost 50% higher than the median.


It's not very meaningful but in general thanks to outliers at the upper income level the average is higher than the median income which means you are underestimating the ratio of median software engineer pay to average income which means that the multiplier could be much higher than the data tells you. If you're a software engineer this is good news for you but bad news if you are an average worker.


You can compare them because they have the same units. Whether or not it makes sense to make statistical conclusions from the comparison is open for debate.


I really detest when software engineer salaries are compared to the salaries of the general population (often to cite how our sector is "overpaid"). Usually lacking from such simple comparisons: 1. Discussion of how software engineers have to go to college for 4 to 6+ years, but the general population is weighted towards those far fewer years of schooling 2. Discussion of downtime -- the amount of time software engneers spend unemployed (due to economic cycle, startup bankruptcy, downsizing, etc.) compared to the general population (e.g., government workers for example have superb job security, often 100% lifetime job security.)


A lot of software engineers are autodidacts and never graduated in IT. I didn't (I have an MA in politics, obviously irrelevant to my profession). In general unemployment in IT is very low, and there's always a shortage of programmers, so job security is clearly above average. (And government administrations have IT departments, too).

It's supply vs. demand, that's all there is to it. I'm not buying any of the above as a justification for big salaries.


>It's supply vs. demand, that's all there is to it.

Yup. There may be good demand because of force multiplier or return to capital or whatever. (Which are just ways of saying that the work translates into something people are willing to pay for.) And there may be (somewhat) limited supply because it's not something everyone wants to or can do, whether through formal education or otherwise.

But, take either supply or demand away and the salaries commanded adjust accordingly.

That I could spend 10 years becoming an expert on medieval German literature doesn't necessarily mean that I could command a high salary however rare that expertise.


While there is a segment of autodidacts, it's not like people can become expert software developers overnight.

Software developers work longer hours. I've never been in an environment where developers hang their coats up at 5:00 and go on with their carefree lives.

And while unemployment may be low in IT, developers do not enjoy job security.


> While there is a segment of autodidacts, it's not like people can become expert software developers overnight.

Agreed. Plus, learning in this trade is a job never done. It's not like once you get a foot in the door (and land a job), you're set for life.

> Software developers work longer hours.

I can't speak for the US, but it doesn't seem to be the case in Europe. I live and work in Poland, I kind of know the job market in the UK and Germany.

> And while unemployment may be low in IT, developers do not enjoy job security.

Well, relative job security. Not neccessarily in terms of any single job being safe and granted, but there's a rather slim chance of getting stranded between jobs.


> I've never been in an environment where developers hang their coats up at 5:00 and go on with their carefree lives.

And I've always worked in environments where they do.

Anecdata for the win?


Same here. I've always worked more or less 8 hour days with occasional exceptions for emergencies and crunch time to hit a deadline.


+1 In London worked from 10 to 6 and went home. Canada 9 to 6 with 1hour of lunch (unpaid) Brazil same as Canada.


Longer hours than who?


The general populace.


Yeah -- "force multiplier," and talk of how programmers can obsolete other jobs, is at least partly an argument that programmers 'deserve' their salaries, because they make society permanently more efficient.

That discussion feels imprecise, though. Are those really the reasons that programmer salaries are what they are? If there were 20x more programmers, would that change things?

Worse, it makes me want to avoid that whole side of the discussion, because it also sounds like justifying an economic fact on moral grounds.

Yes, supply and demand and perverse economic incentives sometimes result in high demand for things that aren't that beneficial to society as a whole. Personally, I happen to think that what programmers do is more beneficial to society than what Hedge Fund managers do. But I don't care to have a conversation about whether or not we 'deserve our rates.'

It's what supply and demand dictates; that much is definitely true.


Why do such salaries need justification other than people are willing to pay them


Because these conversations drive increased immigration quotas and increase of supply to "correct" the overly high salaries.


>> there's always a shortage of programmers

Wow, people really have forgotten the IT-death. :-)

There are cycles and bubbles here too. They just might not be in phase with the general economy.

(And get off my lawn. :-) )


Yeah, well, "always" is an overstatement. Of course there are ups and downs. But it's a matter of proportions - this profession still has it easy. I can't recall a headline informing about massive layoffs of software devs :)


> downtime -- the amount of time software engneers spend unemployed (due to economic cycle, startup bankruptcy, downsizing, etc.)

funny but from my circle of friends I never heard of anyone being unemployed and looking for job for more than a month. I myself had exactly 0 time of looking for a job in 12 years of working. I'm in Europe, though, we're ridiculously underpaid compared to the US I think. Very few people earn more than 100K.


Off topic, but I must: comparing salaries alone makes no sense. In Europe, you don't have to pay $250K/child for college education, you don't have to pay $20K/year/family in health insurance, etc.


Well you need to consider purchasing power parity. In many European countries, these things are paid out of taxes (but also provided at a lower cost in total), so you can't just deduct/ignore them.


We pay taxes in the US as well :-) Maybe a bit less than in Europe, but we get very little in return (no subsidized daycare, no 30 days of vacation, etc). US tax revenue is mostly spent on maintaining all the 170+ military bases around the world, aircraft carriers, nuclear weapons, etc.


60% of federal budget is social security, unemployment, medicare, and health spending. 16% is military. I think the bigger problem is that money spent in healthcare doesn't go nearly as far as it does elsewhere due to bloated healthcare costs.


True, but healthcare and unemployment, etc., as wasteful as they are, still improve my quality of life, while paying for defending rich countries like Japan or Germany, does not.


>defending rich countries like Japan or Germany, does not

I am all for non-interventionist policies, but I am not so sure this is so black-and-white. There is definitely a benefit to protecting our allies and ensuring democratic societies remain as democratic as possible. The amount that it benefits you on a day to day basis is probably impossible to quantify, but there is definitely a benefit at a very high level, economically speaking.


What do you think is the relation between vacation days and taxes?


OK, you got me there - typed too fast. But, aside form taxes, if I wanted to take more time off, it only makes sense I should expect less pay, right?


12 years of working means you just missed the dot-com crash of 2000-2002.


True, it also means he's too young to face age discrimination.


I think the problem is further compounded by the fact that "software engineer" is woefully vague. Are we talking a highly educated Machine Learning specialist working at at top tier institution, or are we talking about the CRUD dev working for the local bank; or perhaps we're comparing generic IT that barely codes at all? The former might be underpaid, the latter maybe over paid, but they're all going to reported as "software engineer" and it really muddies the waters..


Exactly... a "Software Engineer" in my experience can run the gamut from someone with a CS PhD to someone with an Associate Degree to someone who is self-taught. Sometimes pay is correlated with education, sometimes with experience, sometimes both and I have seen cases where neither is really a factor as a company is just looking for a warm body to fill a dev role.

Add to this the glut of contract positions in industry along with the wide range of pay there, and it becomes much harder to make an accurate assumption (at least for me in my head) of what software engineers should be making.

Googling "Software Engineer Payscale: brings up pages listing, 73, 78, 83, and 92 thousand per year. And I am leaving those roles with sub-titles like senior and principal off the list. That said, this is a cool idea and undertaking, especially the country comparisons.


Does it make any sense to you to compare a particular group to the general population then? I think it does, the insights you may draw from such a comparisons are obviously different than comparing two sub-groups, e.g. programmers vs. doctors for example.

Also the article doesn't judge the differences of incomes, the "overpaid" is your interpretation.


Exactly. Software salaries should be compared to doctors', lawyers' and other professions', as software engineering is a profession.

I bet you the comparisons would not look so good then.


I'll accept that software engineering is a profession when software engineers accept the same level of responsibility for their work that doctors and lawyers do.

When that happens, brace yourself for a never ending stream of malpractice suits.


There are lawsuits filed for delivering shoddy work, unmet deadlines/commitments. They are just less publicized, because human life is (usually) not at stake.


Those are contract lawsuits.

Are there any jurisdictions where a Software Engineer can lose their license?


It's essentially impossible for a lawyer to lose their license.


But they can. They can also have their license suspended.

Software Engineer on the other hand, is just a label that doesn't mean anything. AFAIK, no jurisdictions license Software Engineers. Unlike law, there's no punishment for working as a software engineer (although there are some jurisdictions where the title "Engineer" is regulated).


The last sentence should be:

Unlike practicing law, there's no punishment for working as a software engineer without a license.


Did you check the article, though? In quite many European countries the median software engineer earns less than the average salary.

I wonder if they meant "median salary" instead, as median vs. median would seem a better comparison than median vs. average.


It's about supply and demand. (not exclusively but still)

How could it be enforced that software developers can only earn the median income of the general population?

Passing new laws that set a limit? That would be completely crazy, you might as well just go and live in North Korea if you like that.

Why shouldn't private companies have the right and the freedom to pay more out of their own pocket (not from government funds) for certain employees?


Also, software engineers are concentrated in high-CoL areas, which skews things.


Software engineers are like doctors or lawyers - long period of study on difficult (and in places where people pay for colleges expensive) schools, long hours, but good pay. So it makes sense to compare them with doctors and lawyers.

Unlike doctors and lawyers, software engineers don't have any respect and are pretty much working class, but that's another story.


Not really. SW engineers are more like the better paid regular engineer.

Hired for a specific, technical purpose. Expected to (usually) have gone to college.

No offense, but equating a comp sci degree (even with years of work experience) to a medical doctor is a little laughable. Doctors (as a field) are a step up from software engineers in terms of professionalism and work expectations.


Disagree. Status is attributed based on "How useful are you or can you be to me?". A doctor and lawyer could be very useful to me personally, selfishly. A software engineer tends to be very useful to capital (institutions, etc.) but not as useful to an individual personally. Facebook engineers have a lot of status - because people use Facebook personally all the time. A great engineer who programs stop lights, manufacturing PLCs, business application, etc. not so much. No selfish benefit = No love.


I don't think that's right. A plumber or home health aide is pretty useful too.


I think it depends on the circles you travel in - those are the professions the most practical/dependable people from my area went into, so from my perspective they do get status to a certain degree, at least from my friends. There will always be the illusory gap between blue vs. white collar workers.


Yes, but why should that be the case, is the question. I read an article I think was linked here arguing exactly the opposite -- that the less real utility a profession provided the higher the pay and the higher the esteem.


Doctors and lawyers require outside certification and extensive post-graduate education just to enter the industry. Comparing them to software engineers is not a useful comparison.


Doctors and lawyers have created their own barriers to entry via the AMA and Bar Association. Honestly, I don't think I've ever met a decent software engineer that wouldn't have the intelligence to make it through either medical or law school, should they apply themself. OTOH, I've met numerous doctors and lawyers that would never be able to handle the typical high-level math and CS courses a decent undergrad requires.

I've said this before: there are a lot of 20-something developers on HN that continue to push back against organizing as they're making decent money and in high demand (for the moment), compared to their friends in other professions. The problem is that once a software engineer hits his/her thirties, those professional friends have caught up in salary. We'll still be working in open-office environments with free soda, while they'll have real offices, expense accounts, salaries based on profits, and most importantly, respect.

By late 30's, we've hit the glass ceiling, but doctors, law partners, finance and business pros are just getting started. There are exceptions (e.g. the lucky start-up guys, consultants that own their own shop, etc.), but for the most part, this is reality.

The lack of any sort of organization for our 'profession' is one of the main reasons I'm beginning to look for a new career path. The H1B is a disaster - I actually worked in India for one of the big abusers, and realize that without something, things will get worse, especially since we've probably maxed out this latest bubble.


It's not useful to try and debate that one field is more difficult than others. All three fields employ a mix of people with varying intellect. It's also not useful to make silly claims that every decent engineer you know had the intellect to complete medical/law school, or that numerous doctors/lawyers couldn't handle math/CS courses. Unless you're giving aptitude tests to your lawyers and doctors, which I assume you aren't. These claims are highly speculative and sound petty.

Your other comments are more worthy of further thought.

I don't understand why you feel software professionals aren't given respect. Nearly every "Best job" survey on the internet will list it #1 or 2, with several other technical jobs in the top 10. That doesn't necessarily equal respect, but the industry is certainly getting tons of attention and many are trying to enter through any means possible. I'm not sure how we can measure respect or disrespect, but I don't see it.

I know plenty of engineers that are making a good living with plenty of work/life balance that are well beyond 40. I'm sure there are some that aren't as well, but engineers that are mindful of marketability can have a long run in the industry.


I agree that it isn't useful to compare fields. Unfortunately, we have to. There is currently a huge amount of debate about whether there is a "shortage" of software developers. This implies some kind of market failure, that US citizens and permanent residents are not responding to the market signals that should be drawing more people into the field.

If we're going to have a meaningful discussion about this, then we more or less have to start to make these comparisons. Are people who have the freedom to chose their careers in the US behaving irrationally by choosing, law, medicine, finance, actuarial work, nursing, dental hygiene, and so forth over software development? A lot of people are surprised to hear that out in San Francisco (check BLS stats), the median salary for a software developer is roughly equivalent to a dental hygienist, notably less than for a registered nurse, and of course far less than the median for a doctor or lawyer. I don't object to higher salaries in these fields at all, but looking at the data, I'd say that any "shortage" is pretty easily explained as a rational response to pay, career security, working conditions, and the opportunity to do meaningful work that helps others.

I don't see how you can answer this question without comparing the fields.

As you can probably tell, I'm skeptical of almost all claims of a "shortage", regardless of industry. I don't dismiss it as a market impossibility the way some people do - I do believe that cultural and educational problems can lead to "shortages", but I do think we need to be very, very careful about analyzing it.

Software is a tough one to analyze, because anyone can call themselves a programmer (or even an engineer, most places) after reading a book on php (or not reading it and just saying they did). But yeah, I do think that someone with the analytical and logical reasoning ability to program, the reading comprehension to wade through dense technical material, and the persistence to keep at it until he or she can actually write, adapt, and maintain a code base… yes, I do think that person is almost certainly capable of handling the academic work at the median level in more or less every profession.


>looking at the data, I'd say that any "shortage" is pretty easily explained as a rational response to pay, career security, working conditions, and the opportunity to do meaningful work that helps others.

I've said this before, but I think that any "shortage" has much more to do with traditional career paths considered by high school and college students as learned from their families and upbringing.

Just look at the careers you chose - law, medicine, finance. How many times did children of my generation (Gen X - I'm 44) hear "be a doctor" or "be a lawyer", or banker/nurse/dentist? Countless times.

I never remember being told "be a computer programmer!" in my entire life, and I personally had much more exposure to computers than most in my generation probably did in the 70s/80s due to my proximity to a leading university with several professors living on my block.

I don't think decisions to join other fields over technology have anything to do with rational responses to pay/security or working conditions, but are just steeped in traditions. My grandparents didn't know "computer programming" was something people could do for a living. My parents probably never considered it as a career for me until I was already out of college.

My generation may be the first generation of parents to identify software dev as a legitimate and realistic career path.


I'm exactly the same age as you.

You may very well be right about how people make career decisions. What you've described sounds closer to how this actually happens. Very few people sit down with a spreadsheet, estimating salaries, working conditions, job security, likelihood of various outcomes, factor in their own risk tolerance, and take whatever comes out as the decision. Many people don't even engage in a similar but less mechanical version of this. So yes, in that sense, I agree.

I do think you may be underestimating the extent to which the traditions you describe may be a distillation of what I described above, though, almost a kind of heuristic. A kids sees that his uncle is a member of profession X, lives in a nice house, enjoys his work, realizes it's a good match with his own personality, and is drawn to it. Parents are aware that certain fields are a path to the middle (perhaps upper) middle classes and nudge their own kids toward them (or rule with an iron fist and practically force them to).

This is why, as I said above, I am open to the concept of a shortage, that I don't dismiss it outright the way some economists do (where a shortage simply indicates disconnect between supply and demand - as with all things, supply rises and demand diminishes at higher salary/price levels until the market reaches equilibrium).

I do see human choices, including career choices, as more personal and cultural - I wouldn't call them irrational, which implies a notable lack of reason, but they are not the result of cut and dried reasoning. I am open to the possibility that these cultural and personal decision can leave young people - especially in situations where new valid professions have arrived within the span of a half generation - unaware of or uninterested in things that are actually very, very good options.

But like I said, I'm only open to this, I'm not willing to conclude that this is what is happening without looking at the data for a particular field. People may be overlooking a field that would be a very rational and wise career choice - or, alternatively, they may be rationally and wisely avoiding a field because far better options for people with their skill and academic mindset exist elsewhere.

My conclusion is that while it isn't wildly irrational to go into software development, the overall pay, working conditions, and job security ultimately do fall short of the kind of options available to people who are capable of going into it. We are a field where 44 year olds like us often (but by no means always) work in open offices with back visibility, experience issues with age discrimination, work in (corrupted) "agile" or "scrum" teams that prevent long term thinking or meaningful autonomy, and at the median in SF (ground zero for the "shortage") earn only roughly the same salary as a dental hygienist, and considerably less than a registered nurse. Sometimes our work is important, but often we are just migrating data from peoplesoft to oracle and back again, (marching UP and DOWN the squaaaaare![1]), or making the thingy look like the other thingy and work with this other thingy (please estimate the time it will take for our schedule tracking software and update your progress!). This may seem like an unfair characterization, and I would certainly agree that there are far more interesting jobs in software development out there, but some of the loudest voices insisting that there is a shortage of developers clearly are just looking for ways to pay people less to march up and down the square.

Every time I say this, it is important to me to point out that I have absolutely no objection whatsoever to nurses earning good salaries, or earning more at the median than software developers in San Francisco. They do an important and hard job, and I absolutely believe they earn those salaries. What I won't do is act like there's some mysterious cultural factor in why young people are not going into software development in the numbers that silicon valley employers would like them to.

This isn't about making it cool, or simply helping people realize the opportunities that are out there. There's some pretty deep structural change that needs to happen before people with choice in the US will consider software development a better option than the other paths available to free and full citizens who have the right to pick their own educational and career path in a labor market.

[1] monty python reference


I think we agree on much of this.

Regarding your anecdote of the uncle with the nice house, I'm sure when nephews and nieces of 44 year olds like us (who might be teenagers now) see software developers with fancy cars and 6 figure incomes living in the same neighborhoods as doctors and lawyers, they might give more consideration to tech as a career option instead of committing to 7+ years of college for law or medical degrees. We may be a few years away from that though. When did decent money come to software? Late 90s? That's only one generation.

I'd also disagree that the pay, working conditions and security are encouraging many to stay away. I don't expect the general public has those same notions. We could make the same argument for doctors - the salary looks great, but look at the price of malpractice insurance and how government interference in the market could impact their earnings over time. All industries will have issues that may not be common knowledge to the public.

If you spend lots of time on HN, you'll see these things, but most people outside the industry probably aren't exposed to stories of long hours and open offices. I don't expect those are the issue, but I certainly could be wrong.


Developers can retire by late 30's if the wages right now keep up with inflation. Using conservative Google compensation:

22 yrs: L3, $160k total comp

25 yrs: L4, $210k total comp

27 yrs: L5, $260k total comp

32 yrs: L6, $320k total comp

39 yrs: L6, $320k total comp

Averages:

22-25: $180k avg

25-27: $230k avg

27-32: $280k avg

32-39: $320k avg

3 * 180 + 2 * 230 + 5 * 280 + 7 * 320 = 4.64 mil

4.64 mil * 0.6 (taxes/FICA) = 2.784 mil

2.784 mil - ($30k living costs/yr) * 17 yrs = 2.274 mil

Enough to retire if you don't have a kid


Wow, that is incredible short-sightedness. I saw comparisons like this back in 1999, before the industry fell apart. Before a generation of companies went under. Before stocks fall and render the total comp just cash comp. before you get pushed aside due to age discrimination. Also, one health-related event will wipe out a quarter of that nest-egg. You cant really retire...


Not having a kid is a pretty harsh requirement.


Not to mention, you can easily retire on a third of that if you're willing to move to Asia or Eastern Europe.


Only because they have powerful professional gilds like the AMA and bar associations to establish entry barriers to the industry.

And that's exactly what software professionals should do as well - have a strong professional body to represent us.


> Unlike doctors and lawyers, software engineers don't have any respect and are pretty much working class, but that's another story

I see this kind of Rodney Dangerfield sentiment a lot on HN but it has never made a lick of sense to me (especially the "pretty much working class" variety).

And also if software engineers want to get into the "doctors and lawyers" category we need to start doing doctory and lawyery things like "professional societies with teeth" and "board/bar certifications" and "codes of ethics" (good luck on that last one).


>if software engineers want to get into the "doctors and lawyers" category we need to start doing doctory and lawyery things like "professional societies with teeth" and "board/bar certifications" and "codes of ethics" (good luck on that last one).

Not sure why you're down-voted. You're 100% right. Honestly, I really am flabbergasted by a good 50%-75% of the HN community's responses to organizing. This is probably the most intellectual group of people I participate with on the internet.

But the cognitive dissonance when it comes to 'free-market', unions, etc. for our profession is almost sad.


That 50-75% will come around when they stop getting job offers due mainly to a dearth of pileous vigor--also known as "poor cultural fit" or "hiring discrimination"--rather than insufficient experience with technology X.

Honestly, though, if the torches and pitchforks didn't come out after the news broke about the non-poaching agreement between the CEOs of the major tech companies, I doubt they ever will.

The need for a worker cartel is directly proportional to the relative power a typical employer has over a typical employee. If the only way you can improve your work situation is by changing jobs, you could benefit from a union.


The things you mention -- gatekeepers with teeth -- are a nightmare. They have eviscerated the medical and legal professions to the point of self-parody. They exist to keep otherwise qualified people out explicitly because they want to keep their wages high.


That's uncharitable. They exist to keep quacks away - both professions are extremely sensitive and prone to fakery.


There is no need for onerous restrictions they place on admittance. It used to be that you became a lawyer by apprenticing in a lawyer's office and reading the text of the law. That's how lawyers came up for generations until the post-secondary boom in the 1950s. Now, that time-tested method is illegal in all but a small handful of states due to ABA guidelines.

Of course, the superficial justification is that if you don't go to school for 8 years and pay $150k+ into the education industry before you can get a crack at real work, then it's because you're a fraud who wants to fleece the general populous. There is obviously going to be a surface justification. However, many lawyers are still primarily interested in fleecing people, and the artifical barriers to entrance probably only serve to further incentivize it; that's a big chunk of debt hanging over one guy's head.

Suppose he wanted to undercut his competition and offer meaningful legal services that a normal person could actually afford; oops, he needs to bill $200/hr because after overhead, 65% of that goes to his student loan payments. :|

However, I'm sure that the ABA and AMA do not function at all like unions and are run by truly beautiful people with stunningly pure hearts who would never put their own self-interest above the general welfare. I am sure the strength of their character fully precludes any attempt to keep competition low and/or to make the minimum viable price point of the profession artificially high. Such a thing would serve only to enrich them and their compatriots while blanket disqualifying large chunks of people that would otherwise make great lawyers and/or doctors, and of course, the people in charge would never even fathom something like that.


In the modern day the gatekeeping is starting to fail and there's "a metric shitload" of underworked lawyers out there due to the law school glut and wages are collapsing: http://www.lawyersgunsmoneyblog.com/2015/05/the-collapsing-e...


Discussion of the counterpoint (click through to original article): https://news.ycombinator.com/item?id=3672815 (I acknowledge this is a couple years older; it's from 2012).


They exist to keep their own wages artificially high. Honestly, I think half my freshman Chem. I lecture of 500 students was pre-med. Only about 1/20 of them ended up in medical school, due to the artificial limits imposed by the AMA. We have a huge lack of doctors in the US due to the boomer generation getting older, but the medical school enrollment has not increased.

In fact, the AMA was originally founded to keep mid-wives from taking a cut of their most lucrative child-birthing business. They are one of the biggest lobbying organizations in the country after the military industrial complex. Along with the Bar Association, Teachers and Police Unions, and financial organizations, the AMA proudly proclaims that their goal is to enforce 'quality' standards for the good of the public. Don't fall for the spin.

We software engineers currently lack the social intelligence to realize how bad we're getting screwed, which is ironic considering the technical prowess we've collectively got.


>They exist to keep quacks away

No, actually they don't. Chiropractors are still practicing, and in huge numbers, and probably gaining in popularity, and they don't just do chiropractic these days, they also do homeopathy, "supplements", and various other bogus remedies. "Naturopathic" doctors are also a big thing. There's no shortage of quackery in the medical field.


They were forced by govt to do that, after a century of resisting.


Chiropractors still need to be licensed.


How does that help things? I can easily find you a licensed chiropractor who will "diagnose" your ailments by just pushing down on your outstretched arm while holding a supplement or homeopathic remedy in front of you to determine if that supplement will fix the problem or not. I won't even get into "subluxations".

And because that chiropractor is licensed by the State, the State government is explicitly endorsing this doctor's medicine and all the "theory" that backs it.


There is an argument that this is an in-demand service that will be practiced legitimately or illegitimately. Thus, instead of providing the atmosphere for a black market, the state licenses practitioners so that some standards can be enforced and so that it has a way to prevent known-harmful quacks from practicing.


You could make that argument about a bunch of things: prostitution, drugs, auto mechanics, etc. But I don't see much push to license these things rather than criminalize them or ignore them. Drugs cost society a huge amount in many ways, but there's been no push to license that until just recently with marijuana. Mechanics aren't licensed, though they do have a totally private certification system. How many people have died from bad chiropractors, compared to cars breaking down (not so much now, but in the old days this was probably a problem) or using tainted illegal drugs? And how many people have died by going to chiropractors or other such quacks instead of real doctors? Steve Jobs is a good example of the latter.


>You could make that argument about a bunch of things: prostitution, drugs, auto mechanics, etc.

Yes, indeed you could.

> But I don't see much push to license these things rather than criminalize them or ignore them

It probably depends on what segments of the population you run with, but among some groups, there is a fervent belief that both the drug trade and sex work should be legitimized, licensed, tracked, and taxed by the state.

You're right that this argument could be made for anything, and that ultimately a moral judgment has to be made as to whether the practice is tolerable under regulation or whether the practice is so offensive that it should prohibited totally. I'm just saying state licensure shouldn't necessarily be interpreted as a recommendation or endorsement of the service offered; it is perhaps more prudent to interpret it as a service that is recognized as in-demand and deserving of regulation without implying a judgment as to whether the service is beneficial.


Lots of states make their auto mechanics get licensed.


Hm. Just because I have a drivers' license doesn't mean the State endorses me. Just gives me permission to operate in public.


Wow, that's incredibly wrong and ignorant. What do you think the driving test is for? Yeah, the testing regime is a bit of a joke in many places in the US, but the intention is to make sure a driver is competent to operate the vehicle in traffic and read road signs, so YES, it IS an endorsement. If you're completely clueless and unable to operate a car and pass a written test, you can't get a license. The whole purpose of drivers' licenses is to ensure competency and improve safety.


In Michigan, the permission to ride a motorcycle is called an endorsement.


None of those people are MDs!


They're part of the same medical establishment, as far as laypeople are concerned, and they're licensed by the State exactly the same way MDs and DOs are, so they must be equivalent.


I don't want some yutz who came out of a ten week medical bootcamp doing rude things to my corpus.


What about someone who had informally studied physiology and medicine consistently since he was 5, followed the literature religiously, and had always advised people on ailments (in ways that consistently matched or even corrected what doctors did), and was able to give lengthy extemporaneous talks about medical problems and the pros and cons of treating them different ways? And the bootcamp was just plugging him into understanding of professional clinical practices and connecting him to clinics with credibility?

(That's roughly where I was before going to a programming bootcamp, mapped over to the medical world.)


There is a middle ground between 10 weeks of training and 10 years of training plus hundreds of thousands in debt. The AMA and ABA are out of control.


Law is only 7 years training and the first 4 are in any field you choose. And there are opportunities for paid semipro internships every summer.


Medicine is 4 years undergrad (in which an aggressive pre-med curriculum must be completed in order to be considered for admission to med school) + 4 years med school + 1 year residency (9 years), and if you're becoming a specialist, throw 3-5 more years in there for extra classroom time and an extended residency. Also bear in mind that this is just formal schooling; these totals don't include the time needed to prepare for specialized entrance exams like the MCAT. It's excessive.

As for law, most non-US jurisdictions allow attorneys to practice after 5 years of training and the receipt of a LLB degree, whereas the US typically requires the full 7 years and a JD. Just another way the ABA is protecting the American public.


Are you aware that medical schools are largely pass/fail with a 95%+ graduation rate? Makes it hard for me to have any confidence in the credential whatsoever.

In comparison, over 20% of my freshman CS class flunked out before 3rd year and there were still plenty of subpar students that made it to the finish line.


Organic chemistry weeds out a lot of premeds before they even get to medical school. Also medical school is not the end of it. Lot of people fail out of residency. And residency is a lot more brutal. You don't get to keep making mistakes. And then the medical boards do take away lot of medical licenses for all kinds of stuff based on complaints by patients, pharmacists, others.


"Working class" is a stretch, but the UK category of "technical middle class" is more accurate. The crucial thing that software engineers tend to be short on, relative to their economic status, is "cultural capital". Effectively this is a way of saying that they are technically-minded rather than seeing themselves as traditional intellectuals, and I've found that to be generally true, as a CS graduate myself.


Software engineers are not "working class." Where did you get that idea?


Depends on the country. The average software engineer wage in the UK (about 56,000 a year), France (about the same) or Greece (25,000 a year) is probably rather solidly in the middle class, and at the lower end of it at that.

A software engineer/developer/programmer/whatever is paid about the same as your average office employee in much of Europe.


I think the grandparent is playing a little loose with terms. By "working class", I believe they mean both: have to exchange their labour for money, and low social class (less respect from peers, say at a dinner party).

Though obviously some software engineers "cash out" and then don't _need_ to work anymore, and many doctors would quickly run out of money if they stopped working.


OK, they're wage earners, then, not working-class. I don't know that their social status is really that low though.


it has risen significantly in the last 5 years because of the pervasiveness of technology, but before that, it was rather low.


Keep in mind that there's lots of different definitions of classes.

Software reasonably fits in as a white collar job, which is working class.

In general it's probably more interesting to discuss the various things people use to differentiate roles than it is to argue about what words should be used to describe the roles.


> Software reasonably fits in as a white collar job, which is working class.

That's a rather eccentric understanding of "working-class," which typically refers to blue collar workers.


I agree that "working class" has typically, in the US at least, referred to blue collar workers.

OTOH, as more and more blue collar type jobs are being obsoleted by machines, I think we're coming up upon a more modern definition of working class: those who do not derive profits from their actual value-add.

For example, most other 'professional' type jobs - finance, law, medicine, etc. - typically have a well defined career path where you're used and abused when young, but typically get to share in the profits once you make partner or senior level.

OTOH, most engineers will max out at about $100K-$160K based on location, and will never share in any profits or income. Realize that Google and Facebook are not typical when you consider the millions of engineers working in mostly typical cost-based positions for insurance companies, banks, and other non SV companies.

Obviously, $150K is much better than the other 'service' workers making half that, but we're moving closer and closer to becoming a 'working-class' type profession instead of one that's respected /w regard to both pay and societal treatment.


There's a big gulf between wage earners and everyone else, but, as I said to the other guy, the professional class and manual laborers don't have identical interests (for instance, which group is more likely to support a free-trade agreement that will cause US factories to shutter but drive down the prices of consumer goods?).


Considering your setup, on what side do you think most software engineers would fall? The elites who have "made it" at Google and Facebook might be fine, but those factories employ tens of thousands of software engineers and programmers in addition to tens of thousands of skilled manufacturing workers. They both lose their jobs when those factories close.

Engineering (all engineering, not just software engineering) is somewhere between a trade and a profession; too skilled and intellectually rigorous for the former but lacking the status of the latter.


In the middle. Perhaps one might even call it the "middle class".


I'd say they fall pretty squarely into the professional-managerial class


It's not that eccentric. For instance, Marx didn't look just at what the job involved but at the terms of employment. In his terms, programmers making some of the highest salaries are still working class because they are paid a wage by a corporation. A plumber operating a business by would be middle class in the same system (they are working for themselves).

There are ways in which those distinctions are much more interesting than wage levels (which tend to dominate "class" discussion in the US).


Well, Marx has more nuanced categories than just wage earners and capitalists. The professional class doesn't have class interests that are identical to those of manual laborers.


From the number of women interested in dating him, that's where. Women go gaga to date a doctor, but they're about as interested in a software engineer as they are a plumber.


I feel like there are some confounding factors here beyond just the work itself


I'm not debating the work and how it compares to other professions, or even how the pay compares, I'm just pointing out what I perceive to be society's perception of the prestige of the profession. Here in America, software does not have a lot of prestige, not compared to doctors and lawyers.

Lawyers don't even make that much money, and a lot of them drop out and change professions; we have a glut of lawyers. The ones at the top make a lot, but your rank-and-file ones don't, they probably do worse than your average software engineer. But it doesn't matter: society holds them and doctors in far higher esteem than engineers or programmers of any kind. It's a product of America's anti-intellectual tradition.

Now of course, there is a big factor of relativity involved: if a woman is a waitress or secretary or cashier, for instance, she'll probably be very interested in dating an engineer or programmer (doubly so if she's a single mom struggling to raise some kids). But if she's a lawyer or doctor or she has the traits necessary to attract a doctor, she won't be. If she's an engineer herself, she probably would be interested, but since she's such a minority in her field she'll also have her pick of male engineers and won't be single long.


I mean that I don't see as great a number of lawyers and doctors having little interest in their personal appearance and constantly referencing science fiction and fantasy, which I think explains it as well as any supposed lack of social status for software engineering as a profession.

Besides that, I don't see how you can really justify calling medicine or law "less intellectual" than engineering or programming.


That's not true at all. Engineers with basic hygiene and fitness are snapped up like doctors. Don't compare 23 yr old engineers with doctors who, after school and training, are already 30 and in their high innome jobs.


While this is interesting, its conclusions should be taken with a grain of salt as the average median income of general population in India tends to be aggressively underestimated. This is because less than 5% of the populace pays/declares tax. The ones in private/government employment happens to be the ones paying tax while any one having "business" income tend to lets say "downplay" their income to get various subsidies or to just hoard money.


They're relying on voluntarily self-reported data, often collected by essential coercion ("please enter your salary to see the averages") so I doubt it's extremely accurate in any country


The data for Romania is completely incorrect or the OP just fucked up his analysis royally. You're talking about a country where the average national wage is just shy of $500 a month (https://www.reinisfischer.com/average-salary-european-union-...) and software engineers are making well over a thousand and sometimes thousands a month. See: http://www.developer.com/daily_news/romanian-developers-earn...

I don't care what numbers or technique he used, it's impossible to come to the conclusion that software engineers in Romania actually make less than the average salary. It's also just plain wrong.


I didn't find the data to be very compelling but the real world example with Pandas and D3 very helpful.

Probably irrelevant but I feel the article should probably be titled differently like "Using Pandas and D3 to get a rough....." as I'm not sure many good conclusions can be drawn from that dataset (I could be vastly wrong though?).


Yay for Italy! Where not only software developers are paid less than the general population, but also where the real wages of everyone are very low compared to the cost of living of other European countries!


It's meaningless to directly compare software engineer salaries with the rest of the general population because our work is a 'force multiplier'. A single software engineer can displace the labor of 10 staff - often permanently. While we're compensated more highly than 1 lower-skilled staff member it's still actually not commensurate with the amount of value we actually deliver. My (unscientific) belief is that we actually capture less of the value we generate than most other staff, out of the sense of "fairness" espoused in this article.

This applies at all levels of the spectrum, from a junior developer working at a contracting firm to high-end staff working for Google or whatnot. We wouldn't be paid those salaries if we didn't bring in 5x more than our pay.

Apart from that, supply and demand/etc also apply. We're highly-trained staff who often deal with mathematics that the general population can't or won't deal with.


Erm... How many people are fed by a combine harvester driver? How many babies and mothers are saved by the staff of a modern hospital, who drastically lower child mortality? If 10 future programmers are delivered by a single nurse, should she be paid 10x what a programmer makes?

(Supply and demand I get, "force multiplier" I don't get.)


If a combine harvester allows a farmer to feed as many people as 100 farmers working by hand then they have a force multiplier of 100x. If you can train one nurse to deliver as many babies as 10 normal nurses then they have a force-multiplier of 10x. This doesn't necessarily translate into 10x or 100x the salary - farming is still an extremely capital-intensive business, probably moreso than it was pre-Green Revolution. Tractors and fuel and fertilizer don't buy themselves. There really hasn't been a single improvement that produced a 10x improvement in the number of babies a nurse can deliver. Maybe if someone goes out and invents the robo-midwife, but I can't see that being real popular...

The other way you can go is a qualitative improvement, which is where the child mortality example comes in. If one engineer can remove 75% of the fuck-ups caused by manually performing a task, then that is also worth money, but it's not valued in quite the same way. You'd value lower child-mortality in person-years of economic output (accrued to society), quality-adjusted-life-years (accrued to the individual) and diminished malpractice suits/insurance (accrued to the hospital or the insurance company).

Perhaps a better term would be "productivity multiplier". Productivity is a pretty standard economic measure (average economic output per individual), and engineers both have much higher economic output per individual, and can greatly increase that output for other individuals as well (often with a one-time investment).


I got that "force multiplier" had to do with productivity, but I didn't get how compensation is supposed to be set as a function of productivity (as opposed to supply and demand, and/or arbitrary rules), or even why it should be. Certainly (and thankfully, for those of us buying their food) a combine harvester driver does not get paid 100x the compensation of a farmer who harvested before combine harvesters were invented (of course the driver neither invented nor manufactured the combine harvester; well, a programmer neither invented nor made computers - or compilers, or most of the ideas they apply.)

I kind of believe, I think not controversially, that compensation results from supply, demand, and a bunch of more or less arbitrary rules which either affect supply & demand or directly affect the price (price controls, visa regimes, etc.) Productivity (value created) sets an upper bound for compensation (well, actually, it doesn't, perceived productivity does; and even that isn't true - building a barely working website for the government for several hundreds of millions of dollars is one of the countless counter-examples), but productivity certainly does not set a lower bound for compensation - competition does. How much labor you save is beside the point.


The business doesn't care. They try to narrow down the potential employees to those who can do the job and then pick the cheapest.


I know your question is rhetorical, but a single combine harvester driver can 'feed' about 10,000 people in a couple of weeks. If the driver is the owner/operator of a farm, that's all they do, but there are some who do the circuit, starting in Texas in May and finishing in Northern Alberta in October.


I think SW engineers have to go through a lot of of specialized training that is short term in nature. Friends in the med field studied a lot to get the job but they hardly have to spend as much time as I do to keep up. I'm only in my mid 30s and a majority of the tech I use was invented after I graduated.


https://en.wikipedia.org/wiki/Continuing_medical_education

Doctors have to do 50-80 hours per year of certified continuing education thingies. That's probably way less than the average software engineer, but at least now we have a concrete number :)


That's formal continuing education. I'd like to see the concrete number for software engineers. There is no similar standard for continued training. Sure, software engineers are always learning new things, and many do so intentionally, but my guess is that the average amount of formal continuing education is far less than doctors.


Sorry ... have you seen the quality of continuing ed classes for doctors? Clinic decor 101, computer billing systems 101, sign in your hours at the exit, etc.


More like "Prescriboflex 101" , "Xyloprescribex 101", enjoy the buffet at the baseball game etc


Hilarious but effective argument:) I'll start using it. Thanks!


Value and worthiness are two different things. If a CEO is valued at 12m/y and another one at 6m/y that does not mean one is worth twice as much, nor does he bring in twice more revenue. I hope one day you'll realize that one way or another everyone is worth more or less the same (eg societies need both good software devs, farmers, doctors, teachers, cleaners, carpenters etc) and we are only valued in very extreme ways.


I don't think anyone is going to agree with you here on this board, but there are plenty of average or substandard software engineers that also along for the ride that do not pull their weight.

I'm taking this study at its face value, and it is quite interesting.


I clicked around the PayScale and IMF pages and could not find how they define "Software Engineer". Is this the same as "Programmer" or "Software Developer"? These titles are quite broad in some places. For example where I sit now, we are all "programmers". However one of our programmers is a CPA + some other certs and spends as much time talking to accountants, lawyers, reading IRS notices as she does spec'ing out and developing software. Is she a "Software Engineer"? I spend most of my time fixing bugs and operating our software systems does that make me a "Software Engineer"? I program a lot sometimes but I'd hardly call what I do engineering. I'm in the U.S. and we don't have formal engineering accreditation for software.


Peculiarly, in Romania, the median income of a software dev is 0.7 times the average income whereas in neighbouring Bulgaria, the factor is 3.2. Does anybody have an idea why?


The dataset probably has a huge error margin. In my observations, the factor in Bulgaria is almost 4 and in Romania it is something like 3-3.2.


Am I the only who thinks that the "average income" in a country is a meaningless metric? Depending on the area (e.g. big city, desirable area, etc) average salaries and cost of living may be very different. It is easy to see in the US for example.


You are quite right. I never had an idea how immobile I would be as a tech worker. The best tech jobs are concentrated in a few, high cost of living cities. While we can work remote, the quality of the career opportunities are not the same.


The use of the term Engineer is very unfortunate. In many places (Texas and Florida come to mind) one cannot claim to be or perform the functions of Engineering without being properly licensed and member of a board of professional engineers.


If I engineer software, then I can be described as a software engineer. I couldn't be described as a licensed PE (because I'm not and don't claim to be). The fact remains that "software engineer" is a common industry term. What is unfortunate is FUD from various Boards of Professional Engineers trying to appropriate the term for their sole use.


I'm in the 90th percentile in household salary in my country. I'm single so double my salary to accomodate the 2.5 people living on average, and I jump to to the 93rd percentile.


Comparing software engineer's salary with other graduate's salary would have been more meaningful. Instead of with general population.


There is no requirement that you have a degree to be a software engineer.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: