“Software Engineer” Position Extinction

Software Engineer Salary Bands
Software Engineer Salary Bands

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.

Technical Interview Trends

source code

Over the past year or so, I have observed a growing trend used by hiring companies early in their interview process of computer professionals. As in the past, the recruitment / interview process begins with an initial contact by a recruiter, or with a job seeker visiting a job board. Once the job seeker expresses interest in the position by clicking the online job lead, the job seeker is presented with a form in order to upload a résumé, or complete and submit an online job application. This has been the norm for many years. 

This leads to the next step in the interview process: further narrowing the list of possible candidates. This step is where I see the most change taking place, and this change, I believe, will affect the future of high tech job interviewing: Assuming the candidate’s résumé is determined algorithmically to be a goodmatch, and the candidate has shown interest in the position, the candidate will receive an email with instructions to complete a technical assignment, or an online technical challenge. The self-paced technical assignment could be short or long, but typically ranges from a couple of hours to a couple of days. In the case of an online technical challenge, these are typically time-boxed between 30 minutes and one hour in length, and focus on technical problem solving, and algorithms. Once the technical challenge is completed, candidates should expect their submission to be analyzed by software algorithms, unit tests, etc. Unsuccessful candidates will receive computer-generated decline responses, while successful candidates will receive instructions for the next phase in the interview process. While the technical problem solving, and algorithms interview style is not new to computer professionals, especially at large comanies like Amazon, Apple, Facebook, Google, Microsoft and Yahoo, the widespread use of online assessment tools and automation of results is. 

The high tech interview process is changing rapidly and successful job seekers must adapt. Your online professional profile and résumé might get you into the interview funnel, but your ability to complete increasingly complex technical challenges in time constrained, online formats, will be required to move you through the interview pipeline. Time to brush up on your computer science fundamentals!

Cleaning up the (app) store

My original post is here on LinkedIn.

Apple is finally making good on their promise to clean the (app) store shelves and it’s coming sooner than you think. January 1st is the deadline Apple has given many app developers to clean up their own mess. What’s interesting about that date is how the Apple app review process mostly grinds to a halt after December 22 when most of Apple (except retail) shuts down for the holiday break.  What I also find interesting (and refreshing) is that Apple is broadening the scope of what they consider as candidates for removal or rejection. Not only are they targeting template-created apps from commercial app-generation tools, but also apps which are low quality, or even white-labeled apps.  What is a white-labeled app? A good example of this is a little league sports team app that is customized by changing basic attributes like app icon, color, or labels for each team or league. Apple has decided to push app creators to up their game. Apple wants well designed and developed apps offering value to the market. Quality over quantity.  I’m looking forward to the app store landscape ahead. What are your thoughts?

App Store Review Guidelines