8

Is it normal that if one applies to a programming job, he must do some programming related task for free before the he signs the collective agreement? I think it is not nice to ask to do a job for free. Should I ask payment before I do the task or what to do?

I'm very junior in getting job.

Nimesh Neema
  • 7,835
  • 3
  • 37
  • 50
  • 18
    How big of a coding effort are we talking about here? – Neo Aug 06 '19 at 12:36
  • 6
    is it a FooBar test, or a several day work? – Kepotx Aug 06 '19 at 12:39
  • 19
    You may want to do some searching, there are a lot of questions on here about coding during interviews, or being given "homework" projects during the hiring process. – dwizum Aug 06 '19 at 12:40

4 Answers4

21

Is it normal that if one applies to programming job, he must do some programming related task for free before the he signs the collective agreement?

Yes, this is a pretty common practise in IT industry. The goal is to check the candidate's ability to complete a task similar to what they'll be required to take up on a day to day basis.

However, the coding task generally isn't very intensive (definition of intensive varies according to the role and the candidate's experience level) or time consuming, and should be doable in a 1-2 hour time frame. Anything beyond that is asking for too much.

Update: As noted in the comments and from some first hand experience, some companies may ask you to perform one or more programming tasks spanning a day or more. However, this practise is generally followed in reputable/large sized corporations or high tech startups, who generally seek specialized and/or exceptional talent.

While this clearly contradicts with what's established previously, this is a common practise. The company wants to make sure they hire a really good fit. In cases like this you get compensated by getting a lucrative and prestigious job which tends to pay pretty well.

Should I ask payment before I do the task or what to do?

Don't explicitly mention it, as such requests don't put you in good light.

However, in a few rare cases, some companies use this practise unethically to get actual work done by the candidate. If you feel that the assignment is pretty lengthy and requires way more time and effort than is typical for an interview, you may not choose not to go ahead with the interview at your own discretion.

In a few cases it is seen that companies offer to pay for the time that you spend completing the task. This happens when it requires one to a few days of effort.

I'm very junior in getting job.

It's safe not to explicitly ask for any compensation, especially considering that you are a junior developer and may not have specialized skills which the company may find valuable beyond their general expectation.

A guideline you can follow is to go for the task only if you really value the opportunity and are eager to work for the organization in question.

P.S.: By demonstrating your skills in an exceptional manner in the assignment puts you in a better position to negotiate your compensation. The assignment is generally reviewed by a senior team member or hiring manager and not by the HR or the recruiter. Thus, impressing the one who designed the test enables you to get compensated indirectly (in a recurring manner on a monthly basis instead of just one time that you may be currently seeking).

Appulus
  • 488
  • 7
  • 13
Nimesh Neema
  • 7,835
  • 3
  • 37
  • 50
  • " If you feel that the assignment is pretty lengthy and requires way more time and efforts than is typical for an interview" It's obvious the OP may not understand what is typical here. – Gregory Currie Aug 06 '19 at 12:58
  • 8
    "..Anything beyond that is asking for too much." I agree, but as soon as it extends over three hours and is not generic but already quite specific to the field the company is operating in, it'd start to smell fishy to me. Some cheeky companies have a tendency to use coding-assignments in interviews as free resource to improve their product or solve some issues.. – iLuvLogix Aug 06 '19 at 13:19
  • @GregoryCurrie & Nimesh In regards to being 'good': In IT we basically never stop to learn and advance as this industry is very agile - the most important skill to nourish is the ability to quickly understand new technologies including their capabilities, limitations, syntax and methodology. The rest comes from practice, [seriousness off] and not from commenting or answering question on The Workplace instead of coding ;) [seriousness on] – iLuvLogix Aug 06 '19 at 13:28
  • @iLuvLogix - I really disagree with the "some cheeky companies have a tendency to use coding-assignments in interviews as free resource to improve their product or solve some issues" - see my answer for an extended discussion – dan.m was user2321368 Aug 06 '19 at 13:34
  • @iLuvLogix That may be true for some companies, but there is also a lot to be said for having experience within a domain. – Gregory Currie Aug 06 '19 at 13:37
  • @GregoryCurrie Agreed - most act in good will and faith, but one has to be aware that situations like this can happen (even if they are not very likely).. – iLuvLogix Aug 06 '19 at 13:43
  • The most intensive interview I had was with Ebay. They gave me a task (write a server and a client to do a certain task) that took about a day and a half, and then I spent the last half of day two demonstrating it and answering questions about the code. They paid for meals while I was there, but otherwise didn't pay for the work--and why should they? Even a two-day task like that is of no real use other than to evaluate a candidate. Any company that would actually use code produced by a candidate would not be a successful company for long. – Lee Daniel Crocker Aug 06 '19 at 21:46
  • The last time I required a coding example for an interview... the task was described as a simplified version of a project that we had already completed and only asked for a few hours of work. Much the data was the same (a subset of the database tables). When we had the candidates demo their solutions, we also showed them our solution so that they could see our more complex version working. Only one of three candidates refused to do the task and we did not even call them in for the interview. – Phil M Aug 06 '19 at 22:28
19

