How to become a freelance web developer

I graduated from college in 2006 and moved to San Francisco where I landed a job as a product manager at CNET, working on GameSpot.com. It was a fantastic job, great place to work, and I learned a lot. But being an employee just isn’t me, and I quit after 11 months to start doing freelance web development work full-time. I didn’t have much experience and had done very little client work up to that point, so the transition was rough. The first couple years were hard, and I almost caved several times and just got a job. But going into 2010, things started to really shift in a perceptible way. I’ve had enough people ask me for advice that I figured I’d write up a quick guide. These are a few of the things I’ve learned along the way; hopefully you’ll find them useful as well.

Types of freelance

There are different types of freelance web development. I started out building one-off websites and web application prototypes for individuals or fledgling startups where I was the only developer they had, then moved on to working with design agencies who had several freelancers they worked with, and I’m currently doing longer-term contract work with companies who have internal development teams but need some extra help for larger projects or initiatives. There are advantages and disadvantages to each of these approaches, but know that when you’re just starting out as a web developer, it’s probably going to be easier to get the jobs building websites for small businesses and non-technical individuals who have a startup idea. If you’re an experienced web developer and this is just your first foray into freelancing, any of these approaches are probably open to you.

Sample work

You don’t need to have a huge body of work to get started, but you do need at least a couple of sites that you’ve built or worked on. They don’t have to be client work; my first two sites were a web app that I built with a couple friends and my own personal blog. This brings up two important points:

  • You absolutely need a website of your own, and preferably a blog (try to get http://yourname.com)
  • Assuming your projects function correctly, 95% of clients at this level are going to judge your web development skills based almost solely on the design of your sites. Unfair, but true.

If you don’t have any sample work at all because all your work is for your employer, then you probably need to build something. If you have a household name on your resume, you’re way ahead and you might just need a personal blog that looks good. If you don’t have any sample work at all because you haven’t built anything, you’re not ready to freelance. Build something first, even if it’s just for fun.

Oh, and on a practical note, most developers I know have a mediocre design sense. Get a designer friend to look at your projects or use templates from themeforest.net or something similar. I can’t stress enough how important the design thing is, especially to non-technical customers.

Finding work

This is entirely dependent on what kind of work you want to do, but for almost all types, I’ve found Craigslist to be the best place to find work. The amount of junk on there is staggering, but there’s gems in there. Probably 90% of my work over the last three years has come directly or indirectly from Craigslist. Just keep a few things in mind:

  • There’s a lot of people kicking tires who have no intention of hiring you or even getting back to you
  • There’s a lot of developers who respond to every post, so the signal-to-noise ratio for posters is bad
  • Of the people who do respond, only about 10% are people with a budget who are worth working with
  • Weeding out the 10% from the 90% is really time-consuming

This all means two things:

  • It’s a numbers game. You’ll have to respond to a LOT of ads before you get a good gig.
  • Anything you can do to weed people out faster is helpful

My method for trolling through Craigslist is to grab RSS feeds for all the major cities where I’m interested and setup in Google Reader. Then a couple times a day, I scroll through the hundreds of new listings and open all the interesting ones in new tabs. Then I go through each one, check to make sure it’s relevant and then send them a cover letter, resume, links to my projects, etc. In the course of a week doing this, I may send out a couple hundred emails. From those, I’ll probably hear back about 10% of the time, though this might be a function of my rate. Of those 10%, maybe a third will go somewhere.

Let me make something clear: this isn’t spamming. Yes, I have a series of standard (well-written) cover letter that I start with, but I spend a few minutes tailoring the letter to the ad, where necessary. I have never had a single person email me back and say that I was spamming them, that I obviously hadn’t read the ad, etc. I’ve had a lot of people tell me that they appreciated me sending a tailored cover letter, though.

The other thing I do that’s really helpful is put my hourly rate in my initial emails. This filters out most of those 90% who aren’t worth dealing with because they have no budget or are looking for someone to clone Facebook for $15 / hr.

The other method that I have found works really well is periodically posting in the Resume section on Craigslist. I just put a list of my skills, some links to projects, that I’m looking for remote gigs, and my hourly rate. I don’t get a ton of responses (except from recruiters), but the ones I get are usually high quality because they’re pre-qualified.

Other sites that I’ve found work on include Dice.com (lots of recruiters), Freelance Switch jobs board, 37signals gigs board, and AuthenticJobs.com.

Speaking of recruiters, most of them are terrible. I try to filter them by always posting that I’m only looking for contract work, for remote stuff, etc. but it doesn’t matter much. You’ll get lots of recruiter spam. I just reply that I’m only looking for remote contract work and send them a rate that’s 2x my normal rate. If they bite, great. Also, not all recruiters are bad: two of my most lucrative and non-stressful long-term contract gigs came from recruiters who found me on Dice or Craigslist. You won’t be working with the recruiter long-term, so it’s more about the company they’re recruiting for.

Getting paid

When working with new clients, I like to get an upfront payment and I try to avoid turning over the code until I’ve been paid in full. For my regular clients, I don’t worry about this, because they’ve proven themselves trustworthy, but I’ve almost been burned a few times by doing work and sending it out into the ether. On the other hand, I’ve been screwed far less often than I would expect. Maybe it’s a function of charging higher rates, and thus getting higher quality clients. Which brings me to my next point:

If you’re stressed because you have too much work, not enough work, terrible clients, etc., there’s a simple solution: raise your rates. It’s pretty incredible, but raising your rates from say $50 / hr to $75 / hr will probably not be the death knell you imagine. In fact, you might find that you get more work, better work, better clients, and make more while working less. There’s a few things going on here, but I think the main one is perceived value. You need to have the chops to do the work you get, but I highly recommend raising your rates.

I’ve got more tips, but I’m going to save them for a part 2 if anyone is interested. Post any questions you have and I’ll address them in part 2.

Update: Part 2 can now be found here.