There are tens of thousands of unfilled software engineering positions across the United States and easily hundreds of thousands of unfilled software engineering positions globally. How preposterous to announce extinction of a position that is so competitive and sought after. Ok, let me explain my position. First, some background.
Decades ago, when software engineering became a recognized discipline within university engineering programs, the graduate with a computer science engineering degree would seek a “software engineer” position. After several years writing software, almost universally a five year minimum, the skilled and “tried” degreed software engineer could expect a promotion to “Senior Software Engineer”. This promotion carried with it an expectation of not just “time in the trenches” but a level of experience, both breadth and depth in the field. It was expected that a Senior Software Engineer would mentor less experienced software engineering peers. The Senior Software Engineer would have experience across the whole software stack including server development experience, database design and architecture, as well as front-end work such as desktop and web development experience. The Senior Software Engineer role carried with it, a level of “fit and fitness” to tackle the hard problems, to ask the tough questions, and be able to arrive at a conclusion on how to solve the problem, or propose a different solution.
Today, as more and more software must be developed to solve the world’s problems, it’s clear that universities are not churning out software engineering professionals fast enough to keep up with the world’s software engineering demands. In the United States, tens of thousands of H1-B Visa applications are applied for, and filled, a large percentage of these are for software engineering positions. The basics of economics, supply and demand drive the world’s software engineers to the US shores.
With that background, let me explain my outlandish blog post title “‘Software Engineer’ Position Extinction.” Truly the need for more software engineers has never been greater. Over the last decade, with the rise of the smart phone and giant shift in how consumers access the internet, the shift from desktop to smart phones, competant mobile developers have become highly sought after. With a shortage of supply and such a steep demand curve, the economics mandate that the cost of acquiring such a software engineer will indeed rise. Salaries for software engineers have probably risen faster than most other industries. In 1992 the average starting salary for a software engineer graduating with a BS in Engineer would be between $28,000 and $32,000. Today it closer to $80,000-$100,000+.
Well established companies rely on Human Resources to make sense of salaries, positions, etc. HR uses a tool called salary bands (or range) to bring order and some sense of fairness to the sticky area of salaries and compensation. For example, a Software Engineer I may have a salary band of $80,000 to $95,000 while a Software Engineer II might have a salary band of $90,000-$105,000.
With the meteoric rise of software compensation in the late 1990s with the rise of the internet and surge in demand, these salary bands were adjusted significantly upwards. After the dot-com rise and collapse things stayed relatively stable for a short few years and then in 2007, Apple introduced the iPhone and changed the landscape of computing forever. This warranted a shift in salary bands but none came.
Instead, what I’ve witnessed is position extinction. Within twelve to eighteen months of graduating with a bachelor’s in engineering, the high demand for software engineers, a robust economy, and the shortage of software graduates, will allow the new software professional to easily outgrow the Software Engineer salary band in all but the most static industries. With many new software engineering candidates receiving multiple salary offers, HR is limited in its options to attract the candidate. While the experience of the candidate may easily align with well established expectations, the salary band no longer fits the competitive landscape. Thus HR is faced with two choices, find another candidate or bump the candidate into the next higher salary band. Software Engineer band is a very short rung on the salary ladder to Senior Software Engineer, even if the candidate’s skills do not match the new position.