I see this concern brought up a lot, but I really have a hard time believing that any development shop anywhere uses the interview process to obtain code for any other purpose than to evaluate candidates (I'll allow that some non-developer "entrepreneurs" might exploit you, but no place with professional developers would do so). This is not based on any notion of ethics or morality, but just on pure common sense based on the costs involved.

For the sake of argument, let's assume you are interviewing with me, and that I assign you a task that takes one week of your effort to complete.

Lets say in one week you produce a piece of code with some value (or effort level - they are interchangeable), W. Given that you don't know the rest of the platform your code will integrate with, our coding standards, etc., and given that I need to review your code, test it for bugs, test it for performance, etc., it will probably take me 5W effort/value to integrate this code. If it wrote it myself, it would also take W, but then I'd have no integration costs.

Where is the benefit for me to "steal" your labor as part of the interview process? There isn't any, as it will cost me far more than the value I steal.

Focus on an opportunity to show someone how you can develop software, and stop concerning yourself with being exploited.

dan.m was user2321368
  • 13,563
  • 4
  • 37
  • 55
  • Don't forget the time taken to interview and manage the interviewee! – Gregory Currie Aug 06 '19 at 13:35
  • Also, you beat my answer by 30 seconds :( – Gregory Currie Aug 06 '19 at 13:36
  • +1 I fully agree with the example you have been giving in your answer, but lets assume it's some deep, specific SQL-queries, API-calls or some advanced mathematical cost-risk algorithm that could be implemented almost immediately into an existing project? I'm talking about a personal experience I had with a start-up 6 years ago.. But in general you are right - one has to presume good will and shouldn't expect exploitation around each corner – iLuvLogix Aug 06 '19 at 13:41
  • 4
    +1 for the answer. While your argument holds true for any decent/serious organization, I have seen this practise first hand in some IT sweatshops. I think this practise also varies from region to region. – Nimesh Neema Aug 06 '19 at 13:42
  • @iLuvLogix - Interesting re. your personal experience. While I could see the SQL case, the "mathematical cost-risk algorithm" seems iffy. Wouldn't their either be a detailed spec written up first - if so, the cost to build would be rather low. If not, wouldn't it cost much more to review the source than the code it up? – dan.m was user2321368 Aug 06 '19 at 13:57
  • 3
    I agree with you in general, but I have personally experienced this on 2 occasions. One was some very deep SQL specific task - a bug they couldn't solve. They thanked me for being a strong candidate, but I didn't get the job, only realising later what had happened. The other time was to get real time partial webpage updates working during a day long interview. This was 2001, way before we had libraries to do this eg jQuery, Angular etc. I demonstrated it working, then unplugged my usb stick. Got that job, funnily enough. – Justin Aug 06 '19 at 14:02
  • @dan.mwasuser2321368 Yes - Thats what I meant with 'non generic' & 'specific & well defined tasks'. Coding up yourself certain demanding solutions require skill, expertise and creativity - which might not be fully available to certain companies via their current employees (and maybe that's the reason why they are interviewing in the first place). – iLuvLogix Aug 06 '19 at 15:08
  • @Justin Just add jQuery to the soup or parse xml with regexp ;) – iLuvLogix Aug 06 '19 at 15:09
  • +1 Good answer - Especially as this is a junior position, it is unlikely to be a complicated programming task (OP doesn't make it clear how much work is involved however). – Old Nick Aug 06 '19 at 15:17
  • @iLuvLogix, this was 18 years ago. We didn't have jQuery at that point. John Resig was probably still in school and the XMLHttpRequest model was still pretty new. Didn't have Stackoverflow either, so no quick search for answers. You're right about one thing though; frontend development has become a soup, which I why I seldom touch it anymore. – Justin Aug 06 '19 at 16:01
  • 1
    I would argue that a company that goes through the significant effort to set up coding challenges in a way that allows them to get free development work out of interviewees would be better suited to spend the same effort on a developer. As such it's a good way to find out that you don't want to be working for them. – xyious Aug 06 '19 at 20:42
  • Great answer. Also, an assignment of sufficient length to produce presumably valuable code will most likely be considered too much of an investment by many developers. If as many as half reject you because of the coding assignment, that reduces your candidate pool by half, doubling the cost per candidate for candidates that reach the first interview (or that are sent the assignment). Costs of hiring are, imo, bigger in this case than your cost of writing the code yourself. – GuilleOjeda Aug 06 '19 at 20:52
7

If you're in an interview, and you've been asked to do a small programming challenge, it would be unwise for you to request payment.

You have to look at this logically. To interview you, there will be a manager or HR rep, possibly one or more senior developers involved. They cost money. They will be asking you, who they have limited knowledge of the skills, to complete a task that is probably very general and would take effort to integrate into their solution.

What would be the warning signs?

  • A single or no interviewer
  • Face-to-face time with interviewers kept to a minimum
  • A large number of people getting interviewed at once
  • No technical questions were asked
  • Code that looks like it would perform a useful task and would be easy to integrate
  • Integrating the code would take less effort that writing it
  • You have heavily specialised knowledge where it's not likely they can assess you
Gregory Currie
  • 59,575
  • 27
  • 157
  • 224
0

No, asking for actual application code in an interview is neither common, nor ethical.

It is however, quite common to be given "Coding Exercises" to test technical aptitude.

If you are being asked to complete a task that appears to be part of one of the company's applications it can be one of two things.

One: Bad, bad, bad, on the company's part. There is no advantage for them to give this task to you as an applicant.

Two: It could be a method or function that they have removed from existing code to test your technical aptitude in a real world scenario. In this case there is zero possibility they will use your code, it is simply a test.

The latter seems far more likely, though, there are exceptions and someone somewhere may attempt to do something silly and shady.

IF you feel like this particular company is actually trying to take advantage of you for free work, decline and go interview elsewhere, it is not a culture you want to be a part of.