The Successful Freelance Programmer: A Guide to Freelance Programming

A picture of a paradise island

In this article, I will show you how to become a freelance programmer so you can work while traveling the world or at home in your pajamas. Whether you are already a programmer working full-time for a company or a brand new programmer, I will show you how to create a successful freelance programming business. 

If you don’t already know how to program, learning to code is the first step.

Here is some information on the best programming language to start with, as well as a list of resources to use to get started programming with

My Freelance Story

I graduated from Clemson University. I majored in political science. After obtaining my degree, I moved from South Carolina to the Bay Area.

Like many college students with impractical degrees, I was unable to find a job. Unlike most recent graduates, I decided to learn to program.

I choose to study Python, a popular programming language known for being one of the best programming languages for beginners.

Eventually, eBay hired me as a software engineer.

Cory Althoff at eBay
Outside the eBay campus where I worked as a software engineer

After eBay, I started working at a startup in Palo Alto.

Feeling adventurous, I decided to quit my job to go on a backpacking trip across Southeast Asia, eventually ending up in Bali. 

Riding a scooter through Bali
Riding a scooter through Bali

During my trip, to earn extra income, I started freelance programming.

If you aren’t familiar with the term: freelancing means working as an independent contractor for different clients. In other words, you are your own boss. 

Why Freelance?

Freelancing has several advantages over working for a traditional company. You are location independent, avoid commuting and office politics, and you don’t have to worry about your age or lack of a degree. 

High Salary from Anywhere

As a freelance programmer, you can earn a high income while working from anywhere.

Thanks to freelancing, I’ve been able to visit twenty-six countries on six continents.

So far, I’ve been to North America, South America, Africa, Europe, Australia, and Asia. I’m hoping to add Antartica to the list soon!

Working from a cafe in Tokyo or by the beach doesn’t quite feel like work!

A map highlighting all of the countries Cory Althoff has visited as a freelance programmer traveling the world.
The countries I’ve traveled to so far.

Say Bye to Your Commute

Freelance programming not only allows you to travel, but it also eliminates your commute.

In Los Angeles, where I live, many of my friends commute a total of four hours: two hours to work and two hours back. Once you learn to make a living freelancing, you can say goodbye to your long commute forever. 

I can’t explain how much extra energy I have because I don’t commute to work. There is something about long daily car rides that zaps the energy right out of me, and now I spend that extra energy on essential projects. 

Avoid Office Politics

Another advantage of freelancing is avoiding office politics. I don’t know about you, but I can’t stand office politics.

Going into an office every day and being forced to deal with office politics gave me anxiety, and I am much happier working from home.

Cory Althoff working from Home
I love working as a programmer from home!

Program Professionally without a Degree

Freelancing allows you to work professionally as a programmer, even if your resume makes it difficult for you to get hired as a coder at a traditional company. For example, it is the best way to program professionally without a degree. 

A lot of people ask me how they can become a coder at 50 or older. They are worried companies only want to hire younger candidates. When you freelance, you don’t usually meet your clients in person, so your age isn’t a factor in the hiring process.   

Now that you know all the benefits of freelancing let’s take a look at how to get started!

Freelance Programming Platforms

There are several different freelance platforms where you can signup to work as a freelancer. 

Clients post jobs that look like this:

An example of a programming job listed on Upwork.com
Example of a job posting on Upwork.com

Each task has a budget and a skill level. 

To apply for a job like the one shown above, you click Submit a Proposal and fill out a cover letter explaining why you are the best candidate for the job. 

Here are some of the top platforms for freelance programmers:

Upwork

A picture of the freelance programming platform Upwork's homepage

Upwork.com is one of the most popular places for freelance programmers to find work. When I was freelancing, I found all of my projects on Upwork. Now that I run my own business, I make my hires on their platform as well.

Freelancer

A picture of the freelance programming platform Freelancer.com's homepage image

Freelancer.com is another popular platform for freelance programming. It is similar to Upwork: employers post jobs and freelancers apply for them.

Fiverr

A picture of the freelance programming platform Fivver.com's Homepage

Another popular place for freelance programmers to find work is fiverr.com. On Fiverr, you create a profile, and potential clients come to you, whereas on Upwork and Freelancer, you have to reach out to clients. When you use Fiverr, the clients come to you.

Toptal

Toptal

Next up is Toptal. Unlike other companies, you need to pass a test to work on Toptal because they only allow the top developers in the world on their platform. Once you get enough experience to freelance on this platform, it lucrative. Here is an article that explains the kind of things you need to know to be a top 1% Toptal developer.

