“If software engineering is in demand, why is it so hard to get a software engineering job?”

Curt Corginia on 2021-08-10

My response to an incredibly common question

Whoa, this person has MULTIPLE monitors. They must be hauling ass. Look, they’re writing code AND looking at a “Getting Started” page. Hire them. Photo by Safar Safarov on Unsplash.

The title of this post was a trending Quora question, with popular responses boiling down to “it’s not, the unemployment rate is 3.6%,” “there are too many developers and not enough engineers,” and “it’s a natural consequence of microeconomic theory.” It might be useful to elaborate on the last one, but I thought it would be a lot more fun to take a look at the absolute most popular answer:

“I was unemployed for many months. Waited hoping one day someone will hire me without requiring me to white-boarding. Yep it is worse than water-boarding.

After 7 months I realized — no other choice. Now I can white board in my sleep. Companies are in line to talk to me. They are ready to send flowers and even ready to send drivers to pick me up.

Nothing changed” — Aravind Akshan, Engineer Manager at [UNDISCLOSED]

Instead of providing a cliche response about the difference between developers and engineers, this legend pokes fun at the entire interviewing process. If you expand the other threads in this post, you will see a few arguments about whether or not the software engineer interviewing process is flawed.

In all seriousness, though, the response about economics is worth discussing. Job pay is heavily influenced by supply and demand. While there is a very high demand for software engineers, there are now 4.4 million software developers in the United States alone [Edited. The original sentence said “4.4 million software engineers”]. In other words, software engineers are not extremely rare, and a degree in computer science is not the golden ticket some people may expect. I think the popularity of computer science and the surge of coding bootcamps are a testament to how accepted this has become as a field.

Other possible reasons one may find it difficult to find a software engineering job:

What to Expect in the Job Interview Process?

Bananas.

There are lots of “opening strategies” you may follow. Maybe a company’s HR reaches out to you first on LinkedIn; maybe you choose to trust a third party recruiter. Your mileage may vary with third party recruiters (also referred to as “head hunters”), but to put it bluntly, there is a reason they have such a bad reputation. Some of them are really, really bad. The bad ones will try to set you up with a company that is not a good fit, they will “shotgun blast” requests to anyone and everyone, and they will not have your best interest in mind. What they want from the arrangement is money.

…Though, to be fair, that is probably also what you want.

Maybe you decide to reach out to a friend instead. Maybe you reach out to HR departments directly, or you decide to do what a zillion other people are doing and just try to indeed-easy-apply your way to success.

The initial call with HR

There are a lot of tech companies trying to make it right now, and some of them are pretty random. One company was delivering medical supplies via tiny drones. One company was trying to disrupt healthcare by making customers pay hundreds of dollars every month to see more doctors. The weirdest company I have ever interacted with was building a dating app…as if people would pay for an app where you swiped right to determine potential matches.

I wonder what happened to them?

It may seem like the initial HR call is just a formality, but it actually can be the first hurdle. An HR representative can ask you for your skill set, jot down some notes, and then decide whether or not you are a good fit.

The Automated Coding Test

This is my least favorite aspect of interviews. Some companies have you take an automated coding test to advance to the next step. I think it would make a lot more sense if companies had you do this immediately after applying, then moved you along to HR if you passed. They could have HR look at your resume, send you a link if they thought you were qualified, and then have a 30-minute talk with them if you passed.

The Coding Interview

This is really the meat of it. They have written entire books about this step.

Interviewer: I’d like you to produce a compressed string. For example, you may turn aaaabbc into a4b2c1. You may turn a into a1 Me: *immediately starts coding* Let’s use a hashmap Interviewer: Uh…well do you think you.. Me: Okay, so we’ve made a hashmap. Now let’s make a bunch of print statements

A hashmap is a useful tool, especially in these, but this isn’t an RPG. You don’t just immediately summon a hashmap and then crush every interview until you finally encounter the boss who can counter hashmaps (“oh no, guess I’d better bust out my ultimate move: The linked list!”).

In some leetcode-esque problems, you can get away with using an array instead of a hashmap (and you can use size 26 by subtracting ‘a’). Don’t rely on that for everything. Some of the simplest interview problems involve using a hashmap to take counts, and then going from there…you can’t just use a really big array without raising eyebrows.

The final interview(s)

This is the part where things get a little bit…hardcore.

You might have four interviews in the same day. Maybe one is behavioral, maybe two are technical but harder than what you’ve seen before…and maybe one is system design.

A Positive Attitude

A wise, mature person would treat the software engineer interview process as a pure learning experience. He, or she, would enjoy learning about companies out there for the sake of research, interacting with key players, and mastering the art of whiteboarding. It would just be like a fun game.

I don’t think of it like that, but a mature person would. Do what I say, not what I do.

Did you like what you read? If so, please check out our fake company, CORGICorporation. Don’t try to send a message at the bottom, though…we couldn’t afford a custom backend, so if you try to do that the website will just explode.