We started doing challenges like this in our hiring process some years ago. Our challenges are open-ended so the time spent on it really is up to the applicant, but you can come up with a good solution in a few hours.
The feedback from candidates (including those we didn't hire) has been extremely good - they much prefer this to puzzles or whiteboard coding sessions.
Note that we give such challenges to candidates after they passed through a phone screen and a first interview with a pair of engineers.
>"The feedback from candidates (including those we didn't hire) has been extremely good - they much prefer this to puzzles or whiteboard coding sessions."
This whole idea of asking people do use up their nights and weekends to do free work is completely ridiculous. And the justification is always the same - "we think its better than implementing algorithms on whiteboards."
Well who ever said writing code on a whiteboard was necessary? This justification is ridiculous as it suggests there are just two possibilities for hiring people - algorithmic puzzles and unpaid work.
This is why it needs to be a challenge related to the employer, but not an actual feature they're going to go and use.
At my last place we used one, said "please don't spend more than 5 hours on it" - it was a challenge to read a specific industry format (e.g. test you can go and find something to read it, not implement a library to do so ... not reinventing the wheel) and present it in a basic RESTful web app (testing that you know what REST is, and can implement basic CRUD).
Never had an issue getting it done, and it was very illuminating, some people who passed through the initial interview with flying colours turned in absolute crap.
Stated another we don't want you to give up more than an "entire evening" or your "entire Saturday afternoon." This is messed up.
What's even more messed is that you generally won't be given the opportunity to you discuss your thinking or choices on your project. It's just pass fail.
Did you go over your reviews with the candidates that put in 5 hours who failed? And while a company says things like "don't put in more than X hours", the reality is people will put in much more time than that because they know they being put under a microscope and judged as if its production code.
We always gave feedback, even to those we didn't invite back.
It's either that, whiteboard interviews, or restrictive probation period if we don't test their coding ... each have their downsides, and it was decided the coding project was the most fair.
The feedback from candidates (including those we didn't hire) has been extremely good - they much prefer this to puzzles or whiteboard coding sessions.
Note that we give such challenges to candidates after they passed through a phone screen and a first interview with a pair of engineers.