If you're looking for some extra cash and have a few hours a week to spare, freelancing is a great way to stretch your programming muscles and line your wallet. Even better, freelancing can be a very lucrative career if you have dreams of working entirely for yourself.
Before starting an agency, I freelanced all throughout undergrad and grad school and well into my first full-time job before making the switch to freelancing full-time. I turned a few side gigs into a six-figure career, and you can too.
Before you do anything else, build a portfolio.
Visitors will want to know more about you and your work before they think of hiring you. Remember: your freelance portfolio is not your resume. Potential companies and entrepreneurs looking for freelance help are not interested in what school you attended. They want to know what you can do and how you can help them further their goals.
Make sure to include some information about yourself. Include a photo if you're comfortable with that. Because you may never meet these companies in person (unless you have local freelance arrangements), put yourself in your best light online. Let your personality shine through.
Don't have paid work to display in your portfolio? Don't worry about it. Showcase anything you've built that shows off your best work, whether it's a redesign or a small webapp you built for fun. You can add paid projects to your portfolio as you take on more clients.
Getting your first clients
The first few clients will always be the most difficult to find and sign on. Your mileage will likely vary on your likelihood to find leads through these sources, but I've seen success for other freelancers getting their start in the following areas:
- Upwork. I know, I know. Upwork is a love/hate relationship for many. But it's a great way to get in front of people who may not otherwise find you. Think of it as the Amazon marketplace of developers. Just be sure you don't fall into the race to the bottom on pricing. You're not going to appeal to everyone on there if you don't have the lowest rates, but you don't want to undercut yourself. Your work is valuable and you're being hired to do this for a reason.
- Social media. Write a tweet letting your followers know you're available for freelance work and link to your portfolio. Ask followers to retweet it. Find some freelancer Facebook groups in your niche. Quite often I see leads being shared when someone has too much work or the client isn't a good fit.
- Friends and family. Tell your friends and family you're getting into freelancing and you'd love to have them pass your name onto their friends who may need some work done. I receive a new lead at least once a quarter from a friend or family member who knows I'm in this industry.
- Non-profits. This is a great way to add some client work to your portfolio while giving back to your community. Smaller non-profits in your community don't usually set aside enough money in their marketing budget to put any focus on their website. If there's a local non-profit you would like to support, reach out and see if you can arrange a deal with them to build out your portfolio at a reduced rate.
- Cold calling/emails. In all honesty, I rarely hear of directly reaching out to a company offering to rebuild their website being successful, but it has happened before and can happen again. If you're okay with being rejected, it's worth a shot, I suppose! :)
Establishing your rates
My favorite topic! Everyone undervalues themselves - including myself sometimes. It takes just one potential client who says you're too expensive to make you second guess your rates. To be completely honest, I've been in this business for over a decade and my rates are something I continue to struggle with.
It's difficult to say "You should charge X" without knowing where you're located, what type of work you're doing, what your skill level is, and the many other factors that go into pricing a project. It's definitely important to take your market into consideration, as rates are going to differ from place to place. Take a look around the web to see the market value for your area and skillset.
A good rule of thumb is to do the following math to calculate your hourly rate:
- Calculate how much you would like to make per year freelancing.
- Add in any expenses you'll incur as a freelancer, such as credit card transaction fees, a co-working membership, additional equipment, and monthly/annual costs for software and services you'll need to conduct your work.
- Divide this number by the number of billable hours you'll freelancer per year. Note that administrative tasks (marketing, communicating with leads, preparing contracts and invoices, etc.) will on average take up ~25% of your time, so don't include this in your billable time.
Now you have your target hourly rate!
Need an example?
- Let's say I want to make $10,000 in my first full year of freelancing.
- My additional expenses will be approximately $2,000. That means I'll need to make a total of $12,000.
- I expect to freelance approximately 5 hours a week for 48 weeks out of the year. 5 * 48 = 240 hours. Remove 25% of those hours for administrative work, bringing you to 180 hours.
$12,000 / 180 hours = $66.67/hr.
It's not perfect, but it's a good way to get a starting ballpark rate.
Continue to increase your rates with each project or as you take on more complex work. Another agency owner once told me that if a client is willing to pay $6,000, they're probably willing to pay $7,000. If they're willing to pay $12,000, they're probably willing to pay $14,000, and so on.
Lastly, never reduce your rates for a client without removing something from the scope.
Landed your first client? Great! Now what?
First thing's first: don't do any work before you have a signed contract. Your contract is the only thing that will protect you AND the client from the horror stories you hear about freelancing. Whether it's a close friend or someone you've never met, send them a contract. If they won't sign the contract, don't work with them. Need a sample contract? There's one available on this Medium article. Adapt it as you need. It's well worth the small investment to have a lawyer review any legal documents you send to clients to make sure they're enforceable. It's a one-time cost that could save you thousands upon thousands down the road.
Next, get a down payment. How much you want to set your down payment for is completely up to you. Sometimes I require 100% up front, and sometimes I'll split the project cost over a series of payments as we hit certain project milestones. An easy rule of thumb if you're just getting started is request 50% up front and the final 50% before you deliver the final product. Not sure where to accept payments? I'm a big fan of FreshBooks and have been using it for a few years now. Their support is excellent and they make it really easy to accept credit card payments AND track your expenses (which you'll definitely need to be doing as a freelancer!)
Lastly, create a folder and save the estimate, signed contract, and any important conversations regarding the project details. You'll thank yourself later for having these immediately handy instead of searching through your email.
Okay! Now you can start working.
Common freelancing mistakes
- Don't over-promise what you can't do. If it's a similar skill and you just haven't had the opportunity to dig into a specific facet of your preferred development language, it's fine to take on the project if you know it's something you can do based on your current skills. But don't say you can code an iOS app for a client if you've never done any iOS development before.
- Don't work for free. I'm not talking about donating your time and skills to a good cause. I'm talking about working for exposure or to "prove yourself" to a client. Your work is valuable. The client wouldn't be giving away their product or service for free, and neither should you. If you're still building up your portfolio, you can discount your rates if you want so you can get some paying clients under your belt.
- Be realistic about your time frame. The honest truth is projects almost always take longer than expected. If you think something will take you a week to code, tell the client it'll take two. Something will come up that will throw off your schedule. It's better to deliver earlier than expected than to have to push out a launch date.
- Keep track of your expenses and set aside money for taxes. Look up your country's laws around freelancing and taxes as a contractor. If you live in the US, you should begin paying quarterly estimated taxes. Set aside a small percentage of your payments to put towards taxes. If tax law isn't your forte (as it isn't for most devs including myself), it's wise to consult a CPA to make sure you're saving enough and have your expenses properly recorded come tax time.
Whew, you made it to the end! If this article didn't answer all of your questions, ask below and I'll do my best to get you an answer.
Want more freelancing goodness? I wrote a book called Start Freelancing Today that is a deeper dive into starting and scaling your freelance business. Click here to purchase.
Happy freelancing!