Freelancing is a great way to make a living as a developer, you have more freedom, and its easier to work remotely. However with little to none professional experience it might be hard to get your first client. Freelancing marketplaces like Upwork and Freelancer lower the barrier of entry for new developers with no experience, making it easier for them to get the first working experience as a freelancer, then you can leverage it to get more freelancing projects or full-time position.
I started freelancing part-time on Freelancer.com in late 2017, and it allowed me to earn a nice side income while I was learning programming. If you live in eastern europe, asia, africa or south america, you can easily earn a full-time income. I earned about $35K USD over 2 years, I was starting out with 0 professional programming experience, and fresh into learning python (about 4 months after I started), and only working about 10-30 hours a week, so I had plenty time for more learning.
As I only freelanced successfully on Freelancer.com, my advice will be more related to this marketplace, but most of them work same way, so it should be applicable to most of popular freelance market places.
As a developer, there are many areas where you can look for freelancing projects. Here are some topics you can explore.
- software development
- web development
- web design
- graphic design
What you can do with Python
here are few examples of types of projects I did with Python, and best packages that can be used for this type of projects.
- Websites ( Django, Flask, Pyramid)
- REST APIs (Django REST Framework, Flask-Restful, Pyramid, FastAPI)
- Web Scraping (requests, bs4, selenium, pandas)
- Testing (unittest, pytest, selenium)
- Data Visualization (pandas, matplotlib, bokeh)
- Desktop Applications (tkinter, wxPython, PyQT5, Toga)
This is the list of most popular freelancing marketplaces, I recommend to just focus on 2-3.
- hubstaff talent
Building a Profile that stands out
First step to getting your first paid project, is building a great profile, there are thousands of freelancers on each of those marketplaces, to increase your chances of getting the projects, you have to make sure your profile stands out. If you have an empty profile and post a great proposal to a client, you are most probably going to be overlooked.
First Element of building a great profile, is your face which is the face the clients will see when you bid on their projects. You need to have a good quality professional looking photo. It doesn't have to be made by a pro photographer, just make sure the quality is good, and the photo is a headshot.
Don't use selfies, don't add weird filters distorting the image, don't use a photo of a person that isn't you.
If you are freelancing as a company you can use your logo.
This will largely depend on what is your area, if you are doing web dev/design you want to put your best looking work there, and describe what it is, how you completed it, and what was the client's benefit from the work. Include good quality screenshots in your case study.
Some projects are not ideal for putting in visual portfolio (web scraping, devops), in those cases I recommend putting screenshots of data tables (in case of web scraping ), or code samples. With detailed written descriptions.
If you haven't any projects to put in your portfolio, make few small side projects, and document them nicely.
When I was starting out I was doing web scraping, and didn't have any projects to show, so I found couple of different types of websites, I scraped data from them, cleaned it, and made screenshots and descriptions to put in my portfolio.
This is where you write about yourself, and show the potential clients that you are the perfect person for the job.
Include few words about yourself and your experience. If you are beginner you can state so, there are many projects that are beginner friendly and clients that don't mind giving beginners a chance (for a low price of course) .
Write about what do you offer, and your availability.
Finish with some call to action, like "Contact me now to chat about your project".
This is pretty self explanatory, you want to put here all the skills you feel comfortable enough to market yourself with, if you are learning something, you can put it there. Getting a freelance project connected to a skill you are just learning is excellent way to learn by doing. This is how I learnt Django, after finishing the official Django tutorial, and writing a simple blog with it, I scored a pretty simple Django project, that put my skills to a test right away. I managed to complete the project not with out its challenges, but after all was done the client was happy with the result, I had money in the pocket, and much more confidence about my Django skills.
If you don't fill at all confident in some skills, and are not sure you would be able to complete projects with it, just don't put it in your skill list.
Another thing you can do is putting similar skills, sometimes projects will be tagged, with few skills that are basically the same, for example in web dev projects you can see sometimes projects tagged with skill: PHP, Django, Flask, this probably means that the client doesn't care what language/framework you will use to complete the project, they just put some tags that they know are connected to the project because they want to increase the numbers of freelancers the project reaches.
So if you are working mainly with Django, don't be afraid to put Flask or Pyramid there too, even if you never used it.
When setting your country never set a fake one, some freelancers from poorer countries, will set their country to USA, UK or other in hopes of getting more projects or better paid projects.
When clients contacts you and you answer in broken English, or they ask you some further questions about where you from and catches you in a lie, it's going to be a very bad look.
Never lie on your profile.
Pricing in freelancing is a very broad topic, and could have its own articles or even books dedicated to it. There are few pricing models you can use as a freelancer depending on your experience and negotiating skills. Each pricing model has its pros and cons.
This is a common model, where we are getting paid by the hour worked.
Fixed price model is a bit better where you give the client the fixed price for the task, based on your estimation, so you can upon yourself if the project will take you longer then anticipated, but also your time will be more valuable if you finish it faster. This was my preferred method when working on freelancer.com, I think I never used hourly pricing model there.
This is a much harder model to get right, and you need some degree of negotiating skill and reputation as freelance to succeed with it, you are pricing the project based on the value provided to the client, and not the amount of hours worked by you.
To do it you have to estimate how much $ value will your project bring your client. First we have to look at the size of our client.
Let's say we are making a sales website for a client. We will price the same site differently for a small solopreneur running his own business, and differently a company of 50 people.
Getting Social Proof
Ok so you have set up your profile, made a professional profile pic and description, filled your portfolio and skills. Now you are ready to start looking for your first project, but before we do it there is a small thing we can do to increase our chances of getting that first project, by getting some social proof.
What I mean by that, is freelancer's reputation on those websites is determined by their rating and reviews. When I am hiring a freelancer through one of those websites first things I look at is the rating, and number of reviews, if I like the numbers only then I will go further into the freelancer's profile to determine if they are a good fit.
So to increase your chances ask your family, friend to post a small project for you on the site and leave a positive review, you can even write the review yourself.
If you don't feel this is sincere, help them first using your skill (your family member has a business? offer to improve their site, or make something else using your skills), and then ask them for the review.
This is exactly what I done to get my first 2 reviews, is asking my mom and friend that I helped for reviews.
This should increase your chances of at least getting a reply from a potential client.
Bidding for your first Project
Ok so now we are getting to the hard part. To succeed as a freelancer on those marketplaces you need to 2 things: PATIENCE AND PERSISTANCE.
The process of getting your first project may be long, it took me probably around 2 months before I got my first real project, and it was a 50$ job.
Make a pact with yourself, that you will go to your marketplace everyday, and bid on projects that match your skill.
When writing the proposal, don't talk to much about yourself, just 1-2 sentences why you are best for the job. Then write what benefit you will bring to the client.
When writing the proposal make sure to refer to things client has written in the project description, that will show him you actually read the project description (80% of the other bids on the project will be automated by other freelancers). Always try to make your proposal personalized for each project you are bidding on. This takes longer than just copy pasting pre written bid, but is so much more effective. It's important to show the client you have the understanding of what he wants.
Also keeping your freelancer open will increase a change that someone will write to you, as you show up online, so i recommend keeping the tab with freelancer site open at all times, at least at the start when you are struggling for projects.
First Goal is to get an answer
Your first goal is to get an answer from a client, not a project award, just an answer. This shows you are doing something right. If you are bidding for a very long time and you still don't get answers, try to switch things around in your profile, try better description, change a CTA, or make a better profile pic, or work on your proposal pitch.
When you get first answer you know you are on the right path, and you are very close to getting your first project.
Winning the project
Hurray! You have won your first project. So client decided to go with you, and awarded you the project. Here are some things to look out for before accepting the project and start working
- Make sure you are on the same page with requirements and scope of work - I cannot stress how important this is. If you and the clients have different expectations this can lead to issues.
- If you are doing fixed price project on freelancer.com make sure a payment is created before accepting the project (freelancer.com uses escrow)
- If you have discussed the details on a call, make sure you also get the copy of requirements and scope of work in writing from client, to avoid potential issues
- Trust your intuition, if client feels sketchy, rude, talks down to you, or is just simply strange in a bad way, politely turn down the project. You don't want to deal with a bad client, when he holds a potential 1 star rating over you when you are starting out. Each time I went against my intuition regarding a client, I regretted it.
Your first project
So now you are on the first page with client, payment is created and you are ready to start working.
It's very important that you give your best on this project, you don't' want to get anything less then 5 or 4 starts on this project. Apart of completing the project well and on time there are other things you can do to make sure client will be vary happy with you, and give you a 5 star rating, and possibly more projects down the line.
- Keep the client updated on the progress, send him screenshots and samples as you go
- Ask for feedback or opinions on parts of the project
- Just be a nice and kind person
Problems with completing the project
Sometimes we aren't able to complete the project, life throws something our way, or the project was simply much more complex then initially thought. To handle it well with your client, just tell him why you can't finish your project with 100% honesty. If you are quitting the project early offer to help finding replacement, and brining the new freelancer up to speed with the project. Most clients will be understanding about this, and will agree to cancel the project, some will even pay you for the time you put in so far, and some even will live 5 stars regardless if you completed the job or not. If you handle this well, and the client is a decent person (90% of your clients should) they won't give you a 1 star rating just for that. If you ghosted them, expect to get a 1 star rating.
Problems with client
Sometimes the problems aren't coming from us, but from the client. For example client wants additional work done outside of the scope of work initially agreed to.
If it it a small thing you may be inclined to do it for no extra charge ("Sure no problem"), but this is a treacherous path, because next time the client will ask you for a bigger thing to add, which you are not comfortable with adding for free, and when you ask for more money he will tell you "But you did that other thing for free", so instead of doing the small favors you should say "Sure no problem, let me give you updated price with this change", either the client will agree with out a peep or say "oh I didn't know it costs extra", and that will be the end of that.
Another common problem is after you completed the job, and sent over the deliverables, a client that was answering right away, now is silent for days or for weeks.
This sometimes happens clients ghost you or simply forget, if you are using freelancer.com this is not too much of a problem because of escrow. 1st step is to contact the client, and if he still doesn't answer, another thing you can do is ask marketplace support to send him a message reminding him that he has to pay, if that fails you can open a dispute, and if client won't answer in 2 weeks the dispute will be automatically won by you.
Dealing with 1 Star
Ok so something went terribly wrong, you broke something, or you had a bad client, and they left you or threating to leave a 1 star rating. 1st offer to fix things for free, to avoid the rating, or try talking with the client why 1 star rating will be very bad for you, if they understand then great, hoverer if they can't be moved just accept it and move on. I received 1 star rating 2 times, and never got a client asking about it, nor I noticed less projects because of it.
Try to keep your ratings high, but if some clients just can't be reasoned with leave it and don't lose sleep over it.
Pros & Cons
Finally let's look at some Pros and Cons on freelancing on online marketplaces like freelancer.com.
While they are great platforms to start freelancing, there is plenty cons, which lead me to ultimately stop using it for my income.
- Location Independent Income
- Has Escrow System to ensure you are getting paid
- Gives you learning opportunites
- You can find job with out experience and start building your client network
- Closed platform, they don't allow to take payments and communications outside the site
- High fees, add your normal taxes to it, and you are left with 50-70% original amount you were paid .
- Support doesn't help with resolving conflicts for freelancers, and always take client's side
- A lot of clients wanting to do things cheapest way possible, not knowing how much effort the project they want takes.
Now you have a step by step way to start earning a side income on freelancer.com you just need to put them in action.
Follow me on twitter where I post about Freelancing, web development and Python.