I have had some bad luck and bad experiences hiring programmers in the past and I want to find a couple of top notch programmers to work full-time on my sites over the next year or longer. I came up with the idea of sending out a small task to a number of candidates and allow them to work on the same task and then see who comes up with the best solution. Now I need to find a small task and I was hoping people here might assess the situation and let me know what to send out. I have a site that is being developed from the ground up and it will be database driven and the search function will be the core of it all. The site provides access to freelancer profiles that clients can contact and send projects to. My idea is to send out the search function as a task but I'm not too sure that is possible. Any ideas?

I've been through a number of these recruitment processes ranging from quizzes right up to 10 hour development tasks. I think you're right going down the task orientated route as quizzes test very little real-world skill.

I like the idea of a search task, it means you can send them a database dump and check that they know what to do with it, you need to try and test deeper knowledge than just PHP - keep the explanation vague and see how the interpret, how far they will go (will they add different search criteria, order by etc. or just stick to word based searches). The only tricky thing will be getting the dataset though.

Hm, but you don't know that they haven't just come to some forum like this and gotten help with the answer. It sounds like you may be going too far down market to me. I'm sure if you find a reputable web company in your area (and perhaps ask around for references) you are more likely to get someone good. I come across amazing programmers just through contact with other designers. I'm sure you should be able to get a reliable recommendation from somewhere.

I wouldn't employ any coder nowadays without some form of test and evaluation. I've evaluated a few people over the years both for my own company and as a consultant for others. Reputation or status from end customers or references shouldn't count for as much as you'd think - customers or colleagues might be happy with the functionality / presentation of work they have received, but they would be unaware if the code is a disaster behind the scenes, because they don't have the expertise to know better.

I've found a monitored and fairly open ended test scenario useful, not only because it allows multiple approaches, but it's also indicative to see how candidates access information online if they find it necessary, where they look and whether they can tell good from bad resources.

As Ralph points out, for remote candidates they can easily get assistance, so I'd arrange a set start time and duration to receive and complete the test, and would google the test scenario before to see that it's not got a ready solution, and any code received to check whether they've just copy/pasted stuff.

I like the idea of a search task, it means you can send them a database dump and check that they know what to do with it, you need to try and test deeper knowledge than just PHP - keep the explanation vague and see how the interpret, how far they will go (will they add different search criteria, order by etc. or just stick to word based searches). The only tricky thing will be getting the dataset though.

Thanks, Richard. I like this idea too and I have the database, but not being a programmer, I am wondering if it is possible to create the search function with so little information from me.

I'm sure if you find a reputable web company in your area (and perhaps ask around for references) you are more likely to get someone good. I'm sure you should be able to get a reliable recommendation from somewhere.

Thank you for posting, Ralph. I live in Tokyo, Japan and the English speaking programmer pool is very limited. I have already used two local "companies" with very poor results. I have found people through Guru and Odesk and Elance but none were reliable and most were bottom feeders. That may sound harsh, but I have yet to have even close to a good experience from these sites. I have decided that I need to implement far stricter criteria before hiring and before allowing anyone to touch the site.

I've found a monitored and fairly open ended test scenario useful, not only because it allows multiple approaches, but it's also indicative to see how candidates access information online if they find it necessary, where they look and whether they can tell good from bad resources.

This is exactly what I need, but I am not sure how to set it up. Do you know how to set this up so that it is a "monitored and fairly open ended test"?

I'd arrange a set start time and duration to receive and complete the test, and would google the test scenario before to see that it's not got a ready solution, and any code received to check whether they've just copy/pasted stuff.

That is great advice and thank you for the ideas EastCoast and everyone. You have confirmed that I am on the right track. Now I just need to find someone who can set it up online for me and my test candidates.