I quit my full-time job as a software engineer.
It turns out quitting is the easiest part of a freelancer's journey. I wasn't sure what to do next. I ended up on a 2-month backpacking trip around Europe — most likely influenced by Alex MacCaw's How to Travel Around The World For a Year.
After the trip, a former co-worker referred me to an interesting contract. I ended up working in a research lab for 4 months. Afterwards, I started seeking out contract work. There were no epiphanies. I wandered into becoming a freelancer.
How I Got Clients
The tactics I used were:
- Reaching out to former colleagues and friends
- Replying to recruiters
- Job boards (contracts/freelancers section)
Reaching out to former colleagues and friends was the best way to get clients. The next time you're out for a coffee or lunch with someone, mention you're currently freelancing and seeking a contract. Many freelancers even start out by contracting with former employers.
Getting messages from recruiters in LinkedIn? Some of these companies offer contracts in addition to full time employment. My biggest contract actually came through this channel.
My least favorite approach is using job boards. I've used Craigslist Gigs, Hacker News' Seeking Freelancers, Ruby-only sites, and a few more. The response rate always knocks down my confidence a peg or two.
How I Priced
I started out by asking for $50/hour.
As I felt more comfortable with my workload, I started charging a bit more for each new client and my rate slowly increased.
I also switched to a daily rate — the best decision I've made this year.
Switching to a daily rate was a win/win. Clients get a freelancer who's focused on their project. The freelancer implicitly only gets batched work.
The switch to a daily rate came from various Hacker News comments left by patio11 and tptacek. Patrick McKenzie talks more about not charging hourly here: Growing One's Consulting Business.
I'm hoping to switch to a weekly rate in the future.
How I Scheduled Contracts
Full-time or part-time? Focus on one project or juggle multiple projects?
My first contract was full-time (40 hours/week) and I only focused on that single project. It was no different than having a full-time job.
I also tried juggling multiple projects. It was painful. Finding contracts was a job on its own. I ended up billing 20 hours/week but felt like I was working 40+ hours/week.
Focusing on one full-time client is easier but riskier. What if you lose that client?
These days, I prefer focusing on one client. This has led to plenty of downtime (when a project ends and I don't have another contract lined up). If you go this route, it's important to save money and to diversify your portfolio — more on that later.
How I Stay Motivated
I'm still nowhere near my full-time salary. The downtime between contracts is de-motivating. Not to mention the stigma associated with freelancing — "when are you going to get a job?". Oh, I'm tempted to start interviewing at least once a week.
I stay motivated two ways: listening to podcasts and having a bi-weekly meeting with a friend.
There are quite a few podcasts about freelancing and starting products. It helps knowing there are other (more successful) developers doing the same thing:
You may be the sole owner of your business, but it doesn't mean you should go at it alone. I've started having bi-weekly meetings with a friend. He holds me accountable to my long-term goals. It's also a time when I get to discuss about problems and recent wins.
How I'm Planning to Grow
A friend asked me if I plan on growing this business into a consultancy with employees. I have zero intention on doing so.
I'd rather diversify into products. These developers started out with consulting and transitioned into products:
In particular, I like Rob Walling's stair step approach mentioned in: Moving from Consulting to Products with Brennan Dunn. The stair step approach means you start with a small product and slowly move up. With each product launch, you'll have more motivation and knowledge.
Freelancing is my first step. What's yours?