We also don't give them our actual problems as homework tasks. We'll occasionally talk about our real problems with candidates in interviews, but we're very clear about it when we do.
It's not a perfect system. Some candidates will choose to spend longer on the task so that in the follow-up interview they'll have the opportunity to talk about stuff that really shows off their strengths, so their effective hourly compensation for doing it would be quite low. The task is explicitly flexible like this, and we've also hired people who spent _half_ the par time on it (e.g. life circumstances making spare hours hard to come by) and didn't implement much at all, but then were able to confidently answer our questions about the bits they didn't actually implement.
Even if we were to only hire 1 out of every 15 people who get far enough through the pipeline to do the homework task (I don't recall the actual numbers) it costs us _nothing_ to compensate people for their time compared to, e.g., what it would cost us to make a bad hire. So it seems like an obvious thing to do even if only to stop candidates from having to wonder "am I getting screwed here?"
The visa process may be flawed, but putting the blame on the employer is... weird.
That said it is completely unethical to make people do real work as part of an interview process. We collectively should name and shame any firm that does that.
Agilent is not great either. They interviewed me for 6 month and implemented some of my ideas. (In fact, I got the job, out of 500 applicants, but then they axed the job and hired nobody)
This is not true.
I've can think of one employer my entire career that had conditions regarding work outside of my normal work hours.
Granted, if you worked for your competetors and they found out about it you could be fired due to trade secrets or conflicts of interest. I only remember one employer I had where I signed something with binding agreements related to other work (and, as it happens, that was perhaps the worst employer I ever had).
I know some employers in some regions do this, but it is a far cry from affecting "nearly every worker in the US". In fact, I am not aware of any of my friends in tech positions currently being under such an agreement (that is, an agreement requiring pre-approval for outside work). In fact I believe it is illegal under many circumstances in some states for an employer to require it (but don't rely on me for that, conditions/laws change, and I have had no reason to look into it recently). I do remember discussions about it in the not too distant past, however.
The language you're looking for in the contract is 'preponderance of time'.
[0] https://www.irs.gov/businesses/small-businesses-self-employe...
Some people don't like take-homes that replicate scenarios/projects because they think it's too close to real work and want to be paid instead!
There's no pleasing everyone with interviewing processes.
If you feel that a request is unethical and it's not what you want in a company, well... you - as a candidate - can terminate the interviewing process.
Then it's no different to the rest of the candidate's time spent interviewing - it's cost of doing business that no one expects to be remunerated for.
The other benefit is that you then keep a benchmark of deliverables by having each candidate complete the same task (you have to change tasks over time as the details of the project get leaked/discussed).
I like these because they are not games. If you want something done, you'd ask an employee to do it. So just ask someone to do something you need done.
In our case at least by the time it was something that was part of an interview, it had already been implemented on the business side. Our projects were usually 2 hours tops?
The idea that this is unethical is wild.
We also do paid internships and have folks actually work on stuff that way -> do a good job, pretty good line up for a full time position.
Why would a place like google even use an interviewees code without careful copyright assignment and work for hire protections (ie, you need to pay someone in USA generally to own their code).
I've found some potential hires are randomly paranoid - and if they start giving you lots of hypothetical disaster / ripoff scenarios early, not worth the hire?
A 6-person company in New York did that to me. I reviewed the interview project I did for them and their latest product update. I had to ask them a week after the interview if they used my code in production and if so - this is how many hours I worked on it and a fair rate. The CEO emailed me threatening legal action and then called me 10 minutes later apologizing and venmo'd me the amount I stated it was worth.
If your interview process works for you that is great.
But I could totally see why potential hires are paranoid if you are giving them a situation to be paranoid about. I hope you are being super clear with your process and giving assurance you aren't using their code. If it was me, I would show them the code our team wrote at the same time they submit their project and use that as part of the follow up interview.
I felt this was good. I got paid and it was a fun challenge. It also obviously wasn't "actual work," but even if it was, I was getting paid, so why not?
I don't think it would have been out of the question to say I was too busy to dedicate 8 hours either, but in my case I had the time.
Overall it was an excellent experience.
I see nothing unethical in it.
3 years later the feature has still not made it to production. I hate that every time it would have made my working day easier :)
It's good because it will determine if they're a good fit for the team and gauge how much they have to offer.