Finding work as a freelance software developer
I have been a contract developer for most of my life. The way it worked back home in South Africa was that you would typically work through “contracting houses” - big IT companies which focuses primarily on placing developers with their clients. This could be on a permanent, salaried basis but also many times on an hourly basis (which I preferred).
In the case of the hourly basis you would typically log your hours on a time sheet which you would submit at the end of the month. The contracting house would then pay you based on the hours at the hourly rate they agreed with you, and they in turn would invoice the client you did the work for - obviously at a higher rate than what they pay you, so they can make a profit as well.
These contracts were usually long term contracts, ranging from around 6 months up to a few years, and it was normally a single client that I did work for.
About 3 years ago I left South Africa and became what is commonly known as a ”digital nomad”. I personally do not like the term too much, but it does describe what I do quite effectively. At first I tried to get some of my own projects going, but none of that panned out. So lately I have been levitating more towards doing freelance work.
I am quite blessed in that the clients that I do work for are nice people, and the work they give me are also interesting. I have also added a Hire Me page to my blog which have been so successful that I am turning down work on a weekly basis.
I do not take on more than 2 concurrent projects, as this is the most I can handle at a given time and still give them enough time along with the other commitments I have such as the blogging, newsletter etc.
Recently some other developers have also asked me about contracting and going “solo”, and where to get work, so I am writing this as a general answer for other developers, giving you some idea of the techniques you can use to find work.
So let us dive into some of the possible sources you can use for finding work.
There are many websites available on the internet where you can find freelance work such as Freelancer, Elance, Upwork and possibly many others. Personally I would not try and get work on these websites, as the prices people want to pay for work generally seem to be on the very low end.
You compete with developers from third world countries, or other countries where the cost of living is quite low, and who are therefore willing to work at rates which may not be sustainable for you if you live in a more expensive country. Of course if you are living in a country where the cost of living is low, then this may actually be a viable option for you.
I have seen developers on these websites who charge high rates, but those higher rates seem to have been achieved over a period of time as they have done more work, and gradually increased their rates.
One approach you may take is to take on some freelancing gigs on these websites on the side (while still keeping your day job), and gradually work your way up to a decent rate and then when you reach that point you can consider going completely solo.
One further thing that ticks me off about these websites is that they allow your clients to monitor what you do by taking periodic screenshots of your computer. For me, no thanks. If you have that level of trust in me then I have not interest in working for you.
I respect my clients. I don’t screw around on the internet on their time and I don’t bill for work I did not do. My Git commit logs is proof that I am delivering value. I also trust them that they will pay me at the end of the month and will treat me fairly and not try and cheat me. I expect the same level of trust from them. So I have no interest in working for someone who is wanting to take screenshots of my computer.
In my view, if you don’t trust someone, then you should not be doing business with them.
Ok, now that the rant is over, let’s move on…
Networking is one of my favourite ways of getting freelance work. This is something developers aren’t always good with due to our general introvert nature. But it is something which can bring you a lot of business. Truth be told, just about every method of finding work that I discuss in this blog post involves some degree of networking.
So what are some of the places you can network?
Previous colleagues and employers
Getting work from your existing network of colleagues, ex-colleagues, ex-employers etc can be a very quick and easy way to find work. Many times these people have moved on to new companies and positions where they may be looking for a freelancer with your skills.
The added benefit to reaching out to these people is that there is (hopefully!) an existing trust relationship, and you also know each other’s little quirks so it is easier to work together.
Send an email or phone to some of these people, let them know that you are going freelance and ask whether they have any work they can send your way. Also post something on LinkedIn and change your LinkedIn tagline to indicate that your are available for freelance work.
As I mentioned in the introduction, I am a perpetual traveller. This means that I work mostly out of a coworking space, which attracts many other entrepreneurs and remote workers and many times those are fellow software developers. When I see that someone is busy coding I will introduce myself and have a chat. Find out what they are doing, what languages and frameworks they are using, etc.
Once you get the conversation started with a fellow coder, you can easily keep the conversation going because you have a shared interest. Sometimes that short interaction remains just that and we do not speak again. Sometimes we become friends and stay in contact.
Sometimes however it also leads to work. I have picked up plenty of work from people I met in coworking spaces and struck up a conversation with. When they hear about someone looking for a coder with your skills, or they themselves need a coder with your skills I can promise you they will thinking of you.
Same principle applies as with coworking spaces, but in user groups it is much more focused. So you will know you are surrounded by fellow developers working with the same tools and technologies as you are. Start speaking with people and make friends. I can promise you when they time comes and they need someone with your skill they will likely be thinking of you because of the impression you made on them.
There are various other events you can also meet people. At conference for example. Many times coworking spaces also arrange meetups, so make an effort to attend those if you can. Also have a look on a website like Meetup for tech meetups in your area.
Speaking of meetups, don’t just go to the ones for software developers. Also attend some of the meetups for Startups or other entrepreneurial groups. Those people invariably end up looking for developers at some point.
The last one I am going to cover for networking is to network online. On Twitter, Reddit, StackOverflow, forums, etc. Just get out there, and help people and make contacts. Start interacting with other people. You never know where one of those interactions may end up.
Blogging sort of falls under the networking category, but I want to cover it separately. I have tried to get a blog going many times over the years but invariably it petered out after a couple of months. My current effort has been successful and this blog has been going now for almost 3 years. It has grown slowly and steadily and it is now at the point where I get many tens of thousands of readers each month.
So in an effort to get work I have added a Hire Me page, and I have also added a notice at he bottom of each blog post stating that I am available for freelance work. This has been tremendously successful and like I said in the introduction, I get people on a weekly basis approaching me with offers of freelance work. Unfortunatly I have to turn them down most of the time as I am fully booked at the moment.
So start blogging. Today. And make it a habit. Blogging is not a short term thing. You have to play the long game, as the benefits will only start to show themselves over the long term. Just start, and then stick with it.
There are other benefits to blogging as well. I have actually struck up some online friendships through the blog. People that I now know that I would not have otherwise. And because of the travelling, when I am in their neck of the woods I can hopefully meet them in person one day.
Blogging also raises your profile and visibility in the community, and that is not a bad thing for your career in general.
Other companies or agencies
One more possibility is to get work from other companies or agencies. This may also fall indirectly under the networking category.
Let us take an example where you are a Windows Phone (or now a Windows 10) developer. There are many companies out there doing development work for iOS and Android, but very few of them bother to take on work for Windows Phone. Usually because they do not see it as a lucrative market and do not want to employ a developer full time when they do not think there is going to be enough work for that developer.
That does not mean that they never get approached to do work for Windows Phone. And that is where you come in. Make a list of some of the agencies in your area specialising in mobile development and have a look at their website. If you can see that they do not obviously offer development for Windows Phone, send them an email or better yet try and go meet them in person. Show them some of your work and ask them that they refer enquiries for Windows Phone development to you.
This is once again not something which will likely land you immediate work, but if you get your name out there the chances are that at some point those people will get approached for a Windows Phone development project, and who will they be thinking of?
Referrals and repeat work
This one speaks for itself. Do good work and people will come back to you. And they will refer their friends to you. Simple as that, and few things are as lucrative as repeat or referral business.
I want to finish this blog post off with one last possibility and that is remote work. For many people wanting to go solo, what you are perhaps looking for is just a bit more freedom. In that case doing remote work can be a great solution.
I meet many people at coworking spaces who are working remotely for companies in the USA or in Europe. I think that this is a great solution, as it means you have a steady income but still have the ability to work from wherever in the world you want.
Even if travelling is not your thing, remote working still gives you amazing freedom to work from home but on your own terms meaning that you can spend more time with your family. These “remote” companies are quite progressive in that they rarely care about the number of hours you put in, or when you put in those hours. They care about the results. In my view that is the way it ought to be.
So where do you find these jobs?
You can Google for “remote companies” or “remote work” and you will find plenty of links.
Here are some websites advertising remote jobs:
You can also try and go through a company like Toptal, which places freelancers in semi-permanent positions with other companies. These are usually remote jobs.
The other nice thing about remote jobs is that it is a global market. A developer in Africa has just as good a chance as a developer in the USA to land a top tier job at a nice US-based startup. There are no geographical barriers.
I have also picked up freelance work from a company I initially approached about a remote job but it turned out they had some freelance work they also wanted done, and handed that to me.
As a final thought I also want to touch briefly on open source, as I have been asked whether that can lead to freelance work.
For me it is a possibility, but I do not think it is as lucrative as the other things I mentioned above. I would still advise you to get involved in open source work, firstly because you are a nice person, and secondly because it gives prospective employers or clients an insight into the kind of work you can do.
Open source has many other benefits, but I think to use it as a way of finding freelance work is not very effective.
These are some of my thoughts about where you can find freelance work. For me the primary benefit of freelance work is the freedom it gives me. I value freedom over money or stability.
Do you have some other ideas on how to find freelance work? Please sound off in the comments below.
PS: If you need assistance on any of your ASP.NET Core projects, I am available for hire for freelance work.