A lot of people apparently got some value from the post yesterday on how to become a freelancer, so here’s part 2. Hopefully I’ll hit everything that people asked me, though I’m hardly the last word, so if you see something here that doesn’t sound right, post in the comments or shoot me an email.
Staying sane
Freelance work is stressful at first, and you should be prepared for it. The biggest piece of advice I can give is to cut your spending as far and as hard as you can, for as long as you can. When I first started, I was so amazed by the hourly rates I was able to get compared with my job, and I completely neglected to take into account how long it would take to get paid, that there would be periods with no work, higher taxes, etc.
I also think it’s really helpful to find another freelancer or two that you can commiserate with. Working from home is terribly isolating sometimes, so go to a coffeeshop, work in a coworking space, with a friend, whatever. I have a couple friends that I just hang out with on Skype throughout the day.
More on rates
Figuring out where to set your rates can be tough. I’m currently charging about twice what I started out charging three years ago, though I give some of my older and best clients a break. I also give discounts for longer-term contracts, because I’m spending less time looking for work, which isn’t billable time. The best way to figure out how to set your rates is to talk to a few freelancers who do what you want to do and ask them about their rates. You might start off a little low, but here’s the cure for that:
After each job, raise your rates, and keep raising them until no one will hire you.
On billing hourly or fixed-price, most clients seem to prefer fixed-price. Just make sure you have it spec’ed out well and you are clear that scope creep isn’t going to happen. After the last few years, I prefer to do hourly as it’s just a lot less stressful.
If you’re conservative and you’re doing individual contracts that last a few weeks at a time, you can generally assume you’ll bill about 1000 hours a year, so if you charge $75 / hr, you’re going to be making $75k / yr. Throw in the fact that you have to pay higher taxes as a freelancer and now you’re not making that much. However, you can definitely bill more hours than that a year. If you do several 3-6 month contracts where you bill 40-50 hrs a week to a client, and throw in some little side projects here and there, you can bill 2000 – 2500 hrs a year. Do you have to work hard? Yes. And juggling all that work is hard, but it can definitely be done.
Also, set taxes aside and pay your quarterly estimated taxes (if you’re in the US). It’s just a lot less stressful.
Oh, I almost forgot: never work for equity. 99% of those projects will never go anywhere. I tell my clients that they’re welcome to throw in some free equity on top of my normal rates, but I get paid in cash for the work that I do. I have plenty of entrepreneurial projects of my own, so why would I work my ass off for 3% (or even 30%, though they never offer this much) of someone’s Facebook clone?
What skills to offer (and where to grow)
Obviously, you have to start off selling what you can do, but where should you grow your skillset? From what I’ve seen, there’s a tradeoff between being more specialized and more of a generalist. The more specialized, the more you can charge, but there’s lot more work for generalized stuff. In general, though, I tend to lean more towards specialization. Most of my work is PHP, and I can charge a lot more for Facebook apps, Drupal, CakePHP, and Magento than I can for just generic PHP stuff. Even WordPress stuff pays better. The ideal is to find stuff that’s in pretty widespread use, but harder than the average programmer wants to tackle. From what I’ve seen, Facebook apps, iOS, Drupal, and Magento all fall into this category. You can charge more for this and get a lot of work, because there’s an asymmetry in the supply / demand curve due to programmers being unwilling or unable to learn these platforms, but lots of clients using them. (Unrelated note: does that sentence make sense?)
The most important skill you can possibly have is being able to understand your customer’s needs and tailor a solution for them. This might seem obvious, but a lot of coders are really bad at sitting down with a client and understanding what they’re really saying. Most clients do not care if you use Rails over Django, and they don’t know what you mean when you’re talking about HTML5 over Flash. They only know and care about their business needs. If you get good at listening to their needs, tailoring a technical solution that meets those needs, communicating that solution clearly, and implementing it well, you’ll never have a problem finding very high-paying work.
Building a reputation
Looking for work is terrible. It’s a pain and you have to spend most of your time weeding out people who aren’t serious. The ideal is when the work starts coming to you. This takes time and dedication, and the will to build a strong reputation. You need to have a portfolio that looks good, and I’d recommend a blog. Depending on the type of work you do and who your clients are, a Github account isn’t a bad idea either.
On the blog, you can blog about anything you want, not just development stuff. Many of my clients have said that they feel like they know me better after reading my blog. I think hiring someone is really hard because you don’t know them and to the extent you can peer into their personality through their writings, it makes hiring decisions much easier.
How to tell a good client
Telling the good clients from the bad ones is more art than anything. However, I’ve found a few heuristics that help me:
- Clients who bitch about rates or quibble over a few hours here or there are rarely good clients overall.
- If they had a falling out with their last few programmers, that’s a danger sign. Not always their fault, but be wary.
- Clients who insist on lots of calls, pedantic timekeeping and status update rules, etc. will generally be a pain.
- Clients who balk at paying partial upfront, or want to only pay after they’ve received everything are planning on screwing you.
Sales cycle
I’ve generally found that when starting completely from nothing, it will take me 2-4 weeks to land some new gigs and start working on them. So you should probably assume that you won’t get paid for at least 60 days from the time you start freelancing, and assuming 90-120 days is probably safer and more realistic.
I generally handle 1-3 clients at a time, which is a pain to juggle, but unless you’re working for a set number of hours per week, you’ll find that only have one project really cuts down on the number of hours you can bill, because you spend time waiting on the client for stuff. The ideal for project-based work is two, so you can bounce back and forth, but these require good clients who aren’t going to be on your case all the time. And obviously, you can’t do two projects where you’re giving each client 40 hours a week, unless you’re planning on working 100 hr weeks.
Contracts
I generally try to get signed contracts, but it’s more to ensure that both parties are on the same page. If a client stiffs you over a $2k job, you can sue them in small claims court, but it might not even be worth it, especially if they’re out of state. I generally just try to avoid my exposure to this kind of risk by insisting on an upfront payment, getting payments regularly, and not turning over the code until I’ve received all or almost all of the money.
Healthcare and retirement
I don’t have a ton of experience here, but my wife and I are both self-employed and we have health insurance from Blue Cross (found via Esurance). We’re fortunate to have good health, but I’m guessing that pre-existing conditions are a huge problem if you want to be self-employed
Anyone have any answers here?
We have IRAs through Fidelity , which I highly recommend. Planning for the future is important, plus it helps cut down on your tax bill.
Subcontracting
People have asked why I don’t just subcontract out some of my extra work. I think it’s a fine strategy, but I’m personally wary of giving work to someone because if they fall through, I’m on the hook. I might make an extra couple thousand a month doing that, but if I have to do the work and end up jeopardizing my other clients because I don’t have time to focus on them, I lose more than I gain. Plus, I think the time managing that subcontracting process is a lot more than you think. At some point, you’re running a development agency, and that’s just not my goal. I did teach my little brother to program over the last couple years and he’s paying his way through private university by doing subcontracting for me. Family is a little different, though. If you have too much work and you’re considering subcontracting some of it, maybe it’s time to raise your rates.
Finally, keep this in mind: freelancing might seem overwhelming, but your competition is terrible. Seriously, absolutely terrible. I think almost all of my clients have gone through several programmers before me and their expectations are generally pretty low. Making clients happy can be hard, but it isn’t complicated: be clear in your communications, be honest, and build good stuff on time and on budget. And don’t give up during the first year…it takes awhile to get it right.
You might also enjoy:
- How to become a freelance web developer
- Web development triage part 1 – Six things you need before you work on an existing web project
- Web development triage part 2 – Six steps to working on a new project
- I did my part…
- The Inerrancy of Scripture, Part 2
You should subscribe and follow me on Twitter here.

