US Job Outlook for Software Developers, Quality Assurance Analysts, and Testers
bls.gov
bls.gov
Interesting that the government continues to peddle credentialism for software developers. I personally think a CS degree is still a strong positive signal but it’s hardly a requirement anymore
I was job hunting earlier this year and every software development job pretty much had that wording.
> The Occupational Employment and Wage Statistics (OEWS) program produces employment and wage estimates annually for nearly 800 occupations. These estimates are available for the nation as a whole, for individual states, and for metropolitan and nonmetropolitan areas; national occupational estimates for specific industries are also available.
On this page is https://www.bls.gov/oes/mb3-methods.pdf
> Probability sample panels of about 180,000 to 200,000 establishments are selected semiannually. Responses are obtained by mail, Internet or other electronic means, email, telephone, or personal visit. Respondents report their employees’ job titles or occupations across 12 wage ranges. The job titles and descriptions are used to classify workers into occupations in the Standard Occupational Classification (SOC) system.
> Estimates of occupational employment and wage rates are based on six panels of survey data collected over a 3-year cycle. The final in-scope sample size when six panels are combined is approximately 1.2 million establishments. Total 6-panel unweighted employment covers approximately 80 million3 out of the total employment of over 140 million4.
They're not scraping. They are calling up a hundreds of thousands of companies and asking them "how much are you paying people with this classification?"
They occasionally redo the classifications based on industry trends.
Currently, the programmer related job listings https://www.bls.gov/oes/current/oes_stru.htm#15-0000
15-1251 Computer Programmers
15-1252 Software Developers
15-1253 Software Quality Assurance Analysts and Testers
15-1254 Web Developers
15-1255 Web and Digital Interface Designers
(note that the OOH and OES can get out of sync)Go back to 2020 and you'll see https://web.archive.org/web/20200508015238/https://www.bls.g...
15-1251 Computer Programmers
15-1256 Software Developers and Software Quality Assurance Analysts and Testers
15-1257 Web Developers and Digital Interface Designers
And going further back, in 2014 https://web.archive.org/web/20140704000413/http://www.bls.go... 15-1131 Computer Programmers
15-1132 Software Developers, Applications
15-1133 Software Developers, Systems Software
15-1134 Web Developers
And even further back, you won't see the Web Developers https://web.archive.org/web/20060813114102/http://www.bls.go... 15-1021 Computer Programmers
15-1031 Computer Software Engineers, Applications
15-1032 Computer Software Engineers, Systems Software
These classifications are buckets that the BLS creates trying to loosely get a single mode in the wage data (if there is a bimodal distribution of the wage data, then there are two different classifications).When someone applies on a work visa, they have to fit into a bucket somewhere. The definition of that bucket determines which type of visa they may be approved for. If it requires a degree, then its the H-1B. If it doesn't require a degree, its likely a H-2B... and that in turn leads to other implications (the H-1B is dual intent and can lead to a green card while the H-2B isn't).
It’s no surprise that almost all boot camp grads I’ve seen in the industry come from Ivy league colleges or are URT.
Kind of like how most boot camp grads will do the specific things they learn in boot camp very well but then fall apart when you change it up on them.
Just that I’m more surprised when I see an awful dev with a degree, because they had years to study.
The thing I see is, either it clicks or it doesn’t. And when it does click, you can go deeper.
But, yes, if you're willing to work your way up the ladder - you don't need any school.
You can probably get a good job faster by graduating from a good school, though.
Not saying that not having a degree is somehow a more-positive indicator, just that I agree with your sentiment that it's hardly a requirement, and that it's just one signal among many.
FWIW, I have an inclination to believe the reason why node+express+react stacks are so popular among startups (at least in the NY scene) is because all the full stack bootcamps use that stack, so it makes it easier to hire. I also decided to use a similar stack that only used JS for the same reason. I feel as though some aspects of "software development" are closer to to a trade skill. Certainly there are far more complicated directions, and that's where degrees and advanced education are meaningful, but if you just need a simple CRUD app you probably don't need a masters in anything.
It's not unique to any one thing / field / area.
And you think that a degree helps with that? I've had coworkers with MS in comp-sci who had no idea how to implement stuff in a practical, efficient manner, and other coworkers with no degree who were able to grasp the best practices from the get-go. I don't think the degrees are the problem. The problem is that the demand for software engineers has wildly outpaced our society's ability to produce quality ones, regardless of their educational path.
The fact of the matter is that the vast majority (80%) of professional software developers already have a bachelor's degree or higher: https://insights.stackoverflow.com/survey/2021/#education-ed...
Similarly with software engineering. Memorising good practice and following it is not difficult. Understanding why it is good practice and why it can be challenged is. A lot of the self taught folks stare at you like a brick the moment you step out of their knowledge area.
I dont want to sound patronising. I also met plenty of great developers without a degree, some even high school drop outs. But they rarely understood whats beneath the bonnet. They were absolutely able to deliver work and architect systems but it was always obvious that knowledge was based on what some popular dude wrote on a blog instead of actual knowledge.
The survey you posted doesnt show a breakdown per language.
Again, nothing wrong with not having a degree but saying that having a degree is a negative thing is just silly.
>saying that having a degree is a negative thing is just silly.
Don't put words in my mouth. I never said having a degree was a negative. I made an example of why I don't think it's relevant in the first place
That being said the gatekeeping of jobs to only people with degrees (especially considering how expensive it is in the modern world) is absolutely a problem. But I think that is more down to the cost of education (in an ideal world higher education would be free just as high school is). My bachelors degree is not at all related to the field I work in now but it gives me a huge leg up compared to pre college me.
I think the flaw here is in the question framing. It implies from the get-go there is a definitive qualitative difference between having CS degree and not AND that it is the determinate factor of quality or risk mitigation when the reality is both of these candidate are going to have behavioral differences you discover conducting proper interviews.
A masters degree is probably a negative signal though unless they did something completely unrelated like music for undergrad, in which case it's similar to a BS.
I don't think this is strictly related to software engineering, though. I think most people doing horizontal career transfers use some form of the above to achieve success.
"Our engineering is backed by MIT graduates"
"Our engineering is backed by the best engineers"
One sounds a LOT better to a client. It's a lot easier to sell a product when you can lean on an actual credential than a vague superlative. Even if your vague superlative is absolutely true.
Unless it’s crypto. Then I’m still “yeah but nah tho”.
However, government jobs almost always have a hard degree requirement. I'm not sure why this is. I wouldn't take government jobs as representative of the industry.
There are a surprising number of loopholes. For example, many federal engineering jobs require any one of the following:
1) A bachelors degree in engineering
2) Sufficient college coursework without a degree with relevant experience
3) A non-engineering degree with sufficient engineering coursework
4) passing the engineers in training (EIT) exam with relevant experience (which doesn't necessarily require a degree to sit for)
5) A professional engineer (PE) license (which, in some cases, doesn't require any college)
I do think HR is biased towards just looking for degrees. Probably out of either laziness or risk-aversion.
I'm not sure if this is still the case for people, but I faced a lot of discrimination from management over my lack of degree. Especially managers who "inherited" me. Some of it was petty too, like all the other devs on my team were software "engineers" but since I lacked a degree, I was a software "developer". AFAIK, it wasn't a salary thing either.
It's not difficult to get a degree, especially if you have experience in the field. So I would say that it's worth it.
can you elaborate on what you mean by this?
To me an engineer has a degree in engineering (including software engineering, which focuses on large-scale infrastructure, not algorithms). In many countries engineers are legally liable for what they implement.
I tell him alot since I want to be honest, I don't know how much longer extremely basic, low end website/api development will stick around. With Github Copilot currently I can see it almost replaced, but with what we get into in the future, I don't think we'll need people who at best call an api and display the data on a website with no other thought or architecture.
I guess I've never seen a position which only did API calls from JS and formatted data. That's always been wrapped up with develop/implement parts of the API as well. Maybe I've not worked in enough "enterprise" shops?
You can teach yourself pretty much all of a CS curriculum by buying a stack of textbooks listed on CS syllabi, and then going to town. Naturally, you’ll build projects while doing this.
Do some LC and prep for interviews.
You don’t need to get a CS degree to get SDE interviews. It helps, but isn’t necessary. And to pass technical rounds, you don’t even need to have read most of that stack of CS textbooks. You need some bits and pieces from that stack of books, and be quick on your feet with LC medium.
If your friend is good at standardized tests, then LC is right up their alley.
If the job listing on the BLS didn't specify that it needed a degree, then the software developer wouldn't fall under the H-1B or the TN visa. Instead of the H-1B (which is a specialist worker) it software developer would fall under the H-2B and anyone (degree or not) could get a visa because no skills are required... however that also means that it would fall into the "one time occurrence", "seasonal need", "peak load need" or "intermittent need" for people working on the H-2B visa.
Another "this makes things interesting" with a switch from a specialist worker to a non-specialist one, is that there is a list of countries that may apply to work on a H-2B visa... and it doesn't include India.
---
The job listing defined by one agency BLS has impacts on the way people can get visas and which visas.
Removing the degree requirement would effectively make it so that there are no even marginally qualified applications with a visa.
There are absolutely places with more progressive hiring practices, but this is not the norm. If you apply to XYZ Corp in any random city or town, they will have “bachelors in computer science or related degree” in the requirements section of the job posting.
Of course, the purpose of a job advertisement is to compel workers to apply. Companies don't write "bachelors degree" because they expect you to have a bachelors degree, they make note it because if you have a bachelors degree it will pique your interest: "Wait, I have a bachelors degree! I should apply."
One of those fun marketing tricks.
Other parts are real indicators of what they’ll filter incoming applications by. Education and experience are absolutely quantifiable indicators that recruiters or HR will often filter by before that resume lands on the desk of a hiring manager.
That may end up being incidentally true, but not the reason for sharing that information on the job ad. After all, there would be no reason for HR to apply said filters if the posting was prescriptive. It is there merely to grab your attention.
It is kind of like prices on product advertisements. If you fail to successfully barter with the merchant you very well may pay the price listed on the ad, but the price isn't listed as a commandment of what you will pay, but rather it is listed in order to capture your attention. "Huh, that's not a bad price. I should buy that." It's a marketing trick, is all.
That said, these days everyone has transitioned to "Bachelors degree or equivalent experience" so even if HR does hold firm to what the ad says, they aren't filtering by bachelor degrees anyway. That is a long outdated relic of the past that isn't subscribed to anymore as it has been realized that the 'indicator' doesn't actually indicate anything.
HR also doesn't want to spend all day sorting through garbage resumes. Some use resume parsing software (or form fields) to do this sorting for them, in which case, it is effectively prescriptive.
> these days everyone has transitioned to "Bachelors degree or equivalent experience"
Most tech companies hiring rank-and-file software developers, maybe. Definitely not every job. Pick your favorite job posting site and look at mid or upper management positions -- few accept "equivalent experience".
It's not, though. Clearly the resumes which don't meet expectations are arriving, else filtering would be unnecessary. So obviously nobody actually pays attention to the "requirements" as anything more than what they are: A marketing gimmick. And why would they? It's like the price on the product ad. You are still going to try and get a better deal. Just because someone suggested something to grab your attention does not set it in stone.
> Pick your favorite job posting site and look at mid or upper management positions
I'm not well versed in the best places to look, but I gave it a shot. Here are a couple I could find from companies I've heard of before.
* H&R Block - VP of Information Technology: "Bachelor’s degree in Computer Science or related field or equivalent combination of education and work experience."
But maybe we need to look beyond tech.
* World Wildlife Fund (WWF) – Vice President: "Post-secondary degree in science or policy fields relevant to conservation, or comparable work experience."
A similar story for companies I've never heard of held true, but fly-by-nights seem less relevant so I omit them here. Maybe VP isn't upper management enough?
Like xaml live preview somehow disappeared in my visual studio... And everything short of windows reinstall - it is still missing. Without errors or nothing. Please Mr HR that wants people with CS - send one of those to help me.
https://insights.stackoverflow.com/survey/2021#education-ed-...
I have a Master's degree and would say that it was overall a useful experience, given that many of the aspects of software engineering/development that I explored in certain courses I'd have glanced over entirely in a more self taught approach - something like risk analysis and business continuity plans (and how those might affect system design and development), deeper exploration of testing and in-database processing (though also the limitations of testing/debugging DB-side logic became more apparent), model driven development and codegen, as well as a dive into the system analysis aspects and something like 4EM and BPMN (the latter of which actually feels more useful). Note: some of this was probably in my Bachelor's as well.
For most positions, however, I'd suggest that such a degree probably isn't necessary, even though some bootcamps might also be lacking (they'll teach you how to get things up and running, but not necessarily the implications of the implementation, e.g. ORM vs no ORM, aspects of distributed systems and fallible networks, backpressure etc.). Nothing that working as a part of a team on an existing project couldn't fix, though.
> Interesting that the government continues to peddle credentialism for software developers.
At the time, however, I'm studying up for Java certification, which I haven't needed up until now, but there are some governmental projects where they are mandated and you don't get a choice. If you're working for a SaaS company or purely work in private sector projects (outside of consulting), credentialism probably won't be as common, but in other circumstances you'll have to deal with a bit more red tape.
If you look at the demographics of US [1], you see that dip below the age of 30, so there are fewer folks coming online to take the jobs of the people retiring.
Of course there's immigration, various other methods to incentivize more people to join the IT sector, but ultimately it looks like there's fewer people to handle more work.
[0]: https://en.wikipedia.org/wiki/World_population see especially the projections in the side bar.
[1]: https://en.wikipedia.org/wiki/Demographics_of_the_United_Sta...
Unless remote anywhere becomes widespread. Then it is both other countries and US salaries.
Should we expect the number of top basketball players to stagnate as well?
I get that there's far more software jobs than Pro sports, but is it relevant that world population is coming down? You'd think perhaps something like the number of CS graduates might matter most.
More people are retiring than joining the workforce AND there's already a shortage, so my thinking is the shortage will continue to grow assuming the demand remains stable or grows.
In China, there are 10 people currently working for every retiree. By 2030 it will drop to 2 people per retiree.
Now, it's one of the most popular choices, and there are also many people entering the field without degrees (bootcamps and the awareness that software skills can be learned outside of a structured curriculum weren't so common over 10 years ago).
For example, automation can remove one type of labor and increase the supply for services labor, like the combustion engine w/ agriculture. Also you can have increased demand by the popularization of new software interfaces, like smart phones or AR.
Could be that Copilot achieves sentience tomorrow we hit singularity and all SWEs will be out of job.
Trucking industry has been slowly automating itself, if I was a truck driver I might start looking for something else (if I was young) but at least they can see it coming.
Job Security. As long as you learn whatever new fad frameworks replace React.
Or you could just get out of UI development - and instead of spending all your energy on staying afloat - you can actually move forward quite easily.
That said, I've never been the type of guy you should be asking about what's cool or trendy, so maybe I'm just out of touch.
https://www.bls.gov/ooh/computer-and-information-technology/...
https://www.bls.gov/oes/current/oes151254.htm
This gives an indication of "compared to other jobs in that area, how many jobs are filled by people with this classification... compared to the national average of that ratio."
You can then use that information, for a person looking for a job, to search those locations for jobs as it is more likely to find those jobs there.
The "create customized tables" https://data.bls.gov/oes/#/home if you want a larger data set than the summary on the OES page.
You could a "for web developers, all metro areas, give me the employment, median wage, and location quotient" and then get that as a csv file which could then be sliced and diced again.
Remember that the wages are (1) based on a survey of 200,000 companies and (b) an estimate beyond that number. This is not self reported data. It is akin to how the CPI is calculated ( https://www.npr.org/transcripts/1015804773 ).
(But I sincerely hope it's not a fad as I've designed it to be the antithesis to the rabbit chasing and dogmatic nonsense that's plagued JS the last decade or so).
Are there any others you'd like to see/think would be helpful?
10 years is a long enough time horizon in tech for any number of inflection points to occur. My bet is this swings heavily in the downward direction as more specialization in the industry occurs, the usage of the title "software developer" drops, but the overall usage of software and "developers" increases e.g. small businesses using low code tools
(at least what I see in vacation business)
Luckily, the growth in the list of things for us to do is outpacing our ability to automate away the things we do.
Edit: I say it's silly, and then refresh the home page and see this is at #2 - https://news.ycombinator.com/item?id=33083279
OTOH I feel we're at peak now, the investment money is drying up and management will force efficiencies going forward.
This is a naive and pessimistic view. The software industry is much bigger than the VC bubble. See patio11s law for more details.
They had pharmacist as a growth career at +10% from 2010 to 2020, whole year after year, entry level and hourly payrates went down, easily verifiable by reading online forums. How can that be?
Then in 2020, they finally changed it to -3% growth, but due to the pandemic measures and people quitting the field, payrates have actually gone up.
They should be reporting changes in pay by quintile or even decile. And the new laws in CO/WA/CA/NYC requiring pay ranges in job listings should make it much easier to see which way supply and demand curves are moving in near real time.
Also, growth in number of jobs is not necessarily correlated with salary changes. You have to also consider the growth in the number of people entering that field. A PharmD used to be seen as an easy pathway to a guaranteed six figure salary (back when that was a much more rare and significant milestone). It's no wonder it attracted a lot of people into the field, which drove down salaries.
Software will probably see the same situation over the next decade or two. It seems like kids today see programming as a easy way to earn a great living, and many schools & parents are pushing their kids into the space.
I would expect it to be more biased towards employers. For example, pharmacists were complaining about only getting scheduled for 32 hours per week of work. That is a 25% reduction in pay.
They have also had to accept drastic decreases in quality of life at work, increasing their own personal liability for malpractice.
These kinds of things would only happen if the supply of pharmacists was outstripping demand of pharmacists.
> Also, growth in number of jobs is not necessarily correlated with salary changes.
For the purposes of their “job outlook” section, I do not see why it would not correlate. And not just salary, but pay to quality of life at work ratio, which is hard to define as a number.
Uninvested VC funds are still at extremely high levels (or as those in the industry call it: dry powder) [1]. There's some sources which report that aggregate counts are down relative to 2021, but only marginally; its still higher than 2019 levels. Part of that is because of the next bullet point (low investment activity), but another big part is: the Fed printed the majority of US Dollars in circulation within the past two years.
But VC investments are way down for 2022 [2]. Near-peak money, but low investment activity. VCs are just acting more conservatively. The economic slowdown has a big part to play in this, but days go by with bullish markets, low unemployment, pressure (from the UN, most recently) on the Fed to stop raising rates, a return to QE by the BoE, food on the shelves... as they say, the money is burning a hole in their pocket, investors expect returns, and it needs to be spent. I've heard one insider say that 2022Q3-2023Q1 may be one of the best times to seek VC funding, ever.
I think you're right that "management will force efficiency". I think this is a death sentence for many tech companies, especially as we talk about bigger ones; but they'll do it anyway.
- Killing moonshots is a classic round 1 for layoffs; but those moonshots are oftentimes what drives such high ratios for these companies; buzzwordy future revenue potential that sometimes works out. Tesla isn't priced like Ford for a reason, but if Tesla pivots to start looking more like Ford; their valuation takes a huge hit. And even if that fall lands their valuation somewhere near Ford, they're in a far worse spot because Ford didn't just lose XX% of their valuation; the markets (meaning: financing) don't care where you're at, they care how you've changed (I'm picking on Tesla, but this also applies to Amazon, Google, any big tech company).
- Its extremely difficult to do layoffs (or even freeze hiring) in software orgs. Product development is already slow in most big companies; layoffs won't make it faster (or maybe they would...) The percentage of time every developer spends with ongoing maintenance increases with every employee a company hires. Every engineer at a Big Co has experienced the classic "what service handles that, ok this one, wheres it running, huh that's weird but ok, who owns it, jesus of course there's no codeowners, shit this is actually critical to X Y Z, oh its got partial ownership between this team in Asia and this team in the UK..." now imagine that dysfunction, but through the lens of layoffs.
- Any layoffs are expected to trigger a cascade effect of secondary departures. Even if a company can lay-off the right people, non-critical, newbies, etc, to keep the core business going; many people who survived are now submitting resumes elsewhere, hiring is slowed because, uh, layoffs just happened, and your company now has a red mark in every potential applicant's hitlist. There are extremely few companies, let alone tech companies, that have done double-digit-percent layoffs then came out the other end stronger. I only say this to say that: companies don't just lay off people for no reason, and very few big tech companies have financial reason to do layoffs right now (except maybe Meta).
- There's billions in capital waiting to invest in ventures that can eat some of Big Tech's lunch. If you're the head of Google, this is what's scaring you right now. Its not just the economic slowdown. Its not just the seven figure salaries you've been paying people. Its that, despite or because of all that, you may have to do layoffs, or at least cool hiring, and you have to do that while swimming surrounded by sharks who want nothing more than to give those people you laid off a few million dollars to attack a problem you trained them to be a worldwide expert in.
- And even in that environment; those huge salaries Big Tech has been paying have led to actual financial freedom for a ton of people in the software industry. Combine that with smart real estate investments or passive income and there's a significant tranche of software engineers who are biting at the bit for a bull market to come around; then retire; or maybe try an independent business (for many I've talked to, as unrelated to software as humanly possible). This trend is NOT insignificant, will become more apparent throughout 2023, and will further pressure the already hot engineering job market.
I only wall of text this to support the position that I really think this industry is fine, and growing. Software is complex. Business is complex. There are basically zero signals, right now, which communicate to me that the engineering job market won't grow over the next decade.
[1] https://www.wsj.com/articles/venture-capitals-cash-stockpile...
[2] https://finance.yahoo.com/news/venture-capital-is-seeing-a-s...
Yeah its fascinating. Its a good reason the CBs want to hike rates, reset asest prices and get back to work. :)
In 2000 there were 1.2M people working in programming or closely related professions by my count. In 2021 there were 1.8M. Things are a little weird because they changed some definitions, but I think that I’m taking the stronger case.
25% growth in the US is actually slightly faster than the last 20 years.
That said, there's room to help devs in this world, and I'm not entirely sure if this is a lack of software, or a need for a human in the mix, but there's certainly gaps that can be filled to help the quality of releases that go out the door in these shops.
Data Scientists: +31% https://www.bls.gov/ooh/math/data-scientists.htm
The BLS predicted 30% growth, but it looks like growth in number of positions from 2010-2022 was 77%.
The old figure only included software developers. The new figure includes QA and testers.
The total number of software developers has gone up so much that I fear that its going to start dragging up the salaries of peer-occupations like Civil Engineering, which are fairly easily retooled as junior software developers, as the demand starts to outstrip relative supply.
Looking at the history of https://web.archive.org/web/20221003111240/https://www.bls.g... and the 15-xxxx set shows a change in how the BLS regarded the various fields. If you go far enough back, there were computer programmers, software developers (systems), and software developers (applications) as the three buckets.
The most interesting part (to me) has been how the web has been moved in and out of different buckets.