Golance

Freelance programming platform golance.com's homepage

Finally, Golance.com is another platform that is gaining popularity and may be worth looking into.

These are far from the only platforms available. You can find more websites to freelance on here.

What Skills Do Freelance Programmers Need? 

Successful freelance software developers are always learning new skills. More skills mean more contracts you can apply for, which means increased earnings.

Start with Web Scraping

If you a professional programmer transitioning to a freelance career, you should start with whatever skills you already have. 

If you are a brand new programmer, and you haven’t developed any skills yet, consider learning web scraping first. Unlike web or app development, you can learn to build web scrapers at a professional level quickly.

There is a huge demand for web scrapers right now. Just look at how many web scraping jobs are available on Upwork right now.

Upwork Web Scraper Search
1,152 web scraping jobs listed on Upwork.com

Build New Skills

You should always be expanding your areas of expertise.

Consider learning web development, app development, dev ops, or data science. Data science is growing incredibly fast and is an excellent choice.

You can always learn another programming language too. There is a significant demand for freelance Python developers right now.

The JavaScript front-end framework React is another popular, in-demand technology. Hadoop has a bright future too. According to Upwork, it is one of the fastest-growing skills on the platform.

Upwork Quarterly Skills: Hadoop in Second Place
Upwork releases the most valuable freelancing skills every quarter

There are far from your only options.

Spend some time researching what technologies are most valuable to freelance clients, and learn the ones that interest you the most.

Landing Freelance Programming Jobs Without Experience

Whether you are a professional programmer transitioning to a location independent lifestyle, or a brand new programmer, when you start, the hardest part is getting your first client.

Here are some tips to help you get your first client without prior freelancing experience.  

Climb the Freelance Programming Ladder

The best way to land clients is to climb the freelance programming ladder. That means starting with small projects and working your way up to larger and larger ones.

For example, you can start with a $5 project on one of the platforms like Upwork. Then you work your way up to a $10 one. Pretty soon, you are landing $100 contracts. Eventually, you will be able to land large 6-month to year-long contracts.

Cory Althoff walking up stairs over water.
Climbing the freelance programming ladder in Vietnam

The best part is it avoids the problem of not having any experience. Noone on Upwork or Freelancer is going to ask you for references for a $5 contract.

By the time you get to more significant opportunities, you’ve already acquired references from your smaller projects.

Get Reviews First

You will find it challenging to get your first freelance job on a site like Freelancer without any reviews. The best way to handle this is to complete a project for a friend. 

Have them hire you on the freelance platform of your choice. Once you’ve completed the project, make sure to have your friend leave you a five-star review. Most platforms do not discourage this. They even have tools designed to encourage people to bring new employers to their platform. 

I recommend doing this a few times so that you have two or three five-star reviews before you start reaching out to clients you have no personal relationship with.

Positive freelance review
Example of a 5-star review

Read the Description

Whenever you are applying for jobs, make sure to read the job descriptions. That may sound like common sense, but as an employer on Upwork, I am always amazed by the number of candidates that apply without bothering to read my job description.

If you put a sentence in your application that proves you read the job description, you will instantly be ahead of more than half of the other applicants.

Write a Compelling Cover Letter

Winning a contract usually involves submitting a cover letter. Your cover letter can make or break you. Learning some copywriting techniques will help you write persuasive cover letters.  

One strategy I use is to list out the objections someone hiring me might have. Then, I write copy in between each objection overcoming it. The final result is a persuasive cover letter ready to send to a prospective client.

Consider reading a book like The Ultimate Sales Letter by Dan Kennedy to improve your copywriting skills.

The Ultimate Sales Letter Book Cover by Dan Kennedy
Books like this can help your freelance career

Include your Portfolio

When you are applying for jobs, make sure always to include a link to both your website and GitHub portfolio so potential employers can review your code.

Matthew Williams
Matthew Willaim’s online portfolio

The more projects you can show off, the better. Make sure to invest time making your online portfolio look fantastic as well.

Need some inspiration? Here are some ideas.

Respond Quickly

Finally, when you are applying for jobs, make it as easy for the employer to hire you as possible.

Check your freelance platform for new messages as often as you can, so you can quickly respond to prospective clients. 

Message of a freelance programmer responding quickly to an offer.

When I am making a hiring decision, I message two or three people. I’m usually on a deadline, so the first person to respond has a massive advantage.

