
How to become a freelance web developer - ryanwaggoner
http://ryanwaggoner.com/2010/10/how-to-become-a-freelance-web-developer/
======
garply
What is the sales cycle like? Do you take on more than one client at a time?
If so, on average, how many? Are you looking for new gigs even while in the
midst of implementing something for a given client?

Should my blog be about tech-related stuff only?

Do you always sign a contract before taking a gig?

Is fixed-price or hourly-rate work harder to get? I always see professional
freelance devs using hourly rates, but I really prefer to take fixed price
gigs (with payment milestones if I don't know the client well).

I occasionally see contractors complain that they have to much work. I'd love
to be subcontracted for some of that work (seems like a pretty straightforward
proposition - I'll do your extra work for a bit cheaper and you can keep the
difference), but would that hurt me long-term because I wouldn't develop
relationships with end-clients? Is this even a reasonable strategy for getting
work?

~~~
ryanwaggoner
I'll elaborate more in part two, but briefly:

 _What is the sales cycle like? Do you take on more than one client at a time?
If so, on average, how many? Are you looking for new gigs even while in the
midst of implementing something for a given client?_

2-4 weeks to land new gigs. 1-3 clients at a time. Yes (see sales cycle
answer).

 _Should my blog be about tech-related stuff only?_

Only if you want it to be. My clients say they feel like they know me better
after reading my blog.

 _Do you always sign a contract before taking a gig?_

Usually, but not always. Probably always should, but there's really little
recourse if a client in Kansas stiffs you for a $5k job. A contract won't
help.

 _Is fixed-price or hourly-rate work harder to get? I always see professional
freelance devs using hourly rates, but I really prefer to take fixed price
gigs (with payment milestones if I don't know the client well)._

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.

 _I occasionally see contractors complain that they have to much work. I'd
love to be subcontracted for some of that work (seems like a pretty
straightforward proposition - I'll do your extra work for a bit cheaper and
you can keep the difference), but would that hurt me long-term because I
wouldn't develop relationships with end-clients? Is this even a reasonable
strategy for getting 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. 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.

~~~
jamesbritt
"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. "

That's my feeling too, though I'm (currently) in the camp of "too much work."

I'm reluctant to farm any work out that's going to ultimately have my name on
it, but being over-busy means I'm turning away work, missing out on potential
stable business, and staying coupled to too few large jobs.

What do other people here do? How do you arrange to subcontract?

~~~
pmjordan
I too have more work coming in than I can take on. If I know someone who can
do it, I'll recommend them on directly rather than letting them go through me.
I don't gain financially but it generally breeds goodwill. I _could_ take a
referral commission (some acquaintances seem to do this), but again I fear I'd
be somewhat on the hook if the other person screwed up. Plus, if customers
refer me other customers, they don't take a cut either.

~~~
jamesbritt
That's what I've been doing. I don't like to leave people hanging, so I try to
find someone who can take care of them.

I also like that people feel they can come to me as a first point of contact
when looking for a developer, that if I'm not available I'll (hopefully) point
them to someone who is.

------
wccrawford
This sounds like good advice to me.

BTW, "Build something first, even if it’s just for fun." doesn't just apply to
freelancing. You should do this even if you are applying to work for a
company. Having something to show means A LOT in an interview.

And if you're in college and haven't done that yet, you're wasting time. Get
on it. Have something ready for when you graduate.

~~~
gavreh
That is absolutely true. I once got a job offer because I could speak at
length about a custom news-scraper I simply wrote for myself so I could read
the news easier in the morning. Have something built that you can explain -
including the challenges and why it is important.

~~~
lovskogen
Showing practice trumps showing theory (e.g a degree), because in showing
great practice, people know you have great theory too.

------
bballant
I've only been freelancing for 6 mo. but I have about 10 years of experience
as a software developer in the same market. Right now I'm totally saturated
with work and it's come entirely through contacts -- I haven't talked to one
recruiter or answered a single ad. So far it's been a blast, but not quite as
lucrative (yet) as working full-time for a salary.

In my opinion, the two major reasons I've had success finding good work are:

1\. I'm specializing in a popular niche and, backed by my experience, I can
claim I'm an expert. This also means I can charge high rates.

2\. I've always been a nice person to the people I've worked with and have
remained friendly with previous bosses and co-workers. I've developed a
reputation as a capable programmer who's easy to get along/work with. (Conan
O'Brien, last spring, attributed his success to being passionate about what he
does and being a nice guy. I think this is really true.)

I'm still struggling with a couple of things. I basically always get my time
estimates way wrong. I have trouble focusing and switching contexts from
wheeler-dealer (finding jobs and managing contacts) to h-core coder to my
personal life. To that end, I tend to work from my clients' offices quite a
bit and I'm considering renting a cube somewhere. Finally, being a nice guy
has it's downsides--I almost never get paid promptly and clients often times
don't provide as much support as quickly as I need (like when I need to work
w/ a client API and I need documentation/time with their engineers to move my
work forward).

