DEV Community

Cover image for Lessons Learned in Freelancing
Cole Turner
Cole Turner

Posted on • Originally published at

Lessons Learned in Freelancing

From 2004 to 2018, I was a freelance web developer and worked on dozens of projects in spaces including tech, retail, advertising, community engagement, software development, and more. These spaces have taught me a lot about how the internet has become the center of our lives and the people who run them.

What is freelance web development?

Freelance web development is when a software engineer performs a web development service on-demand, without committing to a full-term engagement. Developers working in freelance are self-employed and have the flexibility to organize their contracts and schedule at their own discretion. These contracts are an agreement between the freelancer and the client, to perform the job at agreed-upon terms. It can be an empowering experience that allows you to have an impact on a variety of projects.

If you're thinking of becoming a freelance web developer or learning more about freelance, then this article is for you. In this post, I'll share with you the lessons that I've learned and how to have a great time as a freelancer. Moreover, I'll tell you how to work more effectively with clients, deal with complications, and what red flags to keep in mind. Here are the lessons that I've learned in my freelancing career.

#1 - Always Sign a Contract

A contract provides guarantees for both the freelancer and the client. Those guarantees include the scope of the work performed, the terms of payment, deadlines for delivery, and any additional maintenance or followup. As a freelancer, you want to over-clarify every aspect of the work performed and the work not performed, in order to have a healthy relationship with your client. Any ambiguity can cause tension, as these aspects are more difficult to negotiate later on. When I was a freelancer, I used Bonsai ( to create contracts and send them to clients for signing. Another option is Stuff & Nonsense's Contract Killer, an open-source contract.

Remember to include in your contracts:
1 Work you will perform.
2 Clarify explicit tasks that are out of scope.
3 Terms of payment including deposits, termination fees, delivery of payment, and late payment fees.
4 Responsibilities and liabilities for both parties, including if either party changes their mind.
5 Ownership, intellectual property, copyright, or other legal concerns. Upon full payment of services.

A contract is going to make the biggest difference in your relationship with clients, and how effective you are as a freelancer. These stipulations protect both you and the client and guarantee you'll have a good time. If you're unsure about your contract, reach out to lawyers and go for consultations. A lawyer who specializes in intellectual property and information technology can provide better guidance, and many offer free consultations.

#2 - Be Clear about Work (Not) Performed

When negotiating a contract with a client, the work performed should be clearly outlined. As part of this process, you will also want to rule out any ambiguity and clarify the work that will not be performed. This is for your protection in the event that later down the line, the client makes a request that is outside of the scope of the contract.

A previous client of mine brought me on to clean up the front-end design for a project. It was a reasonable project that I could deliver in the short-term, about a month and a half. Two weeks later, I started receiving requests to develop new features. This would have delayed the time to complete the contract and made it impossible for me to begin a contract I had already queued up thereafter. Using the contract as a reference, I denied the request as it was outside of the scope that I was able to perform to deliver in time.

#3 - Charge More

Freelancers are self-employed which has additional costs than a full-time employee. They pay self-employment taxes which is about 15.3%. Moreover, freelancers must pay for their own health insurance. The market rate for a freelance job should be at least one and a half times (1.5x) what a full-time employee would make. This will cover your additional expenses.

Your rate will largely depend on what you're able to negotiate. Freelance jobs depend on supply and demand, and what value you're able to bring to a job. A client is paying you for more than your time: they're paying for your experience too. So while it may take 8 hours to create a webpage, your rate also takes into account the years of experience you have in honing your craft.

#4 - Deposit is Non-Negotiable

Deposits are protections for both freelancers and clients. They also help cover expenses to smooth out time in between paydays. A contract deposit is an insurance that the client is able to pay you for performing the work. For these reasons, I've learned that a deposit is non-negotiable.

Clients should want to pay you a deposit because it also demonstrates your commitment to getting the job done. A client that does not want to pay the deposit, will give you trouble later. If they try to negotiate, they will give you trouble later.

In conclusion:
1 The deposit is non-negotiable.
2 The deposit is non-negotiable.
3 The deposit is non-negotiable.

#5 - Always Have a Next Next Plan

Freelancing carries an additional responsibility to manage the pipeline for contracts. You will want to have another contract lined up before your current contract ends. When it's time to start the next contract, you will want to have already made plans for thereafter.

Sometimes a contract doesn't work out. There may come a time when a freelancer finds themselves wanting to void or otherwise not renew a contract. In this situation, it's helpful to have a backup plan to bridge the gap. Short term contracts that are easy to pick up and complete are a great way to fulfill periods of time in between contracts.

#6 - Know When to Walk Away

Money does not replace happiness. When a job doesn't feel right, trust your gut and instincts. If the terms of a contract are not happening as expected, there are a few options:

  • Talk to the client to try and resolve the situation.
  • Absolving the contract amicably.
  • Seek legal consultation.
  • Walk away.

It's important to understand that above all, communication is important. Talking to the client to resolve the situation requires deep introspection into what is working and what is not working. If there is a shared sense of wanting to absolve the contract amicably, that requires communication. Ideally, there's no need to involve legal representation. The legal route requires balancing the potential loss in the contract stipends versus the loss from time spent in the legal process. When all other options are exhausted, sometimes the best option is to walk away.

#7 - Know When to Run

Knowing when to walk away from a contract is important, but knowing when to run from a bad client is even more important. There are some behaviors I've observed in my freelancing career that are definite red flags.

Want to know all the red flags to watch out for?

Continue reading about Lessons Learned in Freelancing, and all the red flags to watch out for when you're freelancing.

Bon Voyage

These are the lessons that I've learned from my freelancing career. I hope this advice was helpful. Freelancing is a great way to earn money and build a business on your own terms. The most important takeaway is to have an effective contract. Be clear about the work performed (and the work not performed). Charge more for your work than you would if you were a full-time employee. Deposits are non-refundable or negotiable. Freelancing requires being proactive, and so you should have a plan for what to do next. And lastly, it's important to know when to walk away and how to avoid a bad contract or client. In all of these endeavors, trust your gut when your lizard brain is telling you that something feels right, and when it doesn't.

I'd love to hear from you. Let me know what lessons you've learned by sharing with me on Twitter (@coleturner).

Top comments (2)

riadhoq profile image
Riadul Hoque

Great post! I’m trying to build a freelance career on the side. I’m having a hard time figuring out the unwritten etiquettes of a web dev freelancer. Say, a client wants a Wordpress site, then what are the unwritten deliverables? Do you use ACF for them to be able to edit the website? Do you host them? Do you provide the forms on page? Etc

coleturner profile image
Cole Turner

Those are good questions. Hosting or the lack of should be written in the contract. For the project scope I always create a spec and outline what is in scope and what is not in scope. The price of the project then depends on the spec. Making the fields editable increases the level of effort and adds pressure on the user interface to respond to all kinds of inputs versus a fixed set of inputs.

When it’s a requirement or scope item, spec it. If it’s a matter of process or relationship with the client, it belongs in the contract.