If potential employers see you are responsive and ready to work right away, you will have no problem landing new jobs. 

Working With Employers

Now that you are landing clients, you need to make sure you are keeping them happy and earning five-star reviews.

Here are a few best practices to ensure you receive nothing but five-star reviews and develop a stellar reputation online. 

Hitting Deadlines

You absolutely must hit your deadlines. When you are estimating the length of a project, use the following trick: come up with your timeline, then increase it by fifty percent.

Always give yourself some extra padding in case something unexpected goes wrong. 

Don’t submit late projects!

When I first started freelance programming, I accepted a project and gave a terrible estimate. I ended up having to pull an all-nighter to get the project done.

While staying up all night working wasn’t fun (ok, it was a little fun), I ended up getting the project done. It was much better than having to tell my client I couldn’t deliver on time (and risking a poor review). 

If you make a mistake and give a poor estimate, you should still do everything in your power to hit your client’s deadline, including working weekends. 

Solving Problems

Your client is hiring you to solve their problem. They want to do as little work as possible. When I hire freelancers, and they require a lot of babysitting, it drives me crazy. 

Don’t ask your clients questions unless you are sure you need to. Make the client do as little work as possible. That way, they can sit back and have you solve their problem, which is what they are paying you for. 

Solving a programming problem on a white board
You can even use a whiteboard if you want

Quality Work

Quality work is the foundation of a successful freelance career. If you don’t do quality work, you will get negative reviews, and you will find it impossible to find new jobs. 

If you are a new programmer, one thing you can do at the beginning of your career is getting code reviews from a mentor before submitting your work. That way, your mentor can catch any mistakes you made before submitting your work. 

Communication

Finally, work on improving your communication skills. Read Dale Carnegie’s classic How to Win Friends & Influence People for advice on improving both your communication and people skills. 

How to win friends and influence people cover
Communication is key!

Responsiveness is critical. Employers love it when freelancers answer their questions as quickly as possible, so make sure to check for new messages from your clients continually.

If you are responsive, hit your deadlines, and communicate well, your clients will love you. And you will be racking up five-star reviews in no time.

Building Your Personal Brand

The most successful freelancers develop their personal brands, which helps them get clients from outside of the leading freelance platforms.

Three fantastic ways to create a personal brand and get new clients are by blogging, using social media, and writing a book. 

Signing copies of my programming book wearing a picture of the Japanese version of my book cover.

Blogging

Blogging is a fantastic way to build your brand and improve your freelance business. Creating a blog will increase your authority. That will make clients want to hire you more. It will also help you land new clients. 

You can land new clients from your blog by posting about technical topics. If you spend some time learning about SEO, you can get your articles to rank in the different search engines.

That way, when potential clients are googling a question about a technical topic, they find your blog and may contact you. Neil Patel is an excellent resource for learning about SEO. 

Searching Google for a technical question

Social Media

You can also use social media to find freelance programming jobs. LinkedIn is the best social network to focus on. You can write articles on LinkedIn to show your expertise. 

You can also messaging prospective clients. Always make sure to provide value when you do this. For example, if you are a web developer, you could find a company with a slow website. Show them the report showing the problems causing the slow speeds, and offer to fix it for them. 

YouTube is another excellent place to share your knowledge and find clients. Post video tutorials explaining your expertise. Add a note in your video description saying you are available for hire and put your email as well.

Write a Book

If you want to invest even more into your brand, consider writing a book on a technical topic!

Then, include your email throughout the book, letting prospective clients know you are available for hire.

The Self-Taught Programmer Cover
My book, The Self-Taught Programmer, helped me build my brand.

Final Thoughts on Freelance Programming

Freelancing programming is a fantastic career. You can build a location independent lifestyle, avoid commuting and office politics, and be your own boss.  

The rewards may seem small when you are first getting started with twenty-five dollar projects. However, once you establish a track record, you can start applying for projects with budgets over $1,000. There are even many projects on the various freelance sites with budgets over $50,000 and sometimes $100,000. 

Freelancing can be very lucrative, and once you build up your business, you may want to freelance forever. 

I hope this guide helped you learn how to become a successful freelance programmer. Best of luck!

 

Published by Cory Althoff

Cory Althoff is the author of The Self-Taught Programmer, which Book Authority named one of the best software books of all time.

Join the Conversation

1 Comment

Leave a comment

Your email address will not be published. Required fields are marked *