How to Avoid a Too-Common Source of “False Negatives” in Tech Recruiting

Mark McWiggins
4 min readFeb 15, 2021

--

Another Codesity? Arrgh …

Do I really need to take the laptop with me when I take a “bio-break”? Read on.

First, to define terms. In any selection/sorting scheme, you want to sort the desirable from the undesirable, but no such scheme is perfect. The two classes of errors:

  • False Positive: your scheme marked “desirable” to one who was unqualified/undesirable
  • False Negative: your scheme ruled out one who would have been a fine asset for your team.

Say you want to hire a computer programmer. What do you do to tell if she really has the skills you need?

You could just ask during the interview. But some people talk a good program, but may not actually be able to program as well as they talk.

So in recent years there have been testing companies (HackerRank, Codesity, and others) that allow companies who want to recruit to put candidates through a test like this:

  • Take maximum 2 hours to solve these three problems
  • Use any computer language you want; we support a bunch of them
  • We’ll supply the test data … plus a bunch of hidden ‘edge cases’ that you have to pass too! (You can still see this data by adding ‘print’ statements to your code. But why?)
  • Don’t use any other source of information

For a while, the “don’t use any other source of information” was unenforced, but recently some tests have gone further (“we are watching your other browser tabs”) or even (“you have to leave your web camera on for the entire test”).

The big problem with all of these is that, at least since the emergence of Google and StackOverflow, the ability to use the Internet to search for information you don’t know has been an essential part of any programmer’s job! A secondary problem is that many of us don’t do our best work with someone looking over our shoulders, much less with a web camera staring for two hours while the clock ticks down.

I have learned at least one new tool/language/system every year since at least 2013, but that leaves hordes of new stuff that I haven’t come across.

That’s not to mention the algorithms you are supposed to know without Googling.

Finally, when is the last time any programmer had a 2-hour deadline?

The answer to the question you have after reading the opening line: yes, I took the laptop with me (angled away from me during the ‘bio-break’), but I needn’t have bothered. I didn’t do well enough on the stupid test to pass anyway.

The job entailed debugging C++ and writing new Python. The tool supposedly supported both. I started with C++ but it had been long enough that I’d done more than maintain existing code that I switched to Python. And the tool’s Python interface was broken. They’re bad enough when all parts are working as specified. But there is no appeal; the company assigning the test just passed on my candidacy with no further conversation.

For programmers who have as much trouble with these as I do, how to cope? Often I don’t find out the deal until I get two or three interviews into the process, and then I hear “hackerrank” or “codesity” and my heart sinks. I have occasionally passed these, but it’s rare enough that I find them very discouraging and if I know this is part of the interview I can just avoid the whole company and focus on those who use one of the methods below.

What are some better ways to judge tech talent?

  • Since every job lately is remote, there is no “code on the board” (which I had to learn to do by failing several times) … the replacement is this thing Coderpad, where the interviewer can watch in real time. This isn’t my favorite, but it’s better than one of the timed things above.
  • Google uses “structured interviews”, trying to ask each candidate the same questions the same way, to avoid unconscious biases and other glitches of interviewer psychology.
  • Some companies use take-home tests over a weekend, which eliminates the “two hour deadline” and the “no Googling” problems.
  • Another company I spoke with recently uses a pair programming exercise with candidate working alongside an existing developer. This seems better, though I haven’t had the experience yet.

In conclusion: if you are using HackerRank or Codesity or one of their competitors to screen tech talent, you are generating false negatives and screening out people that could be assets to your work.

--

--