In the past few months since I began doing freelance work full-time, I've had a few conversations with some of my former technical co-workers. They're naturally curious to hear how I've been doing with freelancing since I've left the relative stability of full-time employment. I tell them that things have been going a lot better than I expected, which makes them even more curious about how I've been getting work - a main concern for people looking into getting freelance work. When I tell them how I've gotten all my work so far, they're just plain shocked. Why? Because I've been getting most of my work through oDesk.

Now, it's not that oDesk is a horrible platform. But these types of independent work sites, such as oDesk, Elance and RentACoder, have a pretty bad reputation among software developers. The reason is twofold. First, those sites are full of workers located in areas where the cost of living is a tiny fraction compared to anywhere in the United States, so you would be competing against others who can charge less than $10 an hour for their work. The other reason is that there are plenty of people who don't know what it takes to build software, and offer gigs to have you build an exact clone of Facebook or YouTube built for $500. Oh, and they want it built in two weeks.

So, with those pervasive issues in mind, what was I doing at a site like oDesk to begin with? When I began freelancing, I was reading a ton of material, because I had no idea where my next paying jobs were going to come from. One book had an interesting idea of working on sites like oDesk for very small jobs that wouldn't pay much, but would provide you with something valuable in return - proof that you're an awesome freelancer.

I have ten years experience with building software and working at startups, but I never had any experience doing remote work independently. I was (and arguably still am) a virtual unknown in the world of freelance work. Having a place to get some work and do it really well so that others can see that you're serious about doing great work and helping others sounded like a solid first step.

Still, my first thought was the same as I mentioned above. I had no interest in building someone's entirely unfeasible idea for less money than I earned in my first full-time job in Puerto Rico. But I still needed something to point to regarding freelance work, so I decided to jump in and try it out. I thought the worst case scenario would be that I would not get any work at all or find myself in an bad situation with the work I chose, and at best I would get some feedback that I could potentially use to show people that I can help them with their needs.

My first jobs at oDesk were short gigs, like helping someone set up their web app properly on a VPS, or pairing with someone to help them with an Elasticsearch issue they were having. In total, those jobs were just a handful of hours at a very reduced rate, but the clients gave me glowing feedback, which I truly appreciate whenever somebody takes any time to leave me not only just feedback, but to leave me some of the kindest words I've ever heard in my professional career.

I continued to send messages on oDesk for projects that seemed interesting. Along the way, I also raised my rates a little higher. It was a bit low compared to rates for similar work in the San Francisco Bay Area, but I would guess that in the oDesk world it was probably in the top 3 percentile, maybe even higher. Still, it's more than I want to make at a minimum for my lifestyle and my goals, so I was very comfortable offering those rates for the time being.

I was wary that at those rates, I would not yield any results. But to my surprise, I actually received more work on oDesk at those higher rates. And the type of work I was getting was not for those projects where the client is expecting you to implement an entire social media site for peanuts. It was actually fun work to do, and I've gotten to expand my network with great people along the way as well.

Based on conversations I've had with others who have tried to do this in the past, it seems like I've been one of the 'lucky few' who has had any type of success on a platform like oDesk. I don't know if I've been lucky or just know what to look for, but I do believe that oDesk is a good place to get decent paying work for any software developer out there. Since a lot of people have asked me already how I've been doing it, I wanted to share my findings so far.

Be very selective with who you contact for work

