Earlier on App.net/Facebook I posted this:

"Also, asking potential hires to build apps as part of the hiring process is stupid."

Perhaps short-text social media is not enough to properly elaborate my thought. Here’s a better version:

If you want to see professional work from a developer, pay them
professional rates. That’s how capitalism works and that is the world we live in.

I fully understand and sympathize with the goals of someone hiring a
developer. They want to know that the developer they’re talking to can do the work. An excellent way to do that is to see some of their
existing work. Totally valid request.

Some developers have work already visible. They have public projects in places like GitHub and BitBucket. Problem solved, browse away and enjoy!

But what happens when they don’t have code publicly available (or not
code in the specific use you’re looking for)? Should we ask them to
produce some code you want to see? Yes. Should we ask ask them to do
this for free? Definitely not. Here is where I have a problem with these code assignments hiring companies ask developers to do. A human being has a limited time on this earth. A large amount of that time is spent sleeping. Another large chunk is taken out working (because we live in capitalist countries where not working means not eating mostly). What’s left is that special sacred time where a developer might spend time with their families or read a good book or maybe even sleep more.

When a company asks a developer to write code for free as part of the
hiring process, they’re asking that developer to give up this precious time for an arbitrary exercise.

In the past, I have interviewed with companies who have found some good solutions to this. Some found what they were looking for on GitHub and my blog. Some paid people for a week or even a day of work where they could better evaluate someone. This is my favorite solution. Others will hire someone on a probationary period, like a couple months.

Once a company is paying a developer for their time, whatever tests they want to do is fine. They don’t need to be doing work on the company’s product, that’s up to the company.

Finding new developers is hard. Hiring people in any field is fairly
difficult. Hard problems are what we solve for fun. Let’s find better
solutions than asking a peer to do speculative work.