So, you’re considering starting a freelance programming career.
Maybe you’ve been programming for a while, or maybe you’ve just graduated with a degree in computer science. Either way, you’re in a good place. In a recent survey, Glassdoor named Computer Science as the major with the highest starting salary and Bloomberg said the software industry had the lowest unemployment rate in the US this year.
There a lot of reasons to consider taking your skills to the freelance market. Not only is it one of the most in-demand fields, but there are a lot of perks that come with freelancing. Many freelance programmers cite the ability to pick their own projects, work in remote locations and improve their work-life balance as key factors for becoming gig workers.
Additionally, freelancers in general tend to make more money that their desk jockey counterparts—freelance programmers specifically make an average of $70 per hour, with an annual salary around $115,000 for a 32-hour work week.
Let’s talk about how you get there.
Before you launch your freelance career, evaluate whether freelancing is really for you. Some people benefit from the structure of a 9-5 office job. If structure and routine are an integral part of your make up, then maybe freelancing isn’t the right path.
As a freelancer, you take on the organizational and financial responsibilities of your employment. You need to be able to balance a fluctuating income, prioritize saving (including saving for taxes) and manage your own benefits. These can definitely be perks if you prefer to be in charge of where all of your income goes, but it does require some thoughtful deliberation.
If you are just finishing school and considering launching as a freelancer (rather than applying to full-time jobs), let me assure you, you can pull it off.
First, know that you do have experience—your schooling. Every class I took in college resulted in a final project that I could hand off to an employer as proof of what I could do. Maybe I’d only successfully completed the project once (maybe I even got a C on it), but I had something tangible that could be evaluated. Don’t be embarrassed of what you’ve done. Potential clients will be impressed that you can learn as you go, even learning from your mistakes.
Second, try building up your experience before you go full freelance. In your spare time, practice creating the kinds of project you’d ultimately want to be paid for. Use job boards to throw your line in and see if any clients will actually bite.
Try to get side gigs and build experience before turning to freelance as your only source of income. Start while you are still in school or working another job. It’s better to know early on whether or not freelance programming will be a viable career option for you.
Before you can expect to land any clients, you need a name that means something. In other words, you should be able to prove that you can do what you say you can. If you are seeking out freelance work through job sites, ther are skills tests available to prove your expertise. A better way to show off what you can do is to create an impressive, extensive portfolio.
I would recommend basing your portfolio around a personal website. If you are an experienced web designer, then build your website from scratch! This can be your first impression to clients of what you can do. Make it clean, modern and easy-to-navigate.
If building your own website is too intimidating a task, there are many website building platforms that are easy to use and look beautiful: Wix, SquareSpace and WordPress (to name a few). You don’t have to say that you used these platforms to build your website unless your client asks. Same rules apply: make a good first impression by offering an easy-to-use, designer-approved webpage.
On your Website include:
Not only is a blog imperative for SEO improvement, but it is the best way to build your brand and establish yourself as an expert in your industry. Post frequently (2-3 times a month at the very least) and make sure your posts are in-depth and practical. Don’t just fill your website with empty words—offer real knowledge to the world. Start with what you know best (you are an expert, remember!) and put it in your own language, make it conversational.
If you are comfortable creating YouTube videos, you should link to that content as well. Lots of freelance programmers use media content to build their brand. As an idea: if you are camera shy, start with screen capture videos where you demonstrate your skill or demo a unique programming technique. Write out a voice-over script so you sound professional and well-expressed. Then, just read off of it (you can even record the audio afterwards if multi-tasking is not your forte).
As stated, you should include links to all of your socials on your webpage. So, that means you need to be using social media regularly. If you have a twitter account, but your last tweet was six months ago, your client will dismiss you as unengaged in the current conversation. Programming is an ever-changing field, so use your website, blog and social medias to show that you are aware of trends and changes in your industry.
Because there are so many programming languages, the most successful freelance programmer is the one who knows the languages that are in-demand. I’d recommend specializing in one or two languages, though there is some controversy about whether you should specialize or generalize.
The benefit of being a full stack programmer—especially when you’re starting out—is that you are hirable for multiple jobs. You are familiar with a couple different languages and you are comfortable working with all technological layers required to get an idea to a finished product. You don’t have to have a mastery in each layer, just a familiarity. Going full stack means that you can work for businesses and software companies.
However, many freelance programmers recommend specializing instead. Rather than being a jack-of-all-trades, you are an expert. And people want to hire experts, not novices. Additionally, the more specialized you are, the more earning potential you have.
So, if you do choose to specialize, you might want to look at the data to see which languages are currently in demand. Here are two separate findings:
The top 5 languages used were:
As a freelancer, you are responsible for all the financial elements of your company: saving for retirement, filing for taxes, legalizing your business, and so forth. Make sure you understand all that’s entailed before you start full-time freelancing.
When you get started freelancing, you are also starting a business. It’s a good idea to protect your business, as well as add greater potential for growth by choosing the best legal entity. Many freelancers choose to incorporate as an LLC, but there are benefits to sole proprietorship as well (click the previous links to get the nitty gritty details of each).
Either way, it’s a good idea to register your business and apply for a federal EIN, if applicable. And know that you don’t have to keep your business incorporated as the same formation forever, just pick one to start off.
Freelancers, also called independent contractors, are subject to the Self-Employment Tax. It’s a good idea to put away 20-40% in savings to be safe when the taxman comes. You will also receive 1099 Forms from any client that paid you more than $600 during the fiscal year. Even if you don’t receive a 1099 from an employer, you should report all earned income to avoid penalties.
If the financial aspects of starting a business are starting to intimidate you, let ZipBooks lend a hand. We offer free accounting services and virtual bookkeeping to let you focus on what you want to—growing your business.
As you start setting prices for your services, be honest about the value you’re creating for your clients. Remember that you’re doing something that the client can’t do for themselves. Dwight Schrute says, “Why [pay] someone for a job I’m capable of doing myself? I can deliver food, I can drive a taxi, I can and do cut my own hair.”
You are offering an important service, so charge for it. And don’t go too cheap, as this could create a negative impression of yourself on the client.
For most programming projects a flat-fee makes the most sense. Consider charging by the project rather than charging by the hour, but include milestone payments throughout so you don’t only get paid at the end. Milestones payments are also an easy way to prove to your client that you’re not wasting their money; they only pay you when the see the finished product they were looking for. Define clear deadlines with your client and stick to them.
You can go the hourly route as well, it’s just that flat-rate payments often make more sense for programming. Either way, you will make good money if you are honestly assessing your value.
In other words, don’t quit your day job. Try getting your feet wet in the freelance programming market before turning to it as your sole source of income. Sign up for a few freelance job sites (listed below) or see if you get anyone reaching out to you through your website “Contact” page.
The nice thing about starting out with a side gig is that you get to be selective about your clients. You don’t just have to accept any job that comes your way, because you’re not desperate for income.
See how many people are actually interested in hiring you. If no one responds to your portfolio, bulk it up with some new material.
You’ve got a polished website, an impressive portfolio and your financial ducks in a row. It’s time to land your first client.
As I see it, there are two ways to start full-time freelancing:
Here are some freelance sites which are designed for people seeking short-term projects:
A favorite among freelancers, Upwork allows you to choose your own projects and filter based on industry category and skill level. As you continue to get jobs through Upwork, you can build up good reviews and client relationships and will be able to earn more money per job. Create a profile and submit proposals, but know that Upwork will take 5-20% of your earnings from each project as a “Freelancer Service Fee.” A mobile version of Upwork is also available for download.
Similarly, create a profile on freelancer.com and write bids. When writing your bid or brief, be thorough, professional and competitive with your pricing. Freelancer also hosts Programming Contests to showcase your work though there is an entry fee if you are not a registered user. Freelancer also has a mobile app.
Create a profile and submit quotes to open jobs through Guru. They offer skills tests and a variety of payment agreements: pay by milestone, task, hour or recurring payments. Creating an account is free, however many of the perks of Guru (10+ monthly bids, premium proposals, etc.) are reserved to paid memberships.
Toptal advertises as listing only the top 3% of freelancers. They have an in-depth screening process including language, personality, skills and project tests. However, once you make it past the application process, you get to work with big names like HP, Airbnb and Pfizer.
A gig is bought every 5 seconds on fiverr. It’s free to join, though they do take 20% of each transaction as a freelancing fee. You set your own pricing and determine how much work you want to do.
Specific to freelance developers, wearehirable.com asks its users create a profile including your skills, experience and interest. They advertise as having no middle men or hidden fees and are trusted by Google, Betaworks and others.
In a recent Forbes article, one freelance programmer cited Gigster as the key to his work life fulfillment. Gigster is an invite only platform, though you can request to join their network. They claim that if you’re producing a huge amount of high-quality code, you could easily make upwards of $500,000/year using their platform.
You can always go to the more general job boards like Indeed, LinkedIn and ZipRecruiter. These job boards are regularly updated and have some freelance jobs available, though they tend to be more long-term (a position that lasts a few months rather than a project that last a few hours). To search for a freelance programming job, just select “Contract” under the “Job Type” filter.
If you are not interested in using third-party sites to secure clients, there is another way: leverage your own network. This is definitely a more long-term strategic play, but the clients you secure are more likely to be loyal.
If you are going to start with your own network, make sure you have spent time cultivating your brand and polishing your portfolio. Write your own business plan, including your vision, goals, and growth plan. Then, get to work. Start with people you know, but make sure you have built a solid relationship of trust before asking for a referral.
Whichever route you choose will require a lot of time and research. It will take time to earn the trust of potential clients, even if you are starting with friends rather than the cold approach.
You should do a background check of every company or client that approaches you—make sure they are the kind of person you’d want to work for. Remember, you haven’t quit your day job, so you’re not desperate yet.
Once you know the customer is viable, use your research to determine their needs and offer insightful recommendations on how you could improve their processes. Use this information to write strong proposals, bids and cover letters, that they won’t be able to refuse.
You’ve landed a few clients, completed a few projects and even gotten paid! Now, keep going. Make sure you’ve got a good number of loyal clients on your roster before you start freelancing full-time. Keep the clients you’ve got by always sticking to deadlines, delivering the best service and staying in touch throughout the project lifestyle.
When you complete a task, add the finished product to your portfolio and share what you’ve learned on your social media accounts. Regularly update your blog and respond to questions and comments that your readers bring up. When you make a mistake, admit it openly and find a way to improve.
Be active in online programming communities and attend meetups and tech conferences. Remember that programming is ever-changing and stay current with your education and knowledge of languages. When you have time, seek out additional certifications that you can add to your resume.
Eventually, people will be coming to you. Focus on building a loyal audience and proving your industry authority and soon, your brand will speak for itself.