Good points in this series. Learned most of these the hard way over the past 15 years (some as freelancer, some not).
I would question the ability to sanely do *2500* hours of billable work. It all comes down to the sort of work you're doing, but that's an *awful* lot of work to bill, in addition to looking for gigs and such. Certainly it's *possible* – there's > 8000 hours in a year. But realistically between sleep, living and looking for other gigs, 2500 billable is hard. And likely not possible without a full funnel, which most people don't start off with. In terms of billable hours, I tend to have around 1000/year, with some projects billable but not hourly (project based).
re: healthcare, we were 'rated' – some pre-existing conditions (nothing major though) and are paying more than the 'lowest possible rate' on the BCBS website. However, it's still manageable. We've gone 'high deductible' which keeps rates down. For people with children, it's probably a higher expense, but again, likely not prohibitive in all cases. However, I think you probably do need a sizeable nest egg to have decent emotional stability for your family during the feast/famine cycles many freelancers face. Living 'check to check' when you don't know when the checks are coming is a recipe for lots of familial upheaval.
Shameless plug – I'm organizing http://indieconf.com which will have a number of speakers exploring many of these topics in a lot more depth face to face in Raleigh NC.
thanks again. i'm planning on going in the freelance direction pretty soon, and i'm sure i'll be referencing this post over and over. cheers!
2500hrs / yr is doubly not possible when you think of all the legwork and paper work you have to do as an independent. I have about 1 hr / day answering emails and phone calls from customers who currently don't have any open projects. Do I bill them for calling me to let me know what next year will look like? no. Also, lunch. Do you bill your clients for lunch? So, marking off about 1-2hrs a day (for lunch, self promotion, schmoozing, blogging) you'd have to work around 50-55 hours per wk with *no* vacation time. No vacation time is pretty impossible because your clients *will* take a vacation and you won't be able to get any answers nor approvals from most of them *at*least* between dec 25 and jan 5.
Realistically, you can get about 1600-1700 billable hrs / yr. And that's working like a dog and not getting much out of any weekend. 35hrs billable / wk * 50 wk. 50 weeks is pretty much no vacation time at all, just the time between Christmas and New Year's that you can't get much done even if you wanted to.
Sure you might want to make up that lunch hour that you don't bill for on the weekends or late into the night. That's fine, get up to 40 hrs / wk. But, you're going to get sick, or take a vacation, or have to wait to get your car fixed. Something is going to happen and you're going to lose billable hours. Better estimate conservatively.
40 hours * 40 weeks is 1600 billable hours. "12 weeks off?", you think. That's only 1 week a month. That's only 5 days a month, that's like just taking off every Friday. Isn't that sort of the "promise" of being independent? … that you can set your own hours.
And you can't actually be taking that off. Unless you have a 1600 hr contract sitting on your desk, you need to spend those measly 5 days a month getting more business – or worse, waiting for contracts to get signed to start work.
Personally, I do have a 1600 hr contract coming my way and it is making me think twice. There would be 0 time to do anything else other than just answer the phones and tell people that I'm booked for the whole year. What kind of project can you take on and only work 8 hrs/wk on?
Sure, you can *do* 2500/yr of work, but I just can't see anybody doing over 1800/yr of *billable* work and being honest about it.
Which is why project-based work *can* be a better deal. Get paid for results, not time.
Just a quick note. I tried to check out your http://howyoueco.com/ -> DB error. You might wanna get that fixed since it's the first site on your portfolio.
Thanks, but it's not my site, but something I worked on for a client. Looks like they let it lapse, so I'll have to remove the URL.
My solution was to relocate myself first to Brazil (cheaper than the states but not super cheap), then Thailand (super cheap). I just finished a year-long contract and I've saved up enough money to take a year off, without even setting a budget. Of course it is more difficult to work with clients when you live 14 time zones away.
Hey, I'm currently in Chile and will fly to Thailand in December. I'm from Finland, and I have been working for a client from there, so I've got paid to a finnish bank account and the taxation is normal.
But do you have any experience how to work for clients from different countries? Where should I pay taxes to? Should they pay me to my finnish bank account or something like PayPal? Which is the best way to go?
I'm approaching the end of my first year freelancing and have just come to realize most of these tips for myself. Thanks for the clarification and advice.
Oh I also love this comment system, very much, installing it on my site ^^
Great posts Ryan! Thanks for taking the time.
Ryan –
I love the statement "your competition is terrible!" What you say is true, unfortunately.
I routinely bill > 2500 a year for the past few years. But, from what I've recently read, that's because my rates are too low
How do you handle all your bookkeeping? Invoices, estimates, time-tracking, etc..
I second this. More generally, what is the entire technology stack a freelancer uses, from bookeeping/invoicing/payments to project management to code review and delivery, etc.
QuickBooks?
I can vouch for quickbooks, although indinero might be of interest for some people.
Ryan, this has been really helpful, thank you!
Yes, that sentence at the end of paragraph ten makes so much sense.
I think of it as intellectual arbitrage, and it is the reason I chose the fluid field of web programming.
Congrats on your experience and confidence.
Great post. Valuable information.
you realize that by encouraging new developers to enter the freelance market you're creating extra competition for yourself, right?
it seems steve like you are afraid.. besides ryan seems like the real deal.. maybe you are scare because you are not steve.
@Ryan, what's your view on/experience of using such sites as oDesk, Elance, etc? There seems to be a lot of people on those sites (apparently often living in developing nations) that are charging what I would see as ridiculously low rates and I certainly wouldn't be interested in racing these guys to the bottom. I guess your comment that "your competition is terrible" is probably relevant here to some degree. But I wonder how discerning the customers who hire people through these sites are. Do you think they realise that it might not be the best idea to hire some guy from Papua New Guinea who's charging $15/hour? Or are they all just "bargain" hunters?
In a country where the average annual income is around $2200 (Papua New Guinea in 2003) or even less for other countries, you could expect someone charging as low as even $8 per hour to possibly be pretty proficient, at least enough so for many people's needs.
I certainly didn't mean to paint with too broad a brush with my previous comment ehsanul, sorry if it came off that way. However, I have actually spent some time working in PNG (which is why that particular country came to mind), I've experienced the web industry there first hand and it's pretty bleak. Most IT work is still being carried out by foreign nationals. The state of their Internet connectivity and availability is at least 10 years behind what a person in a developed country would take for granted.
I'd like to be able to say that a freelancer in PNG charging $8/hour or $15/hour would be a good bet, but I can't honestly say that based off my own personal experience. Perhaps someone else may think otherwise and If that's so, then I'm glad their choice worked out for them. The people I met there were very nice and I don't mean to cast PNG or any particular people in PNG in a negative light, I'm just speaking to the facts as I saw them when I was there and I'm sure things will continue to improve over time.
He's right about Magento, well paying clients.
However don't use Magento it's horrible, google up on it.
Sell your client on a MVC or Rails.
Nice Poset. It's very useful for me to become a freelance web developer. But I found that's so hard
[...] Part 2 can now be found here. Hello there! If you are new here, you might want to subscribe to the RSS feed for updates on this [...]
If you're in good health, you should try to bypass standard health insurance and look into a Health Savings Account (HSA). It's like a 401k for healthcare. You get basic catastrophic coverage (5-10k deductible) and bank the rest.. and that "rest" is 100% yours indefinitely.
And if you're going to get one, you need to set it up *asap* the rules change heavily on Jan 1, 2011 and again every 12 months after until they're pretty well phased out in 2014 under the "Healthcare Reform Act".. but in the meantime, you can put $8-9k/yr away tax free.
I've had an HSA for over 5 years and it's fantastic. Here's the last update from my blog: http://caseysoftware.com/health-savings-accounts-…
I am new to freelance with just a few clients under my belt. I am curious about a few things:
1. Should your "company website/portfolio" contain your personal blog as well or should they be separate sites?
2. Do you have any tips for the actual development process to make it faster/more efficient to be able to make money faster?
3. Tips on how to stay focused
4. Do you offer extra services like SEO, Inbound Marketing, Web Hosting, etc
Another question would be what IDE do you use for development and what other supplementary tools do you use?
Hi there, great couple of posts. Will definately be trying a few things out and some of the things you said i was already kind of toying with in my head so seem like a good idea now. I am working for ridiculously low money at the moment and i only do it on the side.. I am finishing off the last few jobs now and i'm gonna leave it a couple of months and get a serious skill down. I am just 'winging it' at the moment… lol I plan to master wordpress, which i am well on my way with and then maybe look at facebook apps after reading what you have said. Then jump straight back in and i think start with the local businesses etc and maybe try my luck with a few agencies. It is a big jump to go from learning to being 'dependant' on it so i know i am going to have to work hard. Anyway, just saying thanks for what i consider to be an honest and usefull post…. Thanks!
thanks for the tips, Ryan. I just started as a freelance. Yes, it's quite tough earlier, but I believe in what I do right now.
Knowing your market value as a freelance web designer/developer (and convincing clients to agree) is the tricky part, since there have to be concrete measures to determine it. Like how much you were paid for a similar project in the past, for instance.
Ryan, I've read both your posts and agree with your points completely. As a freelancer for more than 5 years now I appreciate your stated points. Oh and to those commenting on the "billable hours" => You can bill 2500 hours without actually working 2500 man hours. Between "averaged" per project values as well as managing your time for site/project planning, yes that's billable time too, the hourly wage can apply to 2500 hours MAX. Squeezing more than that into a year as a one man show is hardly going to fly with any client.
One can't possibly work 2500 hours a year in addition to continual self education, perfecting your "art", pet projects and of course, life in general. But while on the phone and answering emails in between planning and working on projects, the billable time is there.
As you have stated, your preference is to work hourly, whereas over the years it has almost always worked better, and been more profitable, to price out per project. Just make sure that your contracts contain a precise scope of work…
Cheers to all and happy freelancing!
I found this article very helpful. Freelancing is something I have just gotten into recently and am really enjoying it, keep up the good work.
My advice is to put your name or initials in the meta tag of the websites you created. This way, prospective clients can easily verify your portfolio.
Hi, Great article! Very well written and straight to the point. I am referencing some of this information in my own blog as a guide, I hope you don’t mind.