DEV Community

Cover image for How to Start Freelancing as a programmer on Upwork
Rahul Banerjee
Rahul Banerjee

Posted on • Originally published at

How to Start Freelancing as a programmer on Upwork

Saying 2020 is a bad year would be an understatement but hey there are still a few days remaining! Start your freelancing journey. I will go over the skills needed for the most common postings related to Python, some tips, and also talk about my experience and earning.

 All my freelance experience has been on UpWork so this tutorial will be guided towards that. Upwork is a great portal to find Freelance work.

People will post tasks and their requirements and you as a freelancer would need to apply for it. You will need to submit a short paragraph explaining why you are a good fit for the task. Sometimes follow-up questions will also be asked. Some potentials follow up questions could be along the lines of

  • What previous project have you worked on similar to this?
  • What is your greatest strength with respect to this project?
  • Are you familiar with the requirements of the project?
  • Do you have any questions?

It is essential to answer all the follow-up questions and mention your experience working with various technologies.

My Experience and earning

Photo by Artem Beliaikin on Unsplash

Most of my time spent on Upwork was during my school semester and only on the weekends so I wasn’t able to put in much time but hey every little penny helps 😃

I have done around 5–6 tasks till now. A couple of them were related to web scraping and I made around 60$ in total. I wrote a tutorial on Streamlit for 20 bucks and tutorials on Python for 70 bucks.

My highest earning was completing a task where I had to essentially help a researcher train their model by writing prompts for functions in Python and the function itself. Yup, it was a pretty easy task and helped me improve my Python skills. I made around 560$.

In total, I have earned around 700$.

UpWork takes a 20% fee which decreases to 10% once you have earned more than 500$ from a client

Python skills needed

Photo by Chris Ried on Unsplash

Based on my experience, I can confidently say that knowing these skills will help you land gigs on UpWork

Web Scraping

Scraping Websites to get data is one of the most common tasks people post. For the jobs I have seen, most seem to pay around 30–50$ for a script to scrape a single website. However, I have also seen projects where you need to create a GUI for scraping data from Amazon or similar sites for a few hundred bucks. If you would like to get started with web scraping, check out my tutorial below

As of now, on searching the term ‘Python scraping’, there are close to 400 postings and for the term ‘scraping’, there are close to 2000 postings. Although most of them do not specify the language to be used some of them do need the script in a specific language. Python being the amazing language it is can solve most web scraping tasks 😎

Blogging related to Data Science or Python

Many people do not have the expertise or the time to write content for their blogs and they look for ghostwriters to write the articles for them. Essentially you would write it for them for a fee and they would post it under their names. The pay for these kinds of jobs varies a lot. Some pay around 20–30 bucks for an article while some are willing to pay hundreds for well-written articles. If you want to be a strong candidate, you would need to have some previous articles and Medium is the best place to start writing articles.


There is a lot of data entry and tedious jobs, some of which could be automated with Python. In your proposal, do not forget to mention why automating the task is better than doing it manually and how automating it can make it less error-prone.


There are plenty of tutoring jobs available, some of which pay north of 40$/hr. If you know your Python well, you can make good money out of it.


  • Conversion from JSON to CSV or vice versa
  • Cleaning data in Excel files
  • Integration with APIs
  • Working with Flask/Django, these usually pay really well

If you know Python, you will qualify for a LOT of jobs.


  • Try getting jobs that pay hourly over fixed payment jobs. If you have any dispute, you can contact Upwork. However, if it’s a fixed payment job, UpWork won’t be able to help you if there is a dispute.
  • Apply for jobs that have been posted within the last day or so since there is a good chance the person who posted the job is still hiring
  • Apply for jobs with less competition. Upwork gives a range of the number of people who have applied for the postings. Avoid postings with 20–50 proposals.
  • Read through the posting since often people ask you to include a sentence or a word in your proposal to make sure you are not a bot
  • Write a good proposal, you can use my template below

Hi! I have previous experience working with library XYZ and I believe my experience will be really helpful to complete this task. The following tasks required me to use library XYZ ……………..

Please do not hesitate to contact me to discuss further

This might not be the ideal proposal but it’s a good base template and I have used this to land my gigs.


Photo by Brooke Cagle on Unsplash

Getting started is always hard but once you get a few gigs under your belt, it’ll be easier to get more gigs since your profile will have credibility. It is ideal for students since it’s a good experience and a good side income and hey as I said before every little penny counts. 

Top comments (2)

abedindevsweb profile image
Abedin Fahim

It's quite difficult to get noticed or to get called for an interview as a web designer. What do you suggest? What should I do? I also created few gigs as well. Doesn't seem to be working as off yet.

rahulbanerjee99 profile image
Rahul Banerjee

I am no expert but I can talk based on my experience.

Since you mentioned you created a few gigs, I am assuming you are talking about Fiverr. I haven't used Fiverr before but try to increase your online presence. My articles on medium and stuff helped me land my first gig. Also, initially, I had applied for and accepted low-paying gigs (20$ for a web scraping task which took me 3 hours).