Take home tests

I’m currently looking at potential new jobs and started talking to a company that looked like it had potential. They asked me to do a take home test to prove that I was worth interviewing. Ultimately, I said no to that.

In a take home test for programming positions, the employer gives the candidate instructions to write one or more programs. The amount of time required to write it varies, but is usually over an hour. In this case, the company wanted me to spend four hours on their test.

This is common in the developer labor market right now. Employers use them, ostensibly, to establish a baseline of competency.

At the company that I work for currently, this is done by asking developers like me to conduct 50-minute video call interviews. This way, the employer can evaluate baseline technical competence, but the candidate can also ask questions and get a sense of the company. Of course, this costs the company money in the form of developer time. If an employer is not willing to spend that money, take home tests may look appealing to them.

Invisible goalposts

I have had a previous poor experience with a take home test. After two nontechnical talks with people at a company, I was given a take home test. I assumed this was the tech screen, and that no one would expect a candidate to work exhaustively on code they can’t use for anything else, for no money.

So, I made something that definitively met the objective requirements stated in the test, then stopped coding. I explained the pros and cons of my decisions and sent it in.

The company took a long time to evaluate it. Apparently, they had differing opinions among themselves, and thus, went back and forth a lot on it. (This, by the way, is a sign that the employer did not create any sort of rubric for evaluating this test. Without a rubric, an evaluation of a test just becomes developers doing a Rorschach test of sorts.)

In the end, I was wrong about it being a tech screen, and because one of my solutions did not perform in constant time, I was eliminated.

Here’s what I wrote to them:

For your future candidates, I think it would be a good idea if you were clearer in the problem description that a constant time tracking solution is actually what you want and that you will not continue in the process if you don’t provide that. It says “Whatever solution you choose, please note its performance characteristics in your README” and leaves it at that. People that can’t spend that much time on a take home test will likely just deliver something that meets the explicit criteria, assuming it is the equivalent of a tech screen and leave it at that. I appreciate the great amount of consideration that your team put in, however. Good luck in your search!

A friend of mine recently had a similar experience with a different company. They told him not to spend too much time on the take home test they gave him and downplayed the significance. Then, after he sent them a working test that did what the employer, they told him his test was not polished enough.

Free labor

Four hours is hard for me to come by these days. I initially said I’d try to fit the test in, but a week later, I realized four hours was going to cost me, and there were so many ways I could end up with nothing to show for it.

In past eras in which I had fewer obligations on my time, I probably would have done the test without a second thought. But what I should have done is respect myself and think about what else I could do with that time. From writing code on one of your own projects to playing with your kid to going on a hike, there are many, many choices that have a higher expected value than doing a take home test for a company. Take home tests have no value other than getting you a chance to interview with that company. (And in most cases, the value of that chance is unknown; you can do the test and find out the company is terrible or that they’re not willing to pay what you’re willing to work for.)

Of course, all of this only applies if you have other opportunities. If I had no job and few prospects, I’m sure I would keep my mouth shut and try to jump over all sorts of unreasonable hurdles.

I am privileged enough to be able to look elsewhere if I say no to a take home test. And I think the responsible thing to do with that privilege is to let employers know that it’s not a good idea to make candidates work for free and under opaque judgment.

A not-so-easy no

A week after I told this employer that I’d see if I could find four hours for their test, they asked me again about it. I realized I wouldn’t find that time any time soon without sacrificing something more important and was forced to corporealize a concrete position about this issue.

I decided I was against take home tests in this form. But I found it surprisingly hard to tell the company no. I hesitated to write the email, fearing that I’d look arrogant.

But why don’t companies ever fear looking arrogant when asking people to labor for free?