One area where I have developed considerable expertise is in hiring and dealing with overseas developers. I have hired many dozens of developers on rentacoder and odesk (my two primary sources) over the years, and I wanted to share a few tips with you.
The first thing you need to decide is whether you want a fixed bid, or would like an hourly worker. Depending on the project, I have used both, and there are pros and cons for each.
A fixed bid project is perfect for a small, well-defined task. "I need a logo." Great, you can find a cheap or reasonably priced provider to do that kind of work for a fixed amount up front. "I need a small, 5-page web site." "I need a program to calculate the odds of lightening hitting a golf ball mid-flight."
An hourly bid project is more suited for tasks that still have some unkowns in terms of scope and duration. With hourly contractors, you can change your mind on things, tell them what to do. Ask them to make changes that you hadn't considered beforehand. "I need to convert a ASP web site I have to ASP.NET." "I need someone I can call to do a few hours work a week."
Of course there are down sides too. Fixed price projects generally are less flexible for changes. You need to know what you want up front, and specify it in the bid request. And once the programmer thinks they are done, you have a harder time trying to get them to do a little more. Of course, I've had fixed bid projects where the programmer did extra work for free just because they're nice. There's just no guarantee.
In the hourly project, the risk is that the project will take longer than you expected. That the programmer will be slow. And if you're not happy with the work, there's not much recourse because you're buying their time, not quality.
So, let's say you've chosen between fixed and hourly? Now what?
Well, you post a bid request to a freelancer site. Pick one and stick with it, don't post your request to multiple sites. Be as detailed as you can, be specific. Mention when you will like the work done. Also be detailed about what skills you require (PHP vs. .NET for instance), and ask to see sample web sites the person has worked on. If you don't ask, you won't always get it.
Sometimes, the site asks you to enter an expected price. How much per project or per hour you would expect to pay, although the bidders can bid more or less. Be realistic with this, but don't show your cards. Always put a price in there that is lower than the maximum you really would pay.
To set expectations for you, for programming talent, the cheapest you will find of reasonable quality is in the $8-$10 an hour range. Now there ARE people out there bidding $2 and $3 on projects. I tend to stay away from those. Because you get what you pay for to some degree. For projects I may not care about quality as much I might be tempted to try those low bids. For $2 an hour, you really can't be taken advantage of too much. One week of work for $40. But I am comfortable paying $10.
Then comes the fun part. You will undoubtedly get applications. In my case, I can get 30 or 40 applications on a typical job posted for 2-3 days. I have had as high as 100 for jobs I've left up for a week. In both cases, that's just too many people to seriously consider. So how do I choose?
1) Reject those that are too expensive. As I said in my last post, I can't pay someone $44 an hour for PHP development.
2) Reject those with bad reputations. If 1 or 2 people rated this developer poorly (less than 4 out of 5), steer clear. Buyers don't rate developers poorly for nothing. I rate all my developers 5 out of 5 unless they really did let me down.
3) Reject those who are easily determined as unqualified. I am looking for an ASP.NET developer, and the person's application summary says "Expert PHP Developer", that's an easy reject too.
4) Reject those who didn't follow instructions. No cover letter, no links to work they have done, a cover letter of only one or two lines. That's a sign of someone who applies to 100 jobs a day.
Now we are getting to the ones harder to reject. If I still have a lot of resumes, I might have to cut deeper.
5) At this stage I reject people at $20 an hour, there are just way too many qualified people at $10.
6) I also reject those with no online experience. I would rather work with someone 5-star rated, with hundreds of hours of online experience. Why take a chance?
7) And lastly, if your English is just way too poor, I will reject it at this stage. Communication is difficult enough over IM and email.
Hopefully at this point, you have 5 or 10 good candidates. They are reasonably priced and they are qualified on the surface. Now its time to read their letters in depth, visit their links, and reject them solely based on the quality of their work and experience.