Want no-BS insights on building a highly profitable freelancing business?
✓ FREE 5 Day Course on Winning Top Paying Clients
✓ Q&A - Send In Your Questions, I Answer Them Here
✓ LIVE Webinars
✓ The Chance to Win a FREE Coaching Call
I guarantee 100% privacy. Your information will not be shared
So head back about 12 years, and I was employed in a small networking company. After deciding that employment wasn’t for me, I transitioned my job into a freelancing gig. I had one or two small freelancing projects on the side, generating about $400 to $600 each month, but it was my networking job (and now new freelancing client) that was generating about $3,000 per month as my main source of income.
I knew that the company’s financial situation wasn’t fantastic, and relying on it for 85% of my income wasn’t a smart move.
Tip: Even if your largest contract is financially stable, make plans based on losing that contract. Companies come and go, change direction and change ownership. Don’t put all your eggs in one basket!Image Credit (CC)
So, I decided it was time to broaden my client base. I had some tech skills – mainly embedded hardware, PHP programming, networking and Linux server admin. I got on “Rent A Coder”, which later became vWorker, which is now Freelancer.com and started hunting for projects.
I don’t recommend Freelancer.com any more. It’s changed a lot, and I haven’t touched it in over 5 years now. The structure, pricing model, and huge number of very low quality freelancers and projects make it very difficult to find decent clients and make a solid, stable income. 12 years ago though, there was about 1 good project for every 9 bad ones.
I was applying for anything I could get my hands on that paid “OK” and loosely matched my skillset. I’ve written technical tutorials, customized existing software, built PHP web applications, and more! After working with about 9 or 10 different clients, two of them turned in to longer term requirements.
I now had 6 open freelancing projects, and I was working intense hours to bring in the cash and build my business. I’ll try and remember the figures as well as possible:
- The networking job turned freelance (20h/week at $35/hr: $700/week)
- A small web programming project (3h/week at $40/hr: $120/week)
- A small technical writing project (3h/week at $25/hr: $75/week)
- My new long term web programming for a network security client (20h/week at $30/hr: $600/week)
- My new long term web programming for an online gaming client (15h/week at $40/hr: $600/week)
Total was 61 hours per week at $2,100 ($8,400) per month and I was invoicing my clients weekly. To invoice, I was just using an excel spreadsheet and some word templates that I’d fill in and convert to PDF.
Now, 61 hours per week is pretty intense and not very sustainable in the long term. I worked hard and saved hard for a couple of months before I realized that I’d hit my ceiling in terms of how much time I had available to sell.
I could either start to push my rates up, which would mean working even harder to provide more value, or I could take on extra staff.
By now, I’d had enough exposure to the way that clients liked to work, and also to the most common freelancing issues (over budget, missed deadlines, bad estimates, incomplete work, poor quality work, poor communication, etc). I knew exactly what I was looking for when I took on my own staff.
I also knew what other freelancers most wanted (stability, assurance of payment, good relationship, and decent, clear instructions). I set about hiring through the same “Rent A Coder” site as I’d won my own projects through, with the following advert:
“I’m looking for a reliable and experienced PHP programmer, happy to work across multiple projects, able to understand customer demand and develop reliable solutions that work first time. A lot of work available for the right developer, excellent rates. Please apply with a brief summary of your previous projects, portfolio and experience, your rates, a sample of some previous PHP code and why you’re the right guy for the job. If it looks like a good fit, we can move to a 2 hour paid coding test”
I was going to be trusting these guys with my clients and business that I’d worked hard to build, so I needed to be firm and not take any nonsense. I also knew that I was more than likely going to be hiring offshore. My current rates would not allow for me to hire freelancers in the western world at $30-$40/hr or more. Going to established web development companies would have cost upwards of $60/hr.
I was immediately inundated with about 50 responses, ranging from good to unintelligible! So I put the following process in place;
- If someone replied with really poor English, they weren’t going to be a good candidate for the project.
- Any applications that ignored/didn’t read any of the application requirements also couldn’t be considered (i.e. didn’t include their rates or a sample of previous code).
- Anyone who responded with a canned copy and paste response couldn’t be considered.
- Anyone who had any excuses for why they couldn’t meet the requirements (i.e. a common one was “all my existing projects are under NDA contracts so I can’t give you a sample of my coding work”) could not be considered.
- Anyone who had insufficient experience couldn’t be considered.
After narrowing down the list to about 5, I got in touch over Skype for a chat and to arrange the short paid coding trial. From there, I settled on one candidate. He was a young, experienced and ambitious PHP programmer from India, and I offered him $11/hr which is pretty exceptional compared to the standard wage level there. He was more than happy to get started as soon as possible.
As much as I hate dropping paying work from good clients, I had to drop the small writing project – it wasn’t my focus now and it wasn’t going anywhere fast.
Over the next 2 months, I slowly transitioned my new freelancer into my 3 web programming projects, until he was dealing direct with the clients. I frequently mentored him on code quality, communication improvement, and spending more time understanding the client’s business needs and building his solutions around them.
I finally had my time back! I was spending 20h/week on the networking project, and about 5h/week on quality assurance and management of the 38h/week my freelancer was putting in.
The profit generated through the freelancer’s work was income ($1275/week) minus costs ($418/week) is $857/week. My 5 hours of management time were generating $857/week.
I now had a serious problem. The majority of my business and income was entirely dependant on an offshore freelancer that I’d never met. If he was to quit one day, it would take me a month to find someone new and train them suitably, at which point my clients would have walked away. Sure, I had a loose contract in place with the freelancer, but it was totally unenforceable in practice. I hoped that paying $11/hr which was a significant salary at that time in India would be enough reason to stay motivated and committed, but I wouldn’t risk my business and reputation on it.Image Credit (CC)
Next step, grow from 1 to 3 freelancers, where for every 40 hours one freelancer puts in, the other two each put 5 hours in keeping up to date and understanding the projects. If one of the freelancers should disappear, we could continue on relatively easily.
This is where some really good luck kicked in! My online gaming client wanted a full rebuild of his website, and needed about 100 hours per week put in for the foreseeable future. He got in touch and asked if I could meet that – “Sure!” I said with a perfectly straight face.
Back I went on my hunt for more freelancers, and I put them through the same process as before. A week later, I had two new guys ready to start at $11/hr.
There were a few growing pains when we got started, but we quickly got into full swing. Let’s go back to the numbers:
- Personal networking job: 20h – $700/week
- Web programming for an online gaming client 100h – $4000/week
- Web programming for network security client – 20h – $600/week
- Misc small jobs and bits and pieces – $150/week
Development expenses were $11 x 120 hours: $1320/week + about 20 unbillable hours (cross learning): $220
Total profit: About $4000/week, or $16,000/month
We continued to grow over the next year to 5 full time offshore developers. The online gaming client introduced me to his other colleagues and we begun putting in solutions for them too. I kept the accounting side of the business very simple. I knew in my head what was profitable and what wasn’t, and for record keeping, I had a spreadsheet of all invoices and all expenses which I sent to my accountant every 3 months. I didn’t overspend, and knew I had to cover the tax bill when it arrived.
Then, disaster struck.
My online gaming client (90% of my business) went bust, leaving about $18,000 outstanding. Of course, I was morally and legally obliged to pay my developers – they were hard working guys with families, and I could afford to pay them. Not only had I been burned for $18k, but had to pay another few thousand to the developers for the work and had just lost a huge income going forward.
$18,000 is a big sum of money, but with 4 developers working on that project, doing 40 hours per week at $40/hr, it was about 3 weeks worth of work. What did I learn?
- The client started by paying invoices twice weekly, it then started to shift to weekly, then every 10 or 14 days he’d be part paying bits of different invoices. He had also gone from nice and very easy to work with for several years to becoming more aggressive, short and unpleasant. I should have seen the warning signs and reigned in the amount of time on the project until payment was cleared. Ever since, I’ve been far more assertive with billing.
- Just as I didn’t want to base my entire business on one freelancer, I should never have based it on one client – no matter much work that client was giving me. While the client was continuing to put more and more work through my team, I spent my free time making plans for the future, reading, going out, and going back to being a geek by playing with electronics and learning new technologies. Business development? Networking? I’d forgotten all about it – my business was growing itself.
I got back to Rent A Coder (which had then become vWorker), and I was shocked to discover that 4 years later, it was something altogether different. It was no longer the clean and simple job board that I remembered. It was packed full of membership options, advertising options and freelancers having to pay to reach out to customers or have their profiles shown. Worse still, it was flooded with low quality cheap freelancers and projects to match.
I decided to start up a tech blog, focused on the kind of work I was interested in. I turned out a lot of relevant content, built a lot of links through guest blogging, and optimized for search phrases I really wanted to attract. It took a lot of time, but it was worth it. I started getting a new lead once or twice per week, and every couple of weeks, I’d land a decent sized project.
About a year later, I was back to the same level of work as before, and business was good again! I’d learned my lessons though – never let client accounts get out of control, don’t put all my eggs in one basked, and never stop networking and doing business development. I also decided to diversify away from web development and into web security. A far more lucrative and in-demand skill.
You could argue that what I was doing wasn’t strictly freelancing any more. It was more running a company, managing other freelancers. That’s true, but that was always my aim. I did (and still do) plenty of freelancing throughout, but at the same time there’s only so many hours in my day that I’m willing to sell, no matter how much a client is paying.
Lets look at one final set of numbers!
- 60 hours per week at $30/hr: $90,000/yr with a 2 week holiday. 60 hours is working 10 solid hours per day for 50 weeks of the year.
- 60 hours per week at $40/hr: $120,000/yr
- 50 hours per week at $50/hr: $125,000/yr
- 40 hours per week at $60/hr: $120,000/yr
The numbers might look appealing, but with experience I can tell you that 50 or 60 hour weeks, every single week, start to become very tiring and frustrating – no matter how much you’re earning. I also find it very difficult to be working productively at the PC for that amount of time each day. What’s the point of earning, if 80% of your waking hours are spent chained to a chair and PC?
There’s a pretty low ceiling of how much you can earn and how long you’ll be able to do it for. So there’s really two choices;
- Increase hours and take on your own freelancers to handle the extra work – that’s what I did.
- Increase rates significantly, continue freelancing.
If you’re able to become an authority in your field, you may be able to command $80, $120 or even $200 per hour. At $200 per hour, 15 hours a week, you’ll net $150,000 per year. In my own experience, it’s very difficult to push your rates up that high in most industries unless you super specialise or draw from multiple skillsets. It’s far easier to find more solid clients willing to put 20+ hours per week through you at $40/hr.
Today, I have 3 freelancers I continue to work with full time for web application projects. I spend a couple of hours each week on QA/management, I usually do a couple of web security and bespoke consulting gigs per week ($1k to $5k a go), and spend the rest of my time on this blog doing what I love – helping others quit the cubicle to start and grow successful freelancing businesses.
Questions? Stories of your own? Leave a comment!