How to become a freelance web developer
ryanwaggoner.com
ryanwaggoner.com
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?
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.
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?
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.
I'm not sure the influx is that stable. And I'm not sure I want to shift to being a manager of a multi-person development shop. I suppose if I'm sub-contracting then I'm doing much the same admin work there as I would with a regular employee, except I think having that formal "business with employees" arrangement adds some complications (payroll, taxes, insurance, etc.)
But it has crossed my mind.
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.
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).
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)
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).
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.
http://twitpic.com/2vedlp http://twitpic.com/2vef3n
You get a bookmarklet to save a listing from any site, keep track of the relevant bits of data (company, square feet, salary, bedrooms, mileage, etc), and move them through a little workflow (interested, applied, contacted, lost, etc).
You can use it for jobs, apartments, cars, dates, whatever! All the fields and workflows are completely customizable.
It's been on the backburner for a while, since my day job has gotten busy, so there's no help available and signups are invite-only right now. But you guys seem like the kind of people who can figure it out pretty easily ;)
Here are some invite codes:
http://flowthing.com/invite/r4bjpgrh11
http://flowthing.com/invite/zb6kqavuu4
http://flowthing.com/invite/1wd5m65i4t
http://flowthing.com/invite/2iqihqylrn
http://flowthing.com/invite/svjkj7ambs
http://flowthing.com/invite/knfaktvf6a
http://flowthing.com/invite/h6d0o4h3ye
http://flowthing.com/invite/act1cl1f94
http://flowthing.com/invite/imto1f10e8
http://flowthing.com/invite/ay3fqfoujz
http://flowthing.com/invite/nqdfnkjj11
http://flowthing.com/invite/xmbvsveyrv
http://flowthing.com/invite/dad8jaowpn
http://flowthing.com/invite/vebgl2ycrw
http://flowthing.com/invite/kb69pji0tm
http://flowthing.com/invite/792oaih7qcMy 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.
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.
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.
Of course, these aren't lump sum, flat bid projects - they're paying for an agile team over the course of a year or so.
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.
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.
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.
How's the business going for you guys in Vancouver? Do you have any problems finding customers in and outside Canada? Is being in Vancouver a problem for getting US customers? Sometime I saw postings where they are looking for a local web-developer for contract.
Would love to hear more advise from a fellow Vancouverites!
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/
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.
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).
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.
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.
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.
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.
Was it tough justifying high rates with little experience?
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.
Let's say they get a budget of $80/hour for the project. Their goal is to sell it to you for as little as possible so they can take the difference. So they're always lying to you about the customer's budget, because in truth it's about them maximizing their profit.
I once had a recruiter offer me $25/hour. I laughed at them and told them to not call me back unless they could do $60, which at the time was my rate. They called back about 15 minutes later and said the client had increased the budget and they could do $60.
> "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.
http://php.net/manual/en/reserved.variables.server.php
HTTP_REFERER "The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted."
1. See discussion here http://news.ycombinator.com/item?id=1738183
I associate "web developer" with graphic design or dinky brochure sites. I've been calling myself a freelance programmer. Thoughts?
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.
* 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]
I think it's usually quite easy to tell whether a client is going to be bad news; e.g. if a prospective client is looking for the cheapest solution above all other requirements, or they're very vague about deliverables it's probably worth giving them a wide berth.