~~~
alexyim
If you're fully saturated with work and you're not making as much as your
salary, you're probably not charging enough.

Freelancing's risk is that projects come and go, so you need higher rates
compared to salaried jobs to provide more of a buffer zone for yourself.

On the other end, your clients are saving from not having to provide benefits
and having efficient resourcing (both in that they can ramp up the work when
needed, and the fact that if you're billing per hour, you're actually doing
work as opposed to someone just hanging out at their 9-5 job)

~~~
bballant
Thanks for the tips. Perhaps I could raise my rates, but I think I lose money
more by a) not properly estimating timelines and b) becoming idle while
waiting for client feedback/help/etc. As I said, I'm only 6 mo. into it, so
I'm still learning how to better handle these things. I'm finding that when I
go into a client's office to code, they are more inclined to provide me the
resources they need and I feel ok billing them for the hours, even if they've
left me idly waiting for their input.

~~~
techiferous
Here's a rule of thumb: your hourly rate is roughly comparable to your yearly
income.

Here's why: you'll probably have about 1,000 billable hours in a year (because
not all of your work is billable, there will be some dry periods, vacation and
sick days are unpaid, etc.). If you charge $90/hr, your income is $90,000.

But this is definitely not equivalent to a $90k salaried job. You are taxed at
a higher rate. If you set aside 40% for taxes and 10% for a rainy day, only
50% of your income is spendable. So $90/hr gives you $45,000/yr of spendable
money (and you still have to pay for your benefits like health insurance).

So don't be shy about charging more, but do make sure that your customer is
getting what they pay for (quality code in a timely fashion with good customer
service).

------
ryanwaggoner
Someone yesterday posted a question about where to find freelance work, and
I've been fairly successful at this, so I thought I'd write up a few of my
thoughts on transitioning to the freelance thing.

------
ssharp
"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"

I built a quick app a few years ago that helped out with this tremendously. I
would feed the app a list of craigslist cities I wanted to watch, and it would
grab the RSS of the web/info design section for that city. It would parse the
feed and dump the jobs into a database. It would load new jobs with a cron
that ran a few times a day.

The dashboard page showed a list of jobs that hadn't been acted on yet. You
could easily eliminate a job with an [X] button, or move them into a "save for
later" area. You'd have to act on every job, but it was quick to do so. Then
the app had a built-in responder that allowed me to initiate the conversation
from within in the app.

After putting this thing together, I got a total of 2 good jobs off of CL. I
quit looking for freelance jobs shortly after but may start up again once I'm
done with my masters.

~~~
bjplink
It might not be worth the effort but you might want to consider making this
available to the public as a service for freelancers.

~~~
ssharp
I had mostly forgotten about it until I saw this post. I think it would be a
good idea to give to freelances and may revisit it in the near future.

------
rwhitman
The gigs board on craigslist is generally a huge waste of time. Maybe a little
better in the bay area than any other city, but even if you do spot a decent
project chances are if they are posting in the gigs board, the client isn't
that committed. God knows how many useless meetings with flaky idiots I've
taken through CL gig board ads.

My approach to CL is let them come to me, unless I'm desperate. That means
post your resume, put an ad up in the services section, keep A/B refining it
until you get hit with good emails.

One of the best approaches to finding local clients (that I rarely do and
should attempt more) was actually cold-emailing local businesses that conduct
a lot of web dev work. Back in 2004 I moved to the bay area with no clients
whatsoever, and did 2 things - posted CL resume listings, and cold emailed
every design agency I could find. At the end of a week, I had enough clients
to last me the next 3 years.

------
decadentcactus
So about 30 minutes ago I decided it may be a good idea to look into (local)
consulting, for businesses or people who don't know much more than "I want a
website". Has anyone done this/any advice?