As I mentioned earlier, one of the main complaints about platforms like oDesk is that there are plenty of job postings out there asking for crazy amounts of work for very little money. It's an entirely valid complaint - there's way too many job postings out there that ask for the world and ask you to do it for little in return. But here's the secret: you can choose to ignore those job posts! Shocking, right? You just ignore them and continue on. There's absolutely no need to spend any time or energy on those posts. Just wish them luck (oh, they're gonna need it) and move on to the serious, more interesting job posts there.

I have been very, very selective with who I send messages to and who I talk with regarding work. It seems a bit counterintuitive, especially when you're doing hourly work and an hour you don't work potentially means an hour you're not getting paid. But in my short experience, this tactic actually leads to more work. It's a principle I read in a book called Book Yourself Solid, which the author dubbed "The Red Velvet Rope policy", like the velvet ropes used in VIP sections of clubs which lets only specific people in. The reasoning is sound: Work only with the people you want to work with and you'll do better work which will most likely lead to more work, either with the same client, with a referral, or something else. This works extremely well, and this is the first thing I tell people who are looking to get into freelancing that they should do.

Be personal

Earlier this week I had a conversation with someone who mentioned they ocassionally posted small tasks in oDesk, and he was amazed that over 30 people applied for the job in a short span of time. Seeing that oDesk has its own API where you can make job offers, I'm sure people have set up their automated application bots to immediately send an application when certain jobs come up, and essentially spam everyone in sight. For people who are competing on price and want as much work as they can get - "Red Velvet Rope policy" be damned - this is their M.O., since they're looking at quantity over quality. This has led to a lot of job postings mentioning to include a specific phrase or word when applying, so they can filter out who didn't read their description.

When I see a job posting that interests me, I sit down and type a personalized message for that specific post. Sure, it takes me more than 10 - 15 minutes per message. But writing a specific message based on what I read on their job posting makes it clear that I read what they wrote, and that I'm serious with providing great value for their business. No automation in the world can provide that.

The structure I use for my application letters follow this basic outline:

  • I introduce myself and talk a little about how my past work experience can help them with their specific problem. For example, how I made a past startup's search architecture more stable by setting up Elasticsearch.
  • I mention that although my rates are higher than just about every other person who applies to their job, there are advantages that offset the higher rate, like:
    • Being located in the United States (some people want to have someone in or near their timezone for communication purposes).
    • Being fluent with the English language, both verbally and in written form (again, for communication purposes).
    • Assuring them I can get things done quickly (only if I feel like I can).
  • I ask a few questions regarding the project, based on the description (what tools they're using, are there other developers working on the project, etc.)
  • I give them a link to my portfolio and let them know that I'd love to chat with them on Skype / Google Hangouts to learn more about their project.
  • If the job posting mentions to include a specific phrase, I try to include it in a creative or comedic way - believe it or not, this led to my offer being accepted.

You have to play the numbers game

Based on my experience, out of every 10 or so applications I send, I hear back from just one person. Sometimes it's because they're looking for value-priced developers and run away from my proposed rate. Sometimes they're swamped with responses from others. Sometimes they hire outside of oDesk. Whatever the reason is, you'll hear back from very few people. Don't expect that sending out 1-2 applications only is enough to get a response. You'll have to send out a few before getting any serious interest in return.

You'll have to "pay your dues"

oDesk allows clients to filter out potential freelancers with various options: hours worked, their average feedback, even things like their English language fluency. When you start off on oDesk, your feedback is zero and you will have zero hours worked. Some clients don't even bother reading a job offer if this is the case.

This is where the tactic I mentioned at the beginning of this post comes into play. When you're starting off at oDesk, I'd advise taking small tasks that are low-risk for the client, and offer to do them at a low rate. Since there's little risk involved, the chances you'll get the work is higher than if you were applying to a long-term project or what you want your normal rate to be. And once you get this small task, work your ass off to do great work. You'll get feedback, you'll log some hours, and this will start providing more opportunities on the platform.

Don't sell yourself short

oDesk is perceived to be a "race to the bottom" when it comes to pricing. There's a lot of cheap labor being offered, and there's plenty of people who are only looking for exactly that. But that doesn't mean you have to join that race, so you have to make sure you don't sell yourself short and you value your time and your work fairly. Don't feel forced to offer low rates just because the majority is.

There's plenty of clients on oDesk who are not looking for the cheapest option. There are clients who are willing to pay for top-notch work, and if you can offer top-notch work, charge for it! There's also other reasons people prefer to work with a U.S.-based freelancer despite the higher rates. Here's a few reasons I've been hired on oDesk:

  • I'm located in the U.S., so at most there's a three-hour time difference between myself and clients on the East Coast, so I'm available to chat with them throughout most of their business hours.
  • People are realizing that, more often than not, paying lower rates produces sub-par work, so they've gotten burned in the past by cheap labor.

Just because there's a lot of not-so-great work on oDesk, that doesn't mean that it's all bad and should be avoided altogether. There's some great work in there, but you'll have to be willing to put in some time and offer some work for less than you'd like, at least in the beginning. While I wouldn't recommend oDesk as the sole source of work for a freelancer if you're in the U.S. (more on that in a separate blog post), it's still a great place to get work, even earning more than enough to pay rent.