Some Interesting Numbers Regarding Engineering Disciplines

    I'm a robotics engineer. In a typical work day I'll chase bugs through mechanical, electrical, software, and mathematical domains. I have a bachelors degree that says "Mechanical Engineering", a master's degree that just says "Engineering", and currently I spend most of my time studying and creating software. So I've always considered these different disciplines, math, software, electrical, mechanical, to be roughly equivalent. They're all difficult. They're all essential and ubiquitous and growing. But they're not all growing at the same rate. Over the past seven years in which I've worked with half a dozen startups and research labs, it has been painfully obvious that in the 21st century hardware is considered to be a necessary evil and almost all investment, growth, and profit is in software. I decided a long time ago that when (inevitably) I leave robotics and take a new job title, that title should be some variant of "Software ...", rather than "Hardware ..." or "Mechanical ...".

    Periodically, over the past several years, I've put together numbers to try to get an idea of exactly what I'm up against. I'll look at job postings on LinkedIn and Indeed, I'll count startups and attempt to categorize them and their funding, I'll look at salaries listed on GlassDoor, etc., but these short efforts were never very organized. Additionally, I always included the word "robotics" in my searches which profoundly limited and colored the results I would get. A few days ago I decided to collect a larger, more general dataset and I was quite surprised by what I found.

    You can try this yourself. Go to LinkedIn. Or go to GlassDoor, Indeed, CareerBuilder, or Monster. Go to any job board website you want. Look at any city you want. Search for job postings for "mechanical engineer". Then search for "software engineer". How do the results differ? In general, as of 2020 May, you're probably going to get anywhere from 5 to 50 times as many results for "software engineer" as for "mechanical engineer" in a given location. Not 50% more. Not three times as many. Dozens of times as many. And on average, those software engineering roles will pay 50% to 100% more than mechanical engineering roles. I knew there were more software roles available. I knew they paid better. I didn't realize there is literally thirty times as much money available for software engineers as for hardware engineers.

    I searched for engineering roles in my current home of Austin, TX. There are 77 jobs posted for "mechanical engineer" on LinkedIn. 99 for "electrical engineer". 2,110 for "software engineer". Twenty seven times as many. Salaries for mechanical engineers range from $18k to $186k and salaries for software engineers range from $24 to $392k. Austin is a quickly growing city and a major tech hub, so I thought perhaps it wasn't representative of the larger world. I was wrong.

Job Posting Ratios in 10 Largest US Cities (largest by regional population)

200 Largest US Cities

    Across the United States, there are somewhere in the neighborhood of 17.3x as many software job postings on internet job sites. That's 17.2x in the 10 most populous metropolitan regions and 17.7x in a regular sampling of the 200 most populous regions. And according to GlassDoor, those software jobs pay almost twice as much on average. (FYI, the number of mechanical:electrical jobs is ~1 and salaries for electrical jobs are a few percent higher than for mechanical jobs on average.)

    But the United States is a particularly affluent country with a particularly advanced tech sector. Maybe these trends don't hold for the rest of the world. But they do. Around the globe, in every major metropolitan area, and right on down into moderate and minor cities, software engineering jobs outnumber mechanical and electrical jobs on average 18:1. Results from Europe and Asia are identical to results from North America. African and South American cities don't appear to be very active on LinkedIn or Indeed, but in the cities that do have significant search results, the trends hold. Johannesburg Metropolitan Area has 25.5x as many software jobs. Sao Paulo has 30.3x.

10 Largest European Cities

10 Largest Asian Cities

10 Largest African Cities

10 Largest South American Cities

10 Largest North American Cities (outside USA)

10 Largest Australian Cities

    Okay. So software engineering roles outnumber mechanical and electrical engineering roles on internet job boards. Internet jobs are posted where internet people will see them. Hardware jobs are probably posted closer to their home. Perhaps. But when I looked up the largest employers of mechanical engineers, all of those company websites also show significantly more open positions for software engineers than for hardware engineers (mechanical and electrical combined). That includes Ford Motor Company (1.9x), General Motors (3.5x), General Electric (1.9x), Boeing (3.5x), Johnson & Johnson (7.8x), John Deere (7.0x), Lockheed Martin (4.6x), Exxon-Mobil (1.1x), and Chevron (3.5X). I think that's the last nail in the coffin. Across cities, continents, and industries, there are simply dramatically more (and higher paid) jobs available for software engineers than for hardware engineers, be they mechanical, electrical, or other.

    So here's the problem. I wasn't expecting these results at all. If I had found twice as many software jobs overall, I wouldn't have been surprised. If I had found ten or twenty times as many software jobs in the Bay Area, I wouldn't have been surprised. It makes sense that there are more software jobs than hardware jobs. It's 2020. Software is an essential part of almost everything. But good god, 18x as many job opportunities? Paying twice as much? Everywhere? I wasn't expecting to find a disparity anywhere near this magnitude. I thought I was a reasonably well informed professional. Why were my expectations so wildly inaccurate? I think it's because of the expectations I developed in university, the length of time that I spent in academia, and the fact that I've been immersed in an unusual field like robotics where specialties blur together. When I enrolled in undergrad (in the long ago of 2010), I spoke to university advisors and professors, I read through curriculums and compared class statistics, and eventually I decided that mechanical engineering probably would give me the most flexibility in my future career. That was ten years ago, and I don't have job statistics from back then. But I have job statistics from today. And also I have university enrollment statistics from today.

    My alma mater, The University of Texas at Austin, has 1,645 students in the mechanical engineering department and 2,305 students in the computer science department. 1.4x as many students for 18x as many jobs. That's a bit odd. Other top-tier universities have similarly low ratios, ranging from Georgia Tech (3.0x) and Cornell (2.5x) down to Purdue (1.4x) and U. Illinois Urbana (0.8x). This isn't only at high-ranking universities. It appears that this is the norm nation-wide. According to general statistics I found, the United States of America as a whole produced 65,000 computer science graduates and 43,000 mechanical engineering graduates in 2019. A ratio of 1.5. Why? Universities, top-tier universities with world-class leadership, are churning out hundreds of thousands of bright young professionals based on the needs of last century's industry. The mis-match between university degrees and industry jobs as of 2020 May is astonishing. When I was an undergraduate student a whole six years ago, the engineering professors liked to tell jokes about the job prospects for liberal arts and humanities students. I wonder what kind of jokes the computer scientists are making about engineers today.

    So what does this mean? As far as I can tell it means there's a glut of hardware engineers. Perhaps not an absolute glut. Maybe the number of people with hardware engineering degrees does not currently exceed the number of hardware engineering jobs. But, anecdotally, I finished my BS in 2014 and I remember that a good number of my friends who had accredited engineering degrees from a top-tier engineering program quickly found themselves in states of unemployment and underemployment that lasted years. (Many of these people have since made significant investments on their own to pursue software jobs.) At the very least there is a relative glut of hardware engineers compared to software engineers, worldwide. If you ask professors for advice as I did, probably they'll hedge and tell you that hardware engineering and software engineering are both good careers. And it's true. They are both good careers. But if you're smart enough to complete a top-tier engineering program then you're smart enough to complete a top-tier computer science program and students should be aware that one of those paths has 36x as much opportunity at the end as the other. For any students who are on the fence like I was, I will be the first person to tell you that I love mechanical engineering, that it's fascinating and exciting and wonderful. I wholly support studying it as a hobby, but it's a 20th century career. Focus on software if you can.