I figured to start with (aside from occasional freebies) maybe $500 for 3
hours. No idea where I came up with that number but it gives me something to
start at.

But maybe I'm not set on what I _do_. My plan was to walk them through
options, advise whether they need something custom built or hacked wordpress
or use a hosted shop. Then take it from there/work with them to find
developers (or do it myself).

Good? Bad? Any tips would be good.

~~~
hundredwatt
Depends on who the client is and what you want. If it's just about making some
cash, find some local businesses (restaurants, etc), charge $400, then set
them up with a wordpress blog with a theme from theme forest, woo themes, or
??. Spend an hour customizing it and your done.

If you want to build a more sustainable web development business, find some
larger corporate clients, and do basically the same thing but instead of the
off-the-shelf theme, pay a designer $500-$1500 for a custom theme then charge
$5-$10K per site. Get an intern or temp worker to do the data entry.

Also, I've found that "I want a website" type people really like to work on
their own website once they have it. So don't be scared to let them have a go
at the Wordpress (or whatever) backend. Just be ready to clearly explain the
limitations when they inevitably make ridiculous requests.

~~~
hansef
How have you had success finding larger corporate clients? I've been working
at 20 person agency as Director of Engineering for 5 years, but we generally
run $500k+ year long webapp builds in Rails, not $12k corporate sites. I'm
trying to catch up on some debt, and have the client and team management
experience to put together some "mini-agency" projects like, but am not sure
how to go about finding the sort of client who needs this type of site.

~~~
hundredwatt
Thinking back, I realized that all my larger contracts have been with
companies where I had an inside contact (friend who was working there). Also,
look for companies in fields outside of internet technology. They certainly
won't be spending $500K on webapps, but do want a modern presence online.

I'd recommend asking friends/family if there company is unhappy with their
current website or other technology services. The market rate for design
agencies is probably $15-50K, so an individual who can do it for slightly less
than that and in a friendly manner is highly attractive.

~~~
bluekite2000
Have you been able to grow beyond the "inside contact" deals? And by "look for
companies in fields outside of internet tech" can you give some examples?

