Updated Numbers on Software vs Hardware

    A few weeks ago I started writing an update to my previous blog post comparing technical career disciplines. In that post I collected job posting numbers across specialties and locations and found that software engineers had 17x as many job opportunities as mechanical engineers at an average of almost double the compensation. And that blew my mind. That was in 2020. Looking back from 2024 it's obvious that those numbers were strongly skewed by covid lockdown which at that point in time was recently in full force. Covid lockdown both exploded hiring in internet services and commerce and also severely dampened hiring in almost all other fields which certainly had a strong effect on the numbers I collected at that time. Considering that, I wanted to collect a new dataset in a less abnormal time.

    So I started writing an update and I started collecting new data. However, as I said, covid lockdown is now over and I'm not confined to my apartment like I was in 2020 so the prospect of spending days collecting and sorting data (without getting paid to do it) is less enticing than it once was. I collected the first few bits and then I set this off to the side and forgot about it. And this morning I found it again and thought it would be a shame if I never finished it, so I'm publishing the bits I do have.

    I collected job posting numbers from LinkedIn once again. I no longer have accounts with Indeed, Monster, or CareerBuilder. And LinkedIn has changed their APIs. It's easier to collect very large numbers of job postings but I can no longer filter and search salaries as easily as I could in 2020. I also started looking for college graduation numbers but I neglected to write down my sources in the 2020 article (all I remember is that they were non-profit reports) and I haven't found anything comparable. I did find the National Center for Education Statistics but their website doesn't seem to have data for the most recent few years. (It might, but I didn't spend much time looking.) So all I have here is numbers of job postings in the US.

    I changed my analysis a bit, focusing on states rather than cities, and I thought it might be interesting to look for trends against a few basic economic markers like GDP per capita and population density. The few correlations I found are not particularly surprising but they confirm some of my assumptions at least.

 

Job Postings Per Person per State
(Washington DC excluded as it throws off the scale)

    In the United States of America in 2024 February I found that there are 5.37 software engineer job postings for every one mechanical engineer job posting. (Kentucky had the lowest ratio of any state at 1.14 and Maryland had the highest of any state at 19.51) This is far down from the 17 I found back in 2020, but still very, very high considering I would guess university computer science enrollment has not tripled in the past four years. (In all comparisons I noted three rather extreme outliers, Maryland, Virginia, and Washington DC. All three had extremely above average numbers of software job postings per person and Washington DC also had an extremely above average number of mechanical engineering job postings per person, though not as extremely high as for software.)

 

Software Job Postings Per Person versus GDP Per Capita
(Outliers (orange) are Maryland and Virginia. Washington DC is excluded as it throws off the scale.)

 

Mechanical Engineering Job Postings Per Person versus GDP Per Capita
(Maryland/Virginia in orange, Washington DC excluded)

    I also found a moderate correlation between the number of software job postings per person and GDP per capita. In other words, there are more software jobs in more affluent states. The correlation is much weaker for mechanical engineering jobs.

    I found no significant correlations between the rate of software job postings and population density, rate of all job postings, or rate of mechanical engineering job postings.

    So all in all I didn't find any major surprises here. Assuming college enrollment and graduation rates have not changed significantly in the past four years, there are still vastly more job opportunities available for software engineers than for mechanical engineers. Perhaps 3x as many per candidate. And I can attest from personal experience that compensation is still much higher in software than in mechanical.

    I'd like to list some acknowledged limitations of my methodology.

  • I have not conducted a comprehensive review of job titles. I only searched for "software engineer" and "mechanical engineer". I did not consider any of the multitude of titles that do exist underneath either of those umbrella terms.
  • I didn't consider salaries this time around as I can no longer see a convenient histogram on LinkedIn like I could in 2020.
  • I didn't consider a wide array of job posting sources. I only looked at LinkedIn.
  • I didn't consider industry layoffs. One of the effects of the extreme over-hiring in software engineering in 2020 was significant layoffs in some software companies in 2022-2024 and this certainly has a strong effect on job satisfaction and career outlook.

     My beliefs on this subject have not changed significantly in the past four years. Any student who is capable of doing mechanical engineering is also capable of doing software engineering. And if any individual loves one more than the other then they should probably pursue the one they love, the one that they're excited to do every day. But all students should be aware that there is vastly more opportunity at the end of one pipeline than the other. Personally, I made the switch from hardware to software a few years ago when I reached a point in my life where I still loved being an engineer but I no longer wanted my job to define my life. I found a comfortable role that frankly is not as much fun for me and certainly not as inline with my talents as previous jobs were, but that is still very enjoyable and very engaging, provides even more room for long-term growth, and provides compensation and comforts that support all the other things I want to do in my life outside work. So I hope this information and this perspective is useful to someone who has a decision to make.