Close-up of software engineer freelancer typing on laptop.

How to Get Started as a Freelance Software Engineer

It comes as no surprise that over 57 million people in the United States do freelance work.1 The freelance lifestyle has attracted professionals across all industries because they can choose who they work with, when they work, and what they work on. 

Freelancing = Freedom + Flexibility

Software engineers and developers are the creative brains behind computer programming, and becoming a freelance software engineer allows your creativity to unfold. Instead of developing programs that your employer tells you to, you can pick and choose the projects that interest you most. You can also program your heart out at 2 am, and sleep the day away if that’s how you like to do it. 

Finding Projects

There are two main ways to find a software engineer contract and project that is right for you. 

Apply to Platforms

Platforms do the hard work and match freelance software development talent with employers: no more resumes or cover letters. The platform matches you based on your experience, skillset, and what the employer is looking for. A few platforms freelance software engineers should check out are: 

Toptal

The name “Toptal” comes from Top Talent – meaning Toptal advertises that they constantly strive to find and work with the best from around the world. Of the thousands of applications Toptal sees each month, typically fewer than 3% are accepted. The site functions as both a freelancer platform and a job board. There is a separate section of the site where software developers looking for work can put up their posts for prospective clients to apply to.

Hired

No resumes, no cover letters — just a streamlined way to connect with the right companies faster. Companies apply to you, not the other way around. You can hide your info from current and former employers, plus it’s free for candidates. 

X-Team

Spanning three continents, X-Team promotes their goal to attract and motivate extraordinary developers and works tirelessly to help them grow more each day. One of the advertised ultimate perks of being an X-Teamer is an Unleash+ membership, which gives you $2,500 per year to use toward activities that keep you energized so you can learn, grow and unleash your potential.

Apply to Specific Jobs

If you don’t want to apply to a freelance platform, you can always go back to the old-fashioned way of applying directly to a job. Some of the top websites to find software engineer contracts and projects are: 

iHire Technology 

iHire Technology is dedicated exclusively to the Technology industry. They provide job opportunities and career coaching services to help you succeed in your field. 

FlexJobs

Remote and work from home jobs are the new normal. And if you want a job that works with this new normal, Flexjobs is here for you. As the #1 job site to find remote, work from home, and flexible job opportunities since 2007, they have helped millions in their job search. 

LinkedIn

LinkedIn is a social network for professionals to connect, share, and learn. It’s like Facebook for your career. All sorts of jobs listings are posted on LinkedIn everyday by employers, and LinkedIn will recommend specific jobs to you based on your current information, including your location and optional job preferences that you can fill out to get better-tailored job listings. 

Choosing Projects

As a freelance software engineer, you have to be careful about what software engineer contracts you agree to. As a freelancer, you have to monitor your available time vs. commitments, make sure you are choosing jobs that match your skills, all while earning enough to pay your bills. 

Required Skills

Every freelance software development job varies and requires different skills. Some jobs require a degree in computer science, whereas other jobs require that you complete the task regardless of how you learned. The world of software engineering and development contains a myriad of codes and computer languages that can be very complicated and take a long time to master, so it is essential that you only accept jobs in your wheelhouse. 

Project Timeline

Before choosing a project, there are a few things you should ask yourself. How long will this project take me? Will I have time to work on other projects? Will this project interfere with any project I have already committed to? 

As the expert, it is up to you to set realistic timelines for deliverables. If the client has an unrealistic project timeline for you, you should be upfront and ask them to adjust the project accordingly.

How Much Should You Charge?

According to Thumbtack,2 a small, freelance-based engineering firm is likely to charge:

  • Basic C development: $75-$150 per hour
  • Front-end web development: $50-$75 per hour
  • Back-end web development: $75-$150 per hour
  • API development: $75-$150 per hour
  • Desktop app development: $30-$100 per hour
  • Mobile app development: $30-$150 per hour

This example doesn’t mean that this is what you should charge, but it is a good starting point to show the different kinds of ranges for each task. How much you charge as a freelance software engineer should be based on your expenses, experience, skills, and location.

Overhead Costs

One of the first things you should do when you become a freelance software engineer is figure out your business and personal overhead costs. Business overhead costs can include your software, supplies, technology, office space, taxes, insurance, and anything else you might need to successfully complete your projects. 

Personal overhead costs include the money it takes to pay your rent, pay your bills and buy essential items like food and medication. If you have other necessary costs such as car payments or daycare, include them in your overhead as well. 

Knowing your overhead costs lets you know the minimum amount of money you need to make in order to live and run your business. Of course, you don’t want to make the minimum; you want to make enough to buy some things you want and put money into savings. 

