I got an email from a Rails developer who was considering starting a career as a freelancer. As I think this might interest other developers, like the questions I answered about starting a career in Rails development, here are my answers.
I’m a web developer (~10 years experience, last six years with Ruby / Rails). I’m looking into starting to get into freelancing instead of being in a corporate / office environment. However, I have never done freelancing before, and I’m a little clueless as to where I can start! I’ve been contacting freelancers who have been doing this for a while, to start getting more insight to see if this is something that is worth looking into full-time
Do you work mostly with an agency (that helps get work / clients for you), or do you work mostly by yourself in managing your clients?
I work by myself. In my opinion, having direct contact with the client is vital for the success of the projects, and in fact, I prefer to avoid thinking about my clients as merely clients, but as a team that I join for a project. So, an agency might help in getting clients, but can make it harder to work with them unless you can communicate directly with the client. Avoid intermediaries.
If you do work mostly by yourself, how did you get your initial clients?
My initial clients came to me referred by my friends. This keeps happening: although some clients find me through my web page or LinkedIn, most of the time they contact me because some of my friends (including previous clients) told them I might be available.
So, having a good social network that supports you is vital for your business, and I’m not talking about how many Twitter followers you have, of course :) Be social, go to meetings, help people, work on open source, go to parties.
How did you determine your hourly rate when you were starting off?
I asked other fellow developers what their hourly rate was. And, unsurprisingly, I found that all of them had very different rates. So, I started with a fee and adjusted it later, based on my experience. You have to take into account many factors to decide your hourly rate. Take a look at this freelance hourly rate calculator, to get an idea.
But, at the end, it’s as simple as having an hourly rate that sounds reasonable to you based on the value you’re delivering to your clients, that covers for all the time you’re going to invest in non-billable tasks such as studying, paperwork, etc. I also recommend reading this book about doubling your freelancing rate.
What’s your procedure in billing your clients (partial payment up front, payment at regular intervals / milestones, at the end of the project)?
As my friend Raul Murciano summarized in his talk “How I do what I do” in Conferencia Rails 2010 (sorry, but I can’t find the video), you should “charge early, and charge often”.
So, I (and all my colleagues at ProRuby) never do project estimates. When asked how much time or money will a project need to be completed, we always reply that we don’t know, and that it can’t be known. A project’s length depends on so many factors, that it can’t be accurately, or even aproximately, estimated. There’s a very good read about this topic in Quora, I love the reply by Michael Wolfe with the analogy of a coast line.
Instead, we work exclusively with an hourly rate. Remember what I said before about not seeing your clients as clients, but as a team you’re joining? That’s what I was referring to. You’re not selling a concrete product to them. You’re working with them during some weeks/months, so put a price to your time and knowledge, and work with them for as long as they want to work with you. You’re being hired, you’re not selling them a finished product. The product will be the result of that time you’re investing as part of their team.
That’s why I charge exclusively for my dedication to the project, and not tied to the results we get as a team. Getting paid doesn’t depend on finishing a project or a milestone, and therefore partial payments up front don’t apply here either. I charge for my time, so I invoice every two weeks, exactly on the 15th and on the last day of each month, for exactly the amount of time I’ve invested in the project. I use Freckle for keeping track of the time, and I include all the time dedicated to the project (coding, emails, meetings), but no more. Clients appreciate that, when you tell them your hourly rate you should tell them how many hours you can dedicate to them per week. In my case, it’s about 25 billable hours per week, that’s what I consider full time.
How would you recommend someone like myself (decent amount of experience, never done freelancing before) start this journey?
I’d ensure everyone of your friends and contacts knows that you’ve started freelancing, and that you’re available. Also, go to conferences, dev meetings, give a talk, keep your blog and Github account active… I’d also consider checking Gun.io, they’ve got interesting job offers, and I’d join HackHands as a Rails expert, it feels good to help others and it’s a good way to show others your expertise.
Is there anything you would do differently if you were starting freelancing right now, knowing what you know now?
Sure, when I started as a freelancer I made project estimates, with a fixed price and deadline, and later I learned that this was a mistake. Now as you know I only charge per hour, I don’t do project estimates and I don’t work with deadlines, that’s the way to go.
Also, I did not build my personal brand, but instead used a business brand. That was a mistake, you can’t fake you’re a company, and you shouldn’t. I abandoned this idea soon, and started showing myself as what I am, a happy independent developer :)