How To Become a Freelance Software Developer
Do you want to become a freelance software developer? Here’s some battle-won advice by successful freelancers on how to do so. By Antonio Bello.
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Contents
How To Become a Freelance Software Developer
20 mins
Choosing Projects
If you’re using an online freelancing platform, you usually have access to many projects. Don’t make the mistake of applying to all of them. It’s better to choose a small set of the most compelling—say, five projects—and spend the proper amount of time applying to each of them.
As to how to choose projects, besides the obvious considerations of platform, technologies and languages, there are a few other things to take into account:
- Client reputation: A difficult client can make a big difference in the success of a project and in your ability to do your best work.
- Client hire rate: If a client has posted 100 projects, but never hired a candidate, writing a proposal is probably a waste of time.
- Number of applicants: The more applicants, the smaller the chance you’ll be hired. On the other hand, projects with a low number of applicants could require very specific knowledge, or have ridiculously low budgets or other problems.
- Feasibility: It seems obvious, but you have to be sure the project actually makes sense. There’s a distinction to make, though: there are cases which are not technically feasible (an app that is capable of intercepting your thoughts and translating them into text – no technology allows that, yet :]), and cases where it’s not technically advisable (an iOS app built using the Android SDK-probably feasible, but not a good choice)
Not all freelancing platforms offer statistics at the client and project levels, to figure out whether a project is a good deal or not. Basing on my own experience, Upwork is the one providing the most comprehensive data, such as:
- the average client rating
- the list of his previous projects
- the number of hires vs number of projects ratio
- the number of applicants to a project, and the average rate or bid for all applicants
I can’t say if other platforms provide the same data, but I think they should at least provide alternative ways to let you figure out the quality of a project and the client.
However, when evaluating a project, if your instincts tell you it could be a source of problems, listen to them and keep looking. The same advice applies if you feel you are going to have problems with the client.
Also, be flexible and open to learning new things. Don’t bypass a project just because it doesn’t use your favorite technology. Think of what’s best for the project, not for yourself. Likewise, don’t be too quick to dismiss a project because you lack a specific requirement; see “Learning and Experience” below.
Tips for Writing a Cover Letter
When you apply for a project, you’ll usually need to write something to explain to the client why she should choose you.
Avoid copying and pasting from one cover letter to another. When you use the same text for every letter, you often wind up talking about yourself rather than about the project. Clients care more about what you can do to solve their specific problems, rather than about your prior experiences. What you can do is more important than what you’ve done.
How weird would it be if you brought your car to a mechanic, and she started telling you how good she is at fixing Ferraris, or that she once changed the tires on a Lamborghini? All you want to know is whether she can fix your car, and possibly how much it would cost.
Your skillset and experience are, of course, important, but they probably won’t grab the client’s attention as much as a direct explanation of what you can contribute to the specific project. Therefore, I recommend you put your credentials at the end of your application.
Be sure that you meet most of the requirements set by the customer, at the least. If you don’t meet a requirement, it’s wise to explain why you would do a good job anyway, or emphasize other contributions you can make to the project that the client may not have considered.
Learning and Your Experience
When applying for a job, you often need to talk to clients about your experience in various areas.
Note that it isn’t knowledge of a specific language or framework that determines whether you are an experienced software engineer. Some technologies are more complicated than others and require more time to learn and master. And in your continuing education as a developer, generally you aren’t learning how to do something, you’re learning how to do that something in a different way.
As a freelancer in software development, what’s arguably more important than experience is the ability to learn quickly and find pointers to the knowledge you need to get something done.
So, when applying for a project, you may omit (avoiding an outright lie) that you don’t have experience that fits a specific requirement—if you know that you can quickly fill the gap.
Do you remember when I suggested writing about the project first in your application, rather than about yourself? The point is to demonstrate your level of competence, which goes far beyond knowledge of this framework or that language.
If you do that well, the client reading your proposal will realize that you know what you’re talking about. Given that positive impression, she may not notice or care that, at the end of your application, you’ve neglected to mention whether you have the desired five years of Swift experience.
In my first medium-large project as a freelancer, I worked on implementing an SMS messaging platform, combined with a simple CMS. The requirements for the project included (among several things) usage of ASP.NET.
The client chose me because I made a thorough analysis of how I was going to implement that system, what tools, which technical challenges I expected, etc.
I omitted mentioning that I didn’t have any previous experience with ASP.NET and C#, and he never asked me about that – I just knew I wanted to learn them both, and I was self aware of my ability to complete the project without problems.
The client never realized the omission, until, one day, I told him.