How to work from home as a software developer?

What is this article NOT about?

  • This is not an article about how to make a million dollars in 1 month working from home. Unless you are extremely intelligent or exceptionally lucky (which 99.999% of people aren’t) this is not going to happen for you. However with hard work you can make a decent living and earn more than what you are making in your current job. Especially if you are not living in the US.
  • This is also not an article about pros and cons of freelancing.

What is this article about?

This article is about what I did to become a full-time freelancer and about some of the useful tips that might help you do the same thing and give you some confirmation that doing this is indeed possible for everybody. However the content here is merely a short introduction to an extensive topic on which an entire book could be written.

What do you need to become a freelance software developer?

In my opinion you need three things:
  1. Some programming experience (preferably gained by working 9-5 for some company for a year or at least some experience creating some app or website on your own)
  2. English language proficiency (this can be learned by reading books in English, watching English movies and tv series, watching YouTube videos in English, participating in some online chats and obviously travelling if you can afford that)
  3. A lot of motivation and believing that you can do it and being sure that you really want to do it and you will do what it takes make it happen.

I am sure there are many ways of achieving working from home full-time but what worked for me is It is a global outsourcing marketplace which allows employers to post jobs which freelancers can then bid to complete. What I did is a pretty risky move. I just quit my job without having any pre-existing connections with clients believing I can make it on my own with and it worked! But I probably don’t recommend this approach for you. It might be safer to start working on in parallel with your current job and only quit your job when you get some success with freelancing. First you have to create an account on There is a lot of competition in this marketplace but I would like to share with you the techniques that helped me overcome this problem.

How to start using and stand out from the competition

  1.  The main picture in your profile should show your face and not some logo, favorite movie character or other useless image. If you put your face in your profile image this will be a first sign to the potential employer that you might be a serious person that can be trusted.
  2.  When starting to freelance you already have to have some skills that can add value to the business of your employer. Adding value is the most important thing you have to focus on and it is the only way you will be able to make money long term. In your profile description explain what skills you currently have. If some of your skills are not expert level yet you can put them in the description as well if you are confident that you can improve them quickly when you get a project that requires them. That is fine, nobody can be an expert with everything. However don’t include skills that you completely don’t have.
  3.  If possible provide some proof that you actually have the described skills. To do that you can explain how you earned them (for example you worked at company XYZ for 2 years) or provide some evidence that you created some app or website.
  4.  Set your rate to what you really think you are worth at the moment. Don’t set it too high or too low. It needs to reflect your realistic opinion about how much you think you should be earning having the skills that you have. You are probably not going to earn this rate in your first project anyway but just put it there.
  5.  Pass some of the exams that are available on the website. First exam that you should take is “US English level” exam. If you pass it you will get a badge which will let your employer know that you have some English skills. There are three levels of “US English level” exam. When you pass level 1 you can take level 2 exam and then level 3. Preferably you should complete all three levels. This alone will already boost you above 50% of your competition. Good communication in English is very important for your employers. If you want you can also take other exams. The more the better but they cost money so US English level 3 should be enough to start.
  6. Get your first review. Make sure you get 5 stars. To get your first review you have to be prepared you will be working for free or almost for free. Bid on as many projects as possible but only bid if you feel there is some chance you will be able to complete the project in reasonable time and that the project will not take too long. Make sure you analyze the project description in detail and provide a great explanation to the employer in your bid message. Try rephrasing or summarizing project description so that the client knows that you read the description and that you understand what it says. Explain that you know how to do exactly what the project asks and that you can do it in timely manner and within the budget, you can be truthful and explain to the client that your price is very low not because your skills are low but because you are a new freelancer and you would like to prove yourself and that this is also a great opportunity for them since they will be getting high quality for low cost. Since you don’t have any reputation yet you will have to undercut everybody using very low price to have some chance of being selected. A client who selects you will most likely not be the best quality but you have to start from something. Make sure the work you do for them is perfect and that they are blown away. Ask them for 5.0 rating. Once you get it you are on a good path to becoming a freelancer.
  7. Keep doing what you have done in point 6. but try to become better and better at it and use your experience gained in previous bids, projects and client conversations to adjust your strategy and try to earn more every time until you can actually start getting paid what you think you were worth at the beginning when you started freelancing.
Those are only some of the tips that I have and they are not described in a manner detailed enough but I might make a separate post about each of those points and other tips later.

Fixed price projects vs paid per hour projects

Every freelancer prefers to be paid per hour instead of having to estimate a fixed price and then try to fit in that estimation. Bad news is that at the beginning you will probably be able to only work on fixed price projects and they will take you more than you estimated (as you have to keep your fixed price as low as possible to make sure it is you who is selected and not other people). However as you become more and more valuable to your clients you will be able to switch to working on paid per hour basis. Another result of being more valuable is that you will no longer have to make bids on projects. You will just get contacted directly by employers all the time. This leads us to a very important question: how to become more valuable to the clients?

How to become more valuable to the clients?

You have to do things that might not make sense short term but make sense long term. For example when you have a choice between two projects: one where you already have all necessary skills and other one where you are lacking some of the skills in many cases you should work on the second project even though it will be harder. This is because you will learn many new things which is what you have to make sure you are doing regularly. For example you will be much more valuable if you know both Android and web development as opposed to only knowing Android development. High value projects require many skills. An employer may choose to hire multiple people each of which has only one skill or hire one person who just knows how to do it all. The second option is usually more profitable for the developer and less costly for the employer. This is why you should be regularly investing in learning more and more even if it sometimes means you will spend more time on a project and earn less in short term. If you don’t learn new things and keep doing the same thing over and over then you will get bored and burned out quickly. Also after 10 years of work you can try to say that you have 10 years of experience but it will really be 1 year of experience repeated 10 times which is not the same as 10 years of experience with many different things.

Which clients to choose?

At the beginning you will not have too much of a choice, you just work on whatever you can find. But freelancers are not the only group of people that can be more valuable or less valuable in the marketplace. It is important to understand that the same rules apply to clients. The more valuable you become as a freelancer the more access you get to higher quality clients which means you get to work on better, more interesting projects and get paid more for your hard work. You can find great clients in any country but I personally found most of my best clients in US where software developer salaries are the highest.
This was only a short overview of freelacing as a software developer. I will create add more information if there is any interest in this topic.