32

I'm applying for a company that wants me to complete a several hour coding challenge. The assignment is basically "we've got 15 templates on our site, create a 16th one". Now I've heard of companies hiring applicants for a day to evaluate them, but that's not what this is: this is (ostensibly) just another unpaid code challenge to prove I'm a decent programmer.

Somehow getting applicants to do unpaid "real" work as a coding challenge rubs me the wrong way, and makes me think "if this is how they treat applicants' time, how will they treat my time as an employee?". Should I feel this way, or am I worrying about nothing, and perhaps instead should respect how clever the company was for figuring out how to kill two birds with one stone?

machineghost
  • 439
  • 5
  • 9
  • 14
    I would not worry, unless they had other 15 applicants before you do the same – DarkCygnus Sep 01 '17 at 19:11
  • 8
    If you don't want to do it, don't do it. That will obviously more than likely cost you the opportunity though (if there even was any opportunity to begin with). – Bernhard Barker Sep 01 '17 at 19:14
  • 1
    Should we assume you're being asked to write code potentially to be used in production? We can't really judge whether that's the case based on what you've written - designing something on paper (and possibly even writing some proof-of-concept code) is quite far from writing their production code, and, if it's the former, where you draw the line between something valuable and something you can give away for free is entirely up to you. – Bernhard Barker Sep 01 '17 at 19:29
  • 6
    people complain that tech interviews test candidates on stuff they will never use in their day-to-day job (sort/search algorithms, linked lists) -- at least here they are testing you on something practical. – mcknz Sep 01 '17 at 19:44
  • 4
    Thank you everyone for your feedback, it's been very helpful! I don't know for sure if they will actually use my code in their site (they don't say that in the challenge description). But they want me to sign up as a developer for their site, use their API, and create a new "template" just like one of the fifteen they already have, so it feels like they're going to use my work whether I get the job or not. – machineghost Sep 01 '17 at 19:56
  • 3
    This request is not clever, it is wrong and likely illegal (illegal depending on your location and jurisdiction). Don't do it. An employer like that is not worth it. And please do the rest of us a favor and write a review of that employer on glassdoor (or whatever site you use to review employers in your area). – Stephan Branczyk Sep 01 '17 at 19:56
  • It doesn't matter if they say they will, or say they won't. The fact is, they most likely will (should they deny it even if you ask). – Stephan Branczyk Sep 01 '17 at 20:05
  • 1
    I hate to say it but maybe they are looking for someone who does not need several hours to do this. – John Hammond Sep 01 '17 at 20:26
  • 2
    @mcknz, There are many ways to test someone on things that are practical. You can ask the applicant to create a silly charity web site for one of his favorite animals (a web site that he could keep for his own portfolio). If your own API uses OAuth 2.0 and maps, you can ask the job-hunter to use an API that supports those features. It really isn't that difficult (unless your goal is to get free work out of them). – Stephan Branczyk Sep 01 '17 at 20:28
  • @StephanBranczyk I don't disagree. I just wouldn't jump to the conclusion that they are going to put his code into production. Has machineghost been given enough requirements to produce a production-ready deliverable? If I was looking for a job, I'd trade a few hours for the opportunity to get hired, but that's just me. It's really a risk/reward trade-off. – mcknz Sep 01 '17 at 20:36
  • 1
    @JohnHammond, And that's fine, even if it only takes 30 minutes, ask that they make a template for CSS Zen Garden or something, and time it so the job-hunter doesn't take more than 30 minutes. In my experience, those who say it will only take 30 minutes and give you 48 hours to do the task expect you to spend a lot more than just 30 minutes. After all, even if you're twice the designer than other designers, if you only spend 30 minutes and your competitors each spends 20 hours (out of the 48 hours) on the same design task, your own task may really look bad in comparison. – Stephan Branczyk Sep 01 '17 at 20:46
  • @mcknz, That's true enough. Chances are, if the design is any good, they will only use parts of it. That's the nature of our work. It's iterative and fluid. – Stephan Branczyk Sep 01 '17 at 20:53
  • Is this definitely not a scam in general? Sort of like the online version of those scams where people would apply for "jobs" as writers and just ended up subscribed to a mailing list and buying a bunch of product? – Joe Sep 01 '17 at 21:29
  • 3
    Who owns IP of the answer/output? Asking that before doing the work would show forethought and awareness of ownership/copyright/intellectual property laws. – Criggie Sep 01 '17 at 22:56
  • To the commenters saying companies wouldn't bother to do this: I've seen them do it to graphic design applicants. Something along the lines of "Design X thing that just happens to be of use to us" - never mind that the applicant already has a design portfolio that can be evaluated. – Jay Sep 02 '17 at 02:46
  • Some companies have definitely started doing that these days. Like "give your thoughts how to solve a non-trivial work related problem.". Maybe they are simply not serious and there does not exist any real job but they have a business idea to sell the input they get off to other companies... – mathreadler Sep 02 '17 at 10:00
  • 1
    Folks make claims that this stuff (doing unpaid work as interview test) happens, but I don't believe it. It seems like an incredibly inefficient way to get stuff done. Has anyone been on the other side of this? Has anyone seen their employer do this to get work done from candidates? I've not heard stories from the other side, that makes me suspect that it never really happens. – teego1967 Dec 15 '20 at 15:27

6 Answers6

47

In all of my years of programming, I've never had a request to write something that could be actually used by their business. I've had mock debugging tasks, I've been asked to write a form that will do certain things and other things like that.

My guiding rule is to follow my gut. You've had a sanity check here and there are several saying that this is unheard of, so what you're feeling is in line with what many others would also feel. If you feel like you're being used to make something real and that makes you uncomfortable, just withdraw as a candidate. Give whatever reason you want or something as vague as "it just doesn't feel right for me and I've learned to follow my instincts".

The bottom line is this. Don't go against your own instincts. It may turn out well, but more often than not, doing so will be something that you regret later. Trust yourself.

Chris E
  • 43,237
  • 26
  • 142
  • 177
17

I'd say, How much do you want this job? And, How much work are they asking you to do?

A few years back I saw an ad for a programming job where they said they wanted a job applicant to produce a complete system with a database and I think it was 6 data entry screens and a dozen or so reports, "including complete documentation" they said. It sounded to me suspiciously like they just wanted this system built, and they figured they'd get someone to build it for them for free under the guise of a job application, then say sorry, the position has been filled. But even if they really saw this as simply a skills test, it looked to me like doing a quality job would take several weeks of full-time effort. Just writing "complete documentation" for 15 to 20 screens would would surely take a several days.

And so I asked myself: Say I could do it in just 40 hours. Which is the more productive use of my time? I could spend 40 hours on a cold application for this one job. Or in 40 hours I could find dozens of other job opportunities and submit resumes to them.

So I ask you, how much time do you think it would take to do this project? And is this job opportunity worth that much time? Factoring in, of course, the chance that you will get the job if you complete the test successfully. You said "several hours". If they're asking you to do a task that will take, say, 2 hours, and this will put you on the short list or you are already on the short list so there's a measurable chance that you'll get the job if you do this task well, I'd be inclined to do it. If someone asked me to spend 2 hours in a job interview I'd have no problem with that; this is in the same league. If they're asking you to put in 40 hours and at that point you're one out of 200 applicants, I wouldn't take the time unless there were just no other opportunities out there.

I'd be suspicious of someone who asks me to write code that they will then use in production. First off, what do they think is going to happen if there is a problem with this code, or it needs enhancements? Do they think I'm going to come back and do more work for free? I'd worry that these people have no concept how programming works. And second, I'd worry that they're not really planning to hire anyone, the "job opening" is just a scam to get someone to do the work for free. And any real life programming task typically requires significant time reviewing and clarifying requirements. If they think they're going to give a paragraph of requirements and I'm going to bang out production code in 2 hours, again, I don't think they know how programming works.

I've had job interviews where they asked me to write some small piece of code as a skills test. Typically they use some very simple problem that is easy to describe. Like find the first 50 prime numbers, sort a list of words alphabetically, etc. I have no problem with these. It makes good sense to give an applicant a practical skills test. Even if their code is incomplete or has bugs, you can get a good idea of their skill level.

But write code that we will use in production? I wouldn't say never, but I'd be cautious.

Jay
  • 11,053
  • 1
  • 24
  • 37
3

Besides others saying trust your instincts.

Back in here, it is not unheard of firms with low scruples employing those tactics for having unpaid graphical work, logos and small web designs.

I would like to add, wait a couple of days and please write in Glassdoor the facts i.e. I have been asked to do a too long interview task, using an anonymous user.

That will leave a trail to warn others, as they probably do it frequently.

Rui F Ribeiro
  • 4,967
  • 22
  • 30
1

You are completely right. It's likely a trap : There is no company and no real job, they probably sell the stuff, they get the information that you are easy to make do serious work without any promise of getting paid. Maybe they sell that information too...

Just say something like: Unless I get paid to do work for you, then I'm not interested.

mathreadler
  • 491
  • 5
  • 13
0

I've seen this practice as recommended for software project leaders to check how is it to work with this guy. But just an hour task or so, and always paying for it.

-2

I'd like to add a different point of view. Legally, the code you write is copyrighted. You are implicitly allowing them to use it for evaluation purposes, but if you don't explicitly allow them to use it on their website and they still do, you'll get more money out of that than they would have paid for the development.

So don't worry, if it's for a publicly accessible website, they'd be stupid to “steal“ your code. And if they do, jokes on them, sue them for a license.

DonQuiKong
  • 1,021
  • 12
  • 16