HACKER Q&A
📣 bryanrasmussen

I got a coding assignment I don't think is reasonable


I interviewed at a place that wants people to be able to work full-stack but said they were willing to accept that not everyone was able to do so at the beginning.

The middle layer is implemented in a language and framework I haven't worked with since 2013 (the language I have used but only because a well known testing tool uses it for scripting so that's what I use it for).

When first approached I specified to the recruiter and to the company my limitations with the language and framework, in the interview I said I believed I could still do maintenance level coding in it (framework is MVC so maintenance is add some stuff to controller etc. ), but it would take me some weeks to a month to be able to contribute meaningfully. I said I was strong in Frontend, and I could of course do middle layer / backend work in other languages / frameworks I have used more recently.

So the take home assignment is to implement a financial payment api (with validation of Iban etc. ) in the language, framework I have not used since 2013. A '4 hour' assignment, from scratch.

I think this seems a little bit more unreasonable than the normal 4 hour assignment that actually takes 6-8 hours. How do you think I should approach this particular thing - I'm thinking call the recruiter and say not that interested in doing it. Other suggestions?

on edit: as always they don't "expect" you to finish the whole thing, but given what I told them I find it weird they would expect me to do much more than make some boilerplate.


  👤 bjourne Accepted Answer ✓
Then don't do it?

If I were you I would propose a counter-offer: "Sorry, I can't allocate time to a take home assignment, but here are links to an mvc application I've built in : I think it demonstrates my expertise and I'd be happy to discuss the source code and how I implemented it!" If they take you up on the offer, awesome! If they don't, you'd probably not want to work there anyway. Especially if it's some bullshit like "We expect all applicants to complete this test." Fuck that.

I've been burnt many times by take home assignments. I.e I've aced them and still not gotten an offer. So I don't do them out of principle.


👤 wcerfgba
It's hard to say how unreasonable it is without knowing what the API you're supposed to implement looks like. Regardless of how objectively unreasonable it is, there is also the issue of how much you want the job, and if that is outweighed by the unreasonableness of the request. Perhaps you should also consider this an early red flag that XCorp might not be so great.

I would look at it this way: if you want the job and can spare the time, give the assignment your best shot; otherwise if you could spend 4 hours looking for other jobs to apply to that have more reasonable application procedures, do that instead.

However, whether you decide to do the assignment or not, you should tell the company that you consider the assignment unreasonable and why. Our sector is filled with shitty/unreasonable hiring practices, and I think as candidates we have a responsibility to provide feedback about those practices to provide pressure on the industry to change them. If XCorp starts hearing from a lot of their candidates "Sorry, that's unreasonable, I'm not proceeding", then they will need to revise their hiring process if they want to keep their potential talent pool open. If you decide to continue with the process and do the assignment, then the feedback also works to your benefit by signalling that you are an independent thinker who is willing to give constructive feedback on internal processes: if the company doesn't like that then, well I really wouldn't want to work there anyway.


👤 jjgreen
I'd say anything over an hour is unreasonable unless paid at consultant rates. If feasible say not interested.

👤 tdeck
When I get take homes I usually timebox them to the recommended duration and then send in what I have, along with a note explaining that. So I might say "This may not be the most elaborate solution you've seen but I did it in strictly under X minutes".

4 hours as the declared time seems to be pushing it though - once you get beyond 2 I have seen the complexity explode, and a 4 hour assignment as you noted can easily balloon. One option might be to show off your project management skills and push back on the scope to negotiate something that fits your schedule.


👤 ericgong
Really depends how bad you want the job. I've seen lots of companies with multiple layers of filtering including rigorous take homes.

👤 LandR
I would never spend 4 hours on a take home assignment for a job!

👤 seattle_spring
DocuSign tried to pull that shit on me a few years back. I politely declined and proceeded to get several offers at companies that didn't force ridiculous tests.

👤 codegeek
There are 3 types of candidates:

1. Need a job bad and would do almost any assignment to get that job.

2. Want a job bad (not need it necessarily) because it is at their favorite company, unicorn etc etc.

3. Just looking around for an opportunity and unless it checks a lot of boxes, won't change.

If you are #2 or #3, then you have choices. Otherwise, I would say go back to them and offer "I can do this in language x since I am more comfortable" and then see their response.


👤 codingdave
Some companies deliberately give you too little time, to see how you handle it. Do you push back? Do you do as much as you can? Do you cut corners, and if so which corners, and why?

This is likely only partially an assignment to prove you can code, but the real question is what do you do when under a time crunch?


👤 maps7
It sounds like you're free to make your own assumptions and constraints. I would create an API with a payment endpoint, validation endpoint etc. Then I would have a basic web page calling those endpoints. I would not implement security, auditing, logging etc

👤 rboyd
Send a reply saying that you’ve completed the challenge.

Say you’ve hidden the repo somewhere in the interwebs and in order to find it the recruiter will need to solve three riddles, each one more difficult than the last.

Then include just one final line of random characters and an encouraging “good luck!”


👤 asimjalis
What language is this that you haven’t used since 2013? Without this piece of information the whole thing feels abstract. Is it Ruby?

👤 d--b
Just forward everything to Stripe

👤 JSeymourATL
Sub the assignment out on Upwork.

It's not cheating. This is not an academic exercise.

Simply, getting the job done through others.