Where are all the good engineers?

Or: The 20 Percent Paradox.

The Pareto principle states that:

[F]or many outcomes, roughly 80% of consequences come from 20% of the causes (the “vital few”). Other names for this principle are the 80/20 rule, the law of the vital few, or the principle of factor sparsity. - Wiki

This principle is observed in various different fields and aspects of those fields. For example, it’s often the case that 80% of sales come from roughly 20% of clients. The wiki article gives a few examples of this principle. The important one to note is how this applies to computer engineering. Through observation, it seems like this principle applies in two ways: (1) 80% of bugs is caused by 20% of the code; and (2) 80% of a designed piece of software can be completed in 20% of the allocated time; conversely, the remaining 20% of software requires the majority of the programming effort.

The problem.

Recently, I’ve become increasingly frustrated at the recruiting process for software engineers. As a director seeking software engineers, it seems like the majority of candidates are grossly misrepresenting their skills (when I say majority, I mean roughly 99% of the candidates). For all of the candidates who purport (on their resume) that they have a certain set of skills backed by a number of years of experience at pervious companies, whenever it comes to the practical portion of the interview, it immediately becomes apparent that they do not have any of the skills they purport. I expect that many candidates will fib a little, overinflating their abilities; I also expect that on average, statistically, I would have gotten some candidates whose purported experience isn’t far off from what is represented on their resume. However, the reality seems to suggest that a majority of candidates are remotely suited for the roles that they apply to.

Why is there such a huge discrepancy? Are they all lying about their work experience? It seems incredulous that a majority of candidates would outright lie about their work history. So then, the alternative suggests that their work experience is legitimate and the skills they believe they’ve attained by working at those companies were legitimate. Does that mean those companies are incompetent? How can a candidate survive working at a company for 3-5+ years with their lack of skills? Either their former employers were ignorant as to their lack of skill, or they believe their skills to be sufficient, or they knew these candidates were poor performers but did not have the courage to let them go.

Observations.

Most of my mentees are junior software engineers. Many of them I’ve met as either referrals to a position I was trying to fill or a friend happen to mention that someone they knew recently got into software engineering and they’ve been struggling to land a job. What I’ll usually do when we first meet is give them a mock interview to gauge their skills. What is surprising to me is that they all ace the simpler practical coding problems (similar to leetcode). It’s surprising because they blow candidates with ~3 years of experience out of the water, yet they’re unable to land in-person interviews.

You might say that that’s because they’re entry-level and their resumes have no work experience. You’d probably be right about that. However, the discrepancy I mentioned above still holds. I’ve also interviewed many candidates who are fresh out of school or bootcamp (so similar to my mentees), yet none of them answers the leetcode-type questions with the same fluency as my mentees. Statistically, I would expect at least one candidate be able to do so. Then, are we saying that none of the fresh-out-of-school candidates I’ve interviewed managed to land other interviews?

A theory started to form in my mind. Is it possible that the majority of companies’ interview processes are so poor that it’s tantamount to just randomly offering candidates a job? I’ve asked friends who recently landed a job in FAANG type companies, who have approximately the same number of years of experience as I do, what their interview process was like. They were also asked leetcode type questions and high-level application architecture type questions. None of which gives the interviewer any indication of their experience or whether they will thrive in the position they’re looking to fill. Hearing this, I asked my friends point blank, “Did they ask you any questions during the interview where, you feel, allowed you to best showcase your experience?” The answer was a collective, “no”.

This is insane, I thought to myself. Is this observation something unique to software engineers? Maybe because software is so ephemeral compared to the other engineering fields that this less-than-ideal method of testing candidates’ skills is the best we have. Surely, other engineering fields have to do better. So off I went to ask people who’ve been both the interviewer and the interviewee at companies whose focus is on mechanical engineering. And it’s even worse. It’s seems like in other fields, it’s impractical to ask any practical engineering questions that would help the interviewer determine whether the candidate can do the job. For entry-level engineers, they’ll ask very simple questions to rule out the obviously poor performers; but for any other position where it’s required that the candidate have some number of years of experience, as long as their work history checks out, there’s no real practical portion of the interview to validate their skills! It’s basically only subjective team-fit questions and hand-wavy system design questions.

Even more questions.

So it seems like most of these companies are incompetent when hiring for engineers which explains why so many candidates purport to be experienced when they really aren’t. However, that results even even more questions:

  • How did these companies become successful in the first place?
  • After achieving success, how did they manage to survive for so long?
  • Do good engineers exist and where are they?

All three of these questions are facets of the 20% paradox.

I assert that the bulk (80%) of a company’s “product” (software if it’s a software company) is produced by 20% of its employees during the infancy of the company. So basically the first employees lay down 80% of the foundation of the entire company.

After ensuring that the company is on a trajectory to success, the good engineers cash out early and move onto the next challenge, leaving the remaining 80% poor performers behind. I assert that they are poor performers because they contribute only 20% of the company’s product.

At this stage, two things happen: (1) leadership buys into the idea that the remaining 20% of the product is the hardest to complete and (2) the remaining 80% poor performers buys into the Good Enough fallacy. The culmination of both of these beliefs is the Good Enough fallacy amplified. The decay is only staved off by how much the company is willing to overpay to keep slightly-better-than-poor performers working for them (consider how Fortran developers are currently highly prized). Tangent: I can’t help but think that Jeff Bezos instinctively foresaw the Good Enough fallacy without explicitly quantifying it:

Amazon will go bankrupt. If you look at large companies, their lifespans tend to be 30-plus years, not a hundred-plus years - Jeff Bezos, Business Insider

This dynamic isn’t too hard of a pill to swallow, just consider any large technology company. The longer they’ve been around, the less-exciting they are to work for. The stories you tend to hear from people working there is that these behemoths are too kludgy to innovate quickly, that there’s too much politicking happening, etc. (I’ll refrain to name names). Of course not all companies are like this, it seems like both Microsoft and Apple managed to reverse course.

The paradox.

The paradox isn’t really a paradox in the traditional sense. But it is a series of questions I have involving the 20%. If it’s true that 20% of people are directly responsible for contributing to the success of a company, then:

  • Why aren’t there more?
  • Is this because talent is genetic?
  • Or can it be trained?
  • Or is this a case where the 80% are not suited for the field they are in?
  • Or is there a larger globally causal effect at play?
  • Is the Good Enough fallacy inevitable?
You should also read:

The Good Enough Fallacy.

Good enough is not good enough. The Good Enough fallacy is an example of, what I call, The Causality Inversion fallacy applied against the Pareto principle. The Causality Inversion fallacy is where an actor, desiring a certain outcome, misattributes correlation for causality and actively applies the correlative condition, thinking that it is causal to the desired outcome. An common…