For frogmetrics interviews, we did screen sharing sessions. You get to watch them code in their native environment, and see how they tackle the kinds of problems you'd be paying them to solve. In fact, the project we gave everybody was the next big feature we needed to implement, and the guy who won the job just brought his already-completed code along with him.
Does it sound right to you that your next big feature can be implemented during an interview, before the candidate is even hired?
I know, you didn't mean that it was all completed, but still... how much free work can you get from people before it's called abuse? If you had said "the guy who won the job just brought the best ideas with him", I'd be all happy.
1. We only used code from the guy who won, and he never saw the other submissions.
2. The interview project was time boxed to 24 hours. The guy who won did it in about 9 hours.
The actual feature is big, and has lots of edge cases: our devices need to be able to update themselves when new versions become available, roll back if there's an error, archive past versions, and never, ever end up in a state where they're bricked. The applicants did a small toy implementation of this functionality. The guy who won wrote good enough initial code to be used as a foundation for the rest.
They didn't say that the code from candidates that weren't accepted was used, just the code from the one that was. I suppose you prefer that interview coding tasks be arbitrary and wasted effort rather than put to good use?