Monday, 30 August 2021

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

Title taken from here: where there is lots of speculation about why job searching in software is so Kafka-esque.

Without fail, every job I have ever taken is one where I was not super qualified but the other people in the job were like me in some way. Either they were independently minded, immigrants, liked Lisp for whatever stupid reason or wanted to do great things with people who wanted to do great things.

So looking for a job, in software, is about finding people like you. You can be perfectly qualified for the position, but if it's a company full of Chadbros, they want other Chadbros, if it's a company of bronies (yes, I've seen one, it was hilarious, and I loved it), they want people who don't challenge their bronyhood.

Let's take a look at the "About us" screenshots from some recently "Who's hiring" from Hacker News. Note that I'm absolutely not picking on these people, just pointing out some observations.

Commonality here could be: peppy personality

Commonality here could be: fantastic hair

You can keep going and they will all pretty much appear to share some commonality.

For comparison, here is a picnic:

Commonality here could be: people who like to have fun

Notice the picnic have a different "kind of people", even though presumably they all love to see their kids have fun.

So why do tech companies end up looking like the above?

Very simply: they know "their" kind of people and know how to get along with "their" kind of people. Whether this is brony, chad, young, old, culture 1, culture 2, etc, that is what _all_ interviews are about. The actual questions asked in the interview do not matter beyond basic some competence.

This is why interviewing has become a job in itself. Some people think it's perfectly normal to have 5 rounds of interviews but what is really happening here is: "would you like to spend time with this person".

This is also why networking is the best way to get a job if you are looking. You are already "their" people.

If you go for an interview, your job is pretty much to find out if you are compatible. It's a date. You'll know you're in if they help you eagerly with whatever fizzbuzz question they give you.

Yes I know people will say "how dare you, our interview process is supremely objective", but to provide my own anecdata, I've never gotten a job on technical merits, and I've had more than one offer over the years from big tech. Why I didn't take them is another story.

Many years ago, I was interviewing (blind) with one of those "interview with us and you get a job at FAANG" shops. I nailed everything technically, to the point where they said I was the best they had seen (could have been stroking my ego, who knows). I go onsite, and it could have been a bad day, they didn't like my hair, but the chemistry that was there remotely, on the days before zoom, disappeared and even though I nailed their onsite technical interviews as well - implementing Tetris I think - somehow, there was a complete cold distance. Shit, I even did it in Clojure, a language I hadn't learned before that day. So it wasn't technical at all.

It took me a while to understand what actually happened. They were not my people and I was not theirs. In fairness, I am not most people's people. It is what it is.

So look for people who are like you along some axis, or try to find some commonality beyond just answering the questions if you really want a shot at that job.

I realize that adds yet another dimension but in my opinion, it's the most important one.

My honest advice if you are looking for a job is: enjoy the tech interview process. The questions that everyone complains about can be fun and an opportunity to learn, whether you get a job is not even relevant. It's basically luck of the draw in the end. And focus on first impressions, those matter quite a bit.

No comments: