I have been freelancing full time for the majority of my 12 year career. Freelancing was something I had always dreamt about doing - I wanted to be my own boss and run my own business - and freelancing has allowed me to do just that!
More importantly it gives me the freedom to choose the types of projects to work on and be selective about the clients I work with.
I've received a few emails recently from Developers who are looking to break away from full time office employment and get into remote freelancing but they are unsure of what steps they need to take.
The aim of this article is to help clarify the steps which a Developer needs to take to break into freelancing.
Starting a freelancing career straight out of college or with no prior experience can be challenging. One of the stereo types about a freelancer is that any learning should be done on their time and not the clients. This is one of the big differences between freelancing and employment - employers typically look to invest in an employee, whereas as a freelancer you are expected to learn in your own time.
This is an important difference. I was originally a self taught PHP Developer after playing around with PHP for a few personal projects back in 2004. It wasn't until working full time for a company in Australia that my skill level accelerated to a point where I would consider myself skilled enough to be a full time freelancer.
While working with the Australian based company I got to work alongside some experienced developers who were able to teach me the basics of both CakePHP and the Zend Framework as well as teaching me about Subversion and version control.
This was a crucial step and without having a company that was willing to invest in my learning I simply wouldn't have had the opportunity to develop as quickly as I did.
If you are thinking about getting into full time freelancing you need to first ask yourself "am I skilled enough to be able to charge for what I am doing?". As well as "do I have enough knowledge to be able to work without having a more experienced developer to help me?"
I've met many great developers who struggle to get into freelancing because their skill range is simply too broad. That might seem strange, however if you look at most freelancing projects clients are looking for particular experience in a very niched tech stack.
I've made a name for myself as a CakePHP developer and even though in recent times I have branched out into other frameworks given my experience with CakePHP it tends to be much easier for me to get work for CakePHP based projects.
Yes, I'm open to working on other frameworks but experience counts for a lot and in the freelancing world, clients are willing to pay a premium if it means they work with a developer who is highly skilled in a specific technology.
To come back to those developers who I've met who have a skill set that is too broad, it is usually a result of working for several different companies as a full time employee. Employers tend to focus less on specific skill sets and more on years of experience and qualifications - and because of that, I tend to find developers who come from a full time employment background tend to have 2-3 years experience in certainly technologies, but it tends to be a range of skills rather than a specific niche.
If you are in that situation, my advise is to start to focus on a specific niche - ideally a technology that you enjoy - and focus on clients who are looking for that skill set.
The hardest client to gain as a freelancer is your first client! While I will go into more specific steps on growing a freelancing business later in this article I wanted to highlight that to gain that first client can simply be about local networking.
My first client was back in 2004 - he was a family friend that needed a website for a company that he was involved in. He was aware I had been playing around making websites and was willing to give me a go at making their company website. It was my first client, and from there I found more!
The point I am trying to make is even if you are still learning programming or currently working full time and eventually wanting to get into full time freelancing, the easiest way is by taking baby steps. Start with that family friend or uncle who needs a simple project developed - take it for the experience and price the first project at "mates rates" - knowing that you can use that project on your portfolio going forward!
Once you have a portfolio started, it is time to start thinking about branding yourself. Having some sort of profile of yourself to share with potential clients.
Over the years, I have been an "Agency", a "Studio" and a "Software Development Firm", but in the end, I settled on "MyName".com. Why? Because I eventually realised that my clients wanted to work with me, because they liked me! Not my company or products - but actually because they wanted me to be part of their project!
It was also simply easier to brand myself and promote myself! This website represents me, my work and my career!
Writing Open Source code is a fantastic way to not only share your knowledge, but to also showcase your ability. Many clients look to a Developers GitHub account as a means of validating a Developers experience. Personally, I love writing Open Source code - I just wish I had more time for it.
In general, the best open source code is code which can be written while working on a project. For example, I use CKEditor in many of my projects, so I wrote an open source CakePHP Plugin. I wrote the plugin in my own time, but it has saved me a lot of development time going forward. Its also great when other developers contribute to your code and make it better!
Overall, I enjoy writing Open Source code - but the additional benefits of helping gain new clients make it extremely worthwhile. In a competitive market GitHub contributions will stand out.
Once you have everything set up and your ready to leave your full time job, its time to start aggressively looking for work. While your own website, LinkedIn and GitHub are a great passive way to get work, it is important that you spend time actively looking for work as well.
This is where marketplace websites come in - I am going to preview some of these below based on my experiences with them.
I used to use Upwork back when it was called Elance, and at the time found some good clients from it. Getting work on there was difficult - Upwork feels a lot like Internet dating - you will send a lot of messages and receive very few replies. Because a lot of there projects are fixed prices, you will spend a lot of time writing proposals, only to not hear from the client or be outbid.
In saying that, there is typically a lot of projects on Upwork, but it isn't a marketplace I use anymore. Overall, I find price is such a key factor in Upwork and Upwork clients often learn the hard way that with software development you typically get what you pay for!
I have written several articles on Toptal and even spent time on the core team. The great thing about Toptal is they do the grunt work for you. You simply set your availability and hourly rate and a Recruiter will reach out to you when a project matches your skill set. This is an extremely hassle free process, which allows me to maximize my time writing code!
Not so much a marketplace, but a great way to find Remote programming work that is typically full time. I'm typically not looking for full time work, but if you are looking for full time remote work this is a great starting point. Project based work does appear there from time to time as well!
Building a freelancing business takes time - but done correctly, you can lay a foundation to have stable work for many years to come. Be prepared to spend the time in building your online project and from there grow your freelancing business one step at a time.
As follow up reading I would suggesting taking a look at my article on "How I Freelance" - as while too little work initially will be the main challenge to overcome, over-committing yourself as a freelancer can become a challenge as well.
Did you know, I am now offering mentoring for those looking to get into freelancing?
Click here to learn more about my Mentorship Programme.