Should You Refuse a Take-Home Coding Test?


Most tech companies use coding tests of some sort to evaluate the technical skills of programmers and engineers. Some of those tests are complex and meant to be completed at home—a request that a portion of job candidates have begun refusing to do. After all, a take-home test demands significant time and effort, all of which will go to waste if you’re not ultimately selected for the job.

Of course, skipping such a test will probably kill your chances of landing the gig. When asked to do a take-home, should you stand your ground and refuse… or is there an alternative way to prove your abilities without alienating a prospective employer?

Here’s a look at when to say “No,” “Yes,” or even “Maybe” to a take-home coding test.

When to Say ‘No’

Disorganized employers sometimes administer tests and questionnaires before a position is fully fleshed out. If the job description seems incomplete or vague, being asked to crunch code for hours suggests a lack of respect for your time.

“Everyone should want the hiring process to be more efficient,” said Daniel Tunkelang, CTO of Lyra Health, a healthcare technology startup based in Silicon Valley. “To begin with, companies should provide detailed job descriptions so that candidates can make informed decisions as to whether it’s worth their time to apply.”

If you haven’t been given a chance to speak with a hiring manager or recruiter about the job, and the testing parameters are set out in a generic email that doesn’t seem tailored to your skills or even the position, you should (politely) refuse to take the take-home test. “There needs to be a reasonable balance of investment from both parties throughout the hiring process,” Tunkelang said. “Hiring managers can demonstrate their investment by sending personalized emails to candidates or taking the time to talk to candidates by phone.”

If you decide to go ahead with the test, and the company doesn’t offer to critique your code or provide other feedback, that’s another sign that the position isn’t for you.

When to Say ‘Yes’

There are times when agreeing to participate in a take-home test is in your best interest. If you’re new to programming, or haven’t amassed an extensive code portfolio, passing a difficult test could sharpen your skills while giving your credibility and confidence a boost.

If you’ve set your sights on a marquee company, acing its take-home test could be a foot in the door. Sure, you’re being asked to do a couple hours’ worth of work for free, but high-profile employers are unlikely to deviate from their hiring practices; even the most skilled tech pros sometimes need to acquiesce to the demands of the hiring process.

How to Say ‘Maybe’                                  

If you’re still uncertain about whether you want to subject yourself to a take-home test, offer to walk the hiring manager through your previous projects and online coding samples. That guided tour of your work may alleviate the hiring manager’s concerns about your abilities, which in turn may negate the need for a take-home test at all.

But not every hiring manager is capable of evaluating code that he or she didn’t assign, so you may have to be flexible and submit to the test after all. Whether or not the hiring manager agrees to an alternative to take-home tests, he or she needs to be transparent about the hiring process and what’s ultimately expected. “No system is perfect,” Tunkelang said. “But it’s up to hiring managers to make the process as efficient as possible, rather than just making candidates jump through hoops.”

7 Responses to “Should You Refuse a Take-Home Coding Test?”

  1. Brian Burwell

    Another time to say no is when you have reason to believe that the company is using the tactic to get you to solve a problem that they have and is looking to get free work out of you.

  2. Of course a great way to figure out some code is to simply engage the hiring process without actually doing any hiring and abuse people’s time who will not be paid under the guise of they ‘might’ get hired should they pass. This is idiotic. Now if the employer pays you for that time at a reasonable rate then you know they aren’t jerking you around, but for the moment I don’t trust ’em and I would move on to people who know who they want to hire instead of idiotic randomized testing doing the ‘thinking’ for the employer.

  3. To chime in with Brian, I once interviewed for a company that scheduled a follow-up interview on a Saturday (red flag #1). I went in and was given a SOW (red flag #2) and instructions to “give us a report on how you would implement a solution to this (red flag #3). Here are all the passwords to our FTP server and Databases (wrong beyond comprehension). If we like what we see, it will greatly increase your chances of being hired”. Needless to say, I threw together a a few paragraphs as a nicety, and was offered the job, to which I declined.

  4. as someone who screens candidates for my team, if i ask you to do a coding exercise, it’s not to “get free work”, it’s to get a sense of your style, how seriously you take this opportunity, and see how well you are _willing_ to work under just a little pressure of a looming deadline, however arbitrary.

    you know: _the real world_

    the argument for ‘no’ has startling parallels for ‘a well armed militia’. shut up & code, if you want to get past the gate

  5. Actually, the argument for doing work for free is an argument for slavery, banned in the constitution. A well armed militia is a right solidified in the constitution, the opposite of banned. I think the point of the article is if employers don’t respect your time NOW, what makes you think they’ll respect your time LATER? I did a 3 hour coding test once and ran it in the interpreter, I aced it all. They didn’t even hire ANYONE! So when I hear comments like “just shut up and [blank]…”, it just sounds like a grumpy old stubborn baby-boomer that thinks they know everything because they’re slightly older, when in reality their higher reasoning skills are slowing down.

  6. Alexander Zagniotov

    I actually do not mind home coding exercises, in fact – prefer them. I have done a few in the past for some very amazing companies. I do not think it has to do with “getting free work”, “slavery” or “abuse of personal time”. I proud of my engineering skills and willing to demonstrate them to a potential employer. That said, I do agree that home coding exercises require a time commitment, but so is a whole day of onsite interviews.

    Therefore, I think that coding exercises do not have to be at home necessarily – an onsite coding exercise where the applicant is given 7-8 hours (basically a one working day) to solve a problem can be as beneficial as a home coding exercise: here is a computer with dev environment setup and Internet – show us what you can do. See you by COB!

    I think these two approaches are some of the better ways to test applicant’s skills, style and understanding of “best practices”:

    1. Does the applicant write tests?
    2. Does the applicant produce testable & maintainable, easy to understand code?
    3. Does the applicant adheres to DRY & SOLID design principles (if talking about OOP)