Since the start of my career as a professional programmer, I've been interested in doing contract work online. Over the years I've half-heartedly tried to get jobs on sites like elance, rentacoder, and guru. I never had any success. All I found was employers / providers offering $200 fixed-bid contracts for building facebook / ebay clones, and workers willing to work for way less than I would or even could. In November 2010, after reading enough posts on hacker news I decided to give oDesk an honest try.
Trying oDesk for a Full Month
I committed myself to trying get jobs on oDesk for a full month. I found the usual unrealistic jobs (demanding everything for nothing). I focused narrowly on ruby and rails since that's been the focus of my skill-set the past few years.
Fixed-bid Projects
After a few days of applying to 2-3 jobs per day, I finally got an acceptance. It should be noted that for each of these jobs I wrote a detailed and specially tailored cover letter selling myself to the employer. I believe this is crucial. Writing cover letters is worth getting good at.
The job was to modify the ActiveMerchant gem to add support for a new payment gateway. I wrote this patch for MerchantWarrior in about 8 hours start to finish. It was a fixed bid project and the employer paid me promptly.
I got this project after only a few days, and I was ready for more. The next job I did was basically rails troubleshooting for another developer over skype. It consisted of a few small bugs, each of which were small fixed-bid projects. The guy would skype me, name his price, then I'd fix his bugs in his rails applications, explain why, and he'd pay me. It wasn't much money, but these were small bugs, and it boosted my feedback rating on oDesk.
On to the next job! November was turning out to be a good month for trying out online contracting. At this point I had only done fixed-bid contracts. I wanted something bigger. I wanted hourly work on oDesk. Hourly work is special because oDesk guarantees payment for hours worked. They have an application that you run on your desktop that tracks hours worked, takes screenshots, and lists average keystrokes and mouse actions.
Hourly Work
The first hourly project I got was a small ruby integration with ifbyphone. I had used ifbyphone before, so I wrote a cover letter selling myself hard (knowing ruby, having used ifbyphone before). I was also asked to justify my hourly rate, since it was higher than the typical hourly rate on oDesk. This was easy enough.
As soon as I delivered the code for this project, the employer offered me some work building a ruby gem. It's basically a simplistic template-based email parser. It's rather fragile, but given the employer's time constraints, it does what he wants. I ended up codifying the employer's requirements into rspec tests.
Once I finished that project, the same employer offered me some more hourly work in the form of a rails project. It's a microsite for people who play farmville. For the record, I do not play farmville. There are plenty of other more interesting video games to play. The site is basically a lookup table for some farmville data. It's sortable and can be filtered to the user's specifications. I'm not yet finished with this project.