------
csomar
I think sending your cover letter to hundred of employers is just a bad idea
(may be I'm wrong or these are just my thoughts).

I prefer to read the freelance job description and check if I'm ready to do it
and it's a good match. If so, I'll take 15 or 20 minutes to write about it.
I'll mention ideas, suggestions, my skills... something really made for that
ad.

I won't send hundred of emails a week, but instead 3 or 4 and pick carefully
the jobs I chose. If the buyer didn't take the time and spent 30 or 20 minutes
to write the ad, his job is probably not worth checking.

------
naz
> 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.

Not sure about this, we have had a steady stream of clients since we got going
without a particularly attractive website (<http://gastownlabs.com>)

I'd say the percentage is 95% but the metric isn't your web design but
references from previous clients.

~~~
techiferous
All you need is color. Your site's design is definitely good but it screams,
"We're afraid of color!" ;)

I started my blog design with a black-and-white theme thinking it would look
sharp and sophisticated but it actually just looked bland. So I threw some
saturated colors into my blog and it breathed life into it:
<http://techiferous.com/>

Here's a good tool for choosing color palettes:
<http://colorschemedesigner.com/>

~~~
TheSOB88
I agree about the lack of color being a problem. In my mind, it links you with
mimes and aloof Mac designers who think they're better than you. Maybe that's
what you were going for, though!

------
mcargian
I generally reply to less than 2% of CL ads - choosing the ones that I feel I
have the best chance to win. I never send a resume, I only reply with links to
other projects I have already completed that are pertinent to the job request.
I also mention that references are redily available, which they are, although
no one usually checks on them.

I find that answering the job ad specifically, explaining how I would work on
the problem, and mentioning how I have done something similar in the past gets
me the best success rate to speak with the client directly. Even if you don't
have exactly the same project under your belt, you can reference other web
work and explain how portions of the project are the same.

------
hundredwatt
I agree with most of the article. I am primarily a web programmer, but most of
the projects I work on have or already had excellent designers work on them,
which makes my portfolio projects that much more appealing.

However, I find your work-acquisition strategy a little shallow. The best
thing I can recommend is to spend a decent amount of time crafting your
message (even if its as simple as "I make websites for small businesses").
Consistency and clarity is key here over specialization.

Once you have a clear consistent message tell everyone, especially non-
technical folks. As the article said, its a numbers game. By doing this, I
have found clients through friends of friends who talked about me, twitter,
and my mom even picked up a project for me at her book club.

If you can manage your own projects, I would branch out from just working with
firms that already hire/manage designers/devs (freelance or not). There's an
endless supply of businesses that hire contractors without having technical
managers and then end up extremely unhappy (at the least). If you're
competent, a good communicator and transparent with the client, you'll easily
wow them over and over again. Further, these clients will pay consulting rates
(min $100/hr) rather than designer/developer rates ($50-$75/hr).

------
lwhi
The more I think about freelance work, the more I come to the conclusion that
we all need to start specializing.

Every business needs a set of unique attributes, and many people are creating
freelance businesses. How can people possibly compete effectively without
becoming _very_ good at least part of their job description?

I know that many of us like to think of ourselves as capable of tackling
everything, but in reality it's very difficult to wear five different hats.

I'd like to see networks develop which allow developers and specialists to
effectively work with each other in more specific capacities without needing
to form permanent business structures.

I'm fairly certain that this is the way the labour market is headed - but Ip
think it would be useful to be able to make the process of partnering with
other freelancers more democratic.

~~~
lhnn
You mean something like DB experts working with server experts working with
programmers working with UI designers?

~~~
lwhi
I do, yes.

In the future, I think there's a strong chance that we're all going to end up
as specialists - I'd like it if there was a network / site / application that
allowed these informal working arrangements to function well.

------
terra_t
ho hum.

you're always competing with the person who'll try to "copy facebook for
$15/hr"

once you've got more than one customer you'll inevitable get in the situation
where, if you were honest, you'd have to tell Customer A that his project is
late because you've been working on Customer B's project. If you are honest,
Customer A will freak out and odds are 50% or so that he'll dump you right
there.

I joined the project management institute, and one day looked at the code of
ethics I signed onto and I realized I'd be violating it all the time if I was
doing typical freelance work for the typical freelance client.

So I won't.

~~~
paulsilver
I rarely find this an issue. I've found I'm more likely to be waiting for a
client to be getting back with some sort of feedback, and therefore using my
time to be working on another project.

This may be down to handling client expectations at an early stage. If you
make it clear that as a freelancer you will be working for several people at
any one time, and give them a time estimate for when progress will be made,
I've found most clients are fine.

This does mean I have to make sure I'm progressing enough on each project to
keep each individual client happy, but I've found for a lot of people, as long
as they see some progress and you're keeping up communication with them -
which can be as simple as a 'here's a quick update' e-mail - then they're
happy.

If you get a client who wants you to work solely on their project, this can be
more of a problem. As I've been freelancing a while I'm in a position to say I
can't work that way, and know that I'll find other work if they then do not
want me to work for them. When I was starting out and work was thin on the
ground, I couldn't be so picky. Then again, I didn't have as much work to
juggle either.

------
nolite
How did your rates evolve over the last four years? (from when you were a
beginner with no experience, until now)?

Was it tough justifying high rates with little experience?

~~~
ryanwaggoner
I started at about $50 / hr and now I charge about twice that for smaller
projects. For longer-term or larger chunks of work, I give discounts because
it saves me time looking for work.

The high-risk, high-reward stuff is fixed-price gigs where I charge a set
price for the whole project. I've taken a bath on some of these, though never
lower than $50 / hr. On the flip side, the good ones have worked out to high
hundreds per hour. Stressful, though.

~~~
tocomment
Do you ever get work through recruiters? Do you find their rates to be less?
Whenever I get contacted by a recruiter and I tell them my rate they freak
out. They say "The customer has a stretch budget of $40/hour for this
contract" like that's some huge amount.

~~~
ryanwaggoner
I've landed two gigs with recruiters at about $75 / hr, and I've made it clear
that I'll be raising my rates after several months, assuming things are
working out. I think it just depends on the type of work you're doing. I would
imagine iOS, Rails, Django, and anything other than PHP would probably be
more.

~~~
nolite
are you doing php only?

------
ryanwaggoner
Just posted part 2, which you can find here:
<http://news.ycombinator.com/item?id=1767620>

------
marknutter
I've been making a good living as a freelance web developer for the last three
years and never once have I had to inquire for work. If you do a good job on
your client's sites, create a lot of public side projects, and network well
within your local community of developers, you'll have more work than you'll
possibly be able to manage.

------
jlees
Have you considered outsourcing the initial client contact (numbers
game/craigslist posting and replies) part of the process?

~~~
ryanwaggoner
No, because I only do this a few times a year, and then I have enough work to
last me several months at least. And now that I've been doing this for several
years, I only have to do it maybe once or twice a year. I get enough repeat
work, referral business, and long-term contract gigs that finding work isn't
the problem it once was.

~~~
boundlessdreamz
several months? What kind of jobs do you typically apply for? And if you do
this only a few times, how do you stagger the client work ?

------
nathanh
Does anyone else see this at the end of the post?

> "Hello there, fellow HN user! If you like this post, I'd really appreciate
> an upvote." [1]

I'm not sure how I feel about it, but I am curious how it's done.

1: <http://i.imgur.com/gu47C.png>

~~~
ryanwaggoner
It's WP Greet Box and it's fairly controversial here [1]. I may remove it. I'm
not entirely sure I see the problem with reminding HN users to vote for a
piece of content if they found it interesting, but it's not a big deal so if
people are going to boycott me over it, I'll dump it.

1\. See discussion here <http://news.ycombinator.com/item?id=1738183>

~~~
hullo
I liked it, and prompted me to finally get around to registering, so the win
is clear for HN as well.

------
tocomment
If you primarily do Rails or Django applications (i.e., complex web
applications including database design) do you still call yourself a "web
developer"?

I associate "web developer" with graphic design or dinky brochure sites. I've
been calling myself a freelance programmer. Thoughts?

~~~
mechanical_fish
You need to think like your customer. If you are a subcontractor and your
customer is a shop that is buying code, perhaps you can call yourself a coder.
If you are selling directly to customers, who are buying websites, you may
need to call yourself a web developer.

And, yes, that means that customers will expect the whole package. They don't
know how to draw the lines between how the site looks, how the UI works, how
the backend works, and how the hosting and the maintenance workflow will work.
Those lines can be hard to draw even for experts, and drawing them is _your_
job. Organizing that, and explaining it to them in their terms, is much of
what they pay you for. So you'll need to learn to do some graphics and front-
end work, or you'll need to learn how to subcontract that, or you'll have to
become a subcontractor yourself or otherwise join up with a network of people
who can band together to accomplish all the subtasks needed to build and run a
site.

------
tocomment
How do you handle just choosing the closest cities to you in Craigslist? Most
of the web developer jobs can be done from anywhere so it doesn't seem like it
would matter where the clients are located. Have you thought about searching
all craigslists?

------
vijayr
What kind of projects/jobs do you get usually? I mean, do you do facebook
apps, iphone, customize WP/drupal, or code websites from scratch, or...?

------
thierryd
Have you been badly burn by a client? (ex. doing a lot of work without getting
paid). What's the ratio of good client vs bad ones?

~~~
paulsilver
In my experience (seven years as a freelancer), most clients are good. You
need to build up your sense of who is good and who is bad so you can weed out
the bad ones early on. Things to look for are:

* Have they fallen out with their previous developer / team

* Do they start off saying they have no budget

* Have they decided it's a short job but have no noticeable idea of how long things will actually take

* They only want to pay at the end of the job, when they've received everything

* They won't sign a contract

On their own, none of these is a deal breaker (apart from the last one.)
However, if you start hitting two or three points, that's real warning signs
that they're going to be a bad client.

In the UK, I and a lot of other developers and designers ask for some money up
front (for new clients, long running clients not so much, it depends what
they're like.) I started doing this from advice from another freelancer, and
it's the easiest way of weeding out bad clients. People who argue about paying
25% to 30% up-front also tend to be the ones who pay late or argue about
paying the whole amount.

By not working for clients who won't pay a deposit, I've actually saved myself
hassle in the long run by not having to chase for payments.

The most I've been ripped off for is £300, but I've some freelancing friends
who are owned thousands of Pounds by various clients.

To mitigate risk, if you're doing a lot of work for a client it's best to
break it down in to milestones and bill frequently - at least monthly. That
way if they haven't paid a previous bill you can stop working until it is
paid, and you have less to lose.

[Edit - trying to format list]

------
code_duck
Huh... what's freelancing? Oh.. working for other people's companies? Why do
that?