Skillset and Experience

Codementor surveyed 5,302 freelance developers and compared freelance rates by tech stack and years of experience.3 The below graph represents the different tech stacks that freelance software development professionals said they were experienced in. It’s easy to see that Javascript, HTML/CSS, and jQuery are the top three most popular tech stacks. On the other end, Amazon, Django, and Swift were the three least popular. Having specific and unique skills in the software development world can decrease the competition you have for software engineer contracts making your skills more valuable and costly to those who need them. 

A line graph of survey of the most popular coding languages, with Javascript and HTML/CSS being the top two.

Invoice to Get Paid

One of the pitfalls of becoming a freelance software engineer is not getting regular automatic payments deposited in your bank account. If you want to get paid, you have to invoice clients and collect payment yourself. 

As you work on building your business, you might want to keep things simple and keep costs low. You can invoice clients yourself and set up payment methods by accepting checks or using a digital payment method such as PayPal so clients can pay you online. 

Your freelancer invoice should include:

  • Your name & contact info–Include your name (or your business name if you operate under one), address, phone number, and email address. You should also include your business logo if you have one to give your freelancer invoice a more professional appearance.
  • Your client’s name – You also need to include your client’s name/business name and address. And, if you know there’s a specific person who handles their invoice processing, you may want to include their name as well.
  • An invoice number – Invoice numbers make it easy for both you and the client to track down specific transactions easily. 
  • Issue date and due date – Two essential dates need to be documented on every freelancer invoice — the date you sent the invoice and the date the bill needs to be paid by. The number of days between the issue date and due date is typically something that should have been outlined in your contract with the client.
  • Clear line-item descriptions – Clear communication is essential to the freelancer invoicing process. Make sure you breakdown the services you provided by listing each item separately with a clear, concise, easy-to-understand description of the work, including the price for each line item.
  • Total amount due – Obviously, this is the most crucial part. Your client needs to know how much they owe! Make sure the invoice total is clearly presented, and don’t forget to denote if the client has already paid a deposit and adjust the total accordingly.
  • Payment options – Make sure your invoice includes your accepted payment methods and any details they’ll need to send the payment (e.g., your PayPal email address tied to your account, bank info if you want a bank transfer, etc.).
  • The fine print – At the bottom of your invoice, include any other important information about things like fees for late payments (or maybe even discounts for early payments) and other points of clarification.

Improving Skills and Continuing Education

When you work for an employer, they typically provide opportunities for continuing education so you can continue to be a valuable employee for them. However, when you are a freelance software engineer, it is up to you to improve your skills and stay updated on new software developments and technology. 

Coding Bootcamps

Coding bootcamps offer both part-time and full-time opportunities to sharpen your skills. You can choose a bootcamp to sharpen your fundamentals of coding, or you can select a bootcamp program focused on Java, Django, and Python and their corresponding tools and applications. To view some of the most popular coding bootcamps, click here.4

Software Certifications

Certifications are another way to improve your skills and stand out to potential clients. Instead of earning as many certificates as possible, look for ones that will support and complement the projects you want to work on in the future. 

Amazon AWS Certification

The AWS Certified Developer – Associate examination is intended for individuals who perform a development role and have one or more years of hands-on experience developing and maintaining an AWS-based application.

Microsoft MCSD

Learn new skills to boost your productivity and enable your organization to accomplish more with Microsoft Certifications. 

Oracle Certified Associate

The Java SE 8 Oracle Certified Associate (OCA) certification helps you build a foundational understanding of Java. Gaining this certification credential is the first of two steps in demonstrating you have the high-level skills needed to become a professional Java developer.

CIW Web Foundations Associate

The CIW Web Foundations series of courses is the most popular vendor-neutral Web education program in the world. Individuals who have completed all three Foundations courses have mastered more than mere digital literacy skills: They have a unique understanding of Internet business, data networking, and Web site design.

So, Is Freelancing Right for You?

Freelancing is not for everyone. There is a lot of stability, benefits, and security that you lose when deciding to leave a full-time job. That can be scary, and if you have a family and dependents, you might not be able to afford to try to go into business for yourself. 

If you decide to move into freelancing, there is a lot of freedom and flexibility that might make some of the risks seem worth it. 

Sources:

  1. https://www.upwork.com/press/releases/freelancing-in-america-2019
  2. https://www.thumbtack.com/p/software-development-costs.
  3. https://www.codementor.io/blog/how-much-do-freelance-developers-cost-around-the-world-2626eu0rzy
  4. https://www.switchup.org/rankings/best-coding-bootcamps