Lessons Learned in Freelancing

Cole Turner
Cole Turner
12 min read
Cole Turner
Lessons Learned in Freelancing
Blog
 
LIKE
 
LOVE
 
WOW
 
LOL

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.

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.

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 (hellobonsai.com) 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.


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.


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.


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.

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.


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.


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.

Assume that any client that does not want to sign a contract does not want to pay you. A contract protects both parties, and without one they want to abuse their position as the party that holds the money.

Run from the client that doesn't want to sign a contract.

If they ask right off the bat "how much will this cost?" Or "does it really cost that much?" If they are asking questions like this, it's a fair assumption that they are looking for the cheapest supply they can demand. Assume that any client that tries to barter your rate or deposit does not want to pay you.

Run from the barter that pretends to be a client.

As a freelancer, you want to work for someone who hires you for the service and value you provide. A good client understands where their abilities end and where your abilities start. When the client is also the designer or a developer, the working relationship is difficult to facilitate because the relationship is unequal and imbalanced. This can be managed, so long as the work performed is not stipulated on work that has yet to be performed. A good contract stands on its own.

Run from the client that really wants an employee.

Your time is money. A good client recognizes this and hires a freelancer with a clear set of scope, requirements, and timelines. If none of these dependencies are clarified within the first few exchanges, then the client is trying to extract as much free labor from you as possible. Any spec work, prototyping, or brainstorming is labor that should be compensated.

Run from clients that try to diminish your value before they hire you.

It is not your job to provide a client with direction. A good contract stipulates that you perform a finite list of tasks based on what the client wants.

Run from the client that wants a freelancer to also be a CEO.

Timelines and deliverables should be settled before the contract is signed, and is mostly at the discretion of the freelancer. The client can share their expectations when they need the served to be completed, however, ASAP is not a timeline. ASAP means they will micro-manage you and treat you like a commodity. This client will not respect your boundaries.

Run from the client that won't respect your boundaries.

You get an email about an exciting, innovative project, and they want your help to get it off the ground. They want you to sign an NDA before they communicate the scope, requirements, or budget. This client is asking you to perform a service before the contract is signed.

If you receive a request like this, kindly reply with this response:

Thank you for your interest. I'm happy to schedule a consultation with you to engage in a more thorough conversation. I require a $1000 signing fee, $500/hr rate, and 3 hour minimum for any sensitive consultations.

If they're serious about the idea and understand your value, they will pay you for this consultation. Otherwise, any client that is afraid you will steal their idea is likely going to be a waste of time. They will shop the idea around cautiously until some other eager entrepreneur beats them to market.

Run from the client who hesitates before hiring you.

The promise of future work is not a currency. This is a sneaky way of bartering compensation by promising stability. Assume that anything not stipulated in the contract is not going to happen. And if it's stipulated in the contract, it's not future work. Any stability this client promises is guaranteed to be a most vertigo-inducing roller coaster.

Run for your life away from the client that wants to indebt you before they pay you.

Unless your contract stipulates your availability or modes of communication, then your availability is at-will. A client that expects you to be always available will treat you like a dog on a leash. They will expect you to work on your vacations, or throw a fit if you're going to be unavailable. This client gives you last-minute demands and expects you to reprioritize on a whim. On the other hand, being a good freelancer means being responsive. It's important to establish boundaries upfront and communicate what times you are available. I find it's also helpful to set up a regularly occurring meeting to give the client a guaranteed time.

Run from clients that don't treat you like a person.


If something doesn't feel right, walk away. Even if you don't observe any red flags, the lizard part of your brain can sense when things feel off. When your lizard brain tells you that something isn't right, then there is already a seed of doubt or mistrust. When there is a lack of trust between client and freelancer, the relationship is unsalvageable.

It's unsalvageable because trust in a freelance relationship is fundamental. A client that is willing to break your trust, is willing to do it again. This client won't pay you, they will waste your time, or they'll steal your work. Walk away from contracts and fire clients that are unsalvageable.

A great client, on the other hand, is a great ally. There won't be any red flags, and any concerns can be easily communicated. When you work with a great client, the contract goes smoothly and you feel valued for the work that you bring. The client also recognizes that value and the best feeling is when they want to hire you again. Most of the clients I've acquired through the years have been through word-of-mouth and referrals.


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).

 
LIKE
 
LOVE
 
WOW
 
LOL

Related Tags

Career AdviceEtc

More Stories

Melt of the Day: Brisket, Muenster, & Grilled Onions

2 min read

You can't go wrong with brisket. This recipe uses Snow's BBQ, Texas Monthly's #1 Pick, and grilled onions for the perfect brisket and grilled cheese melt.

How I Got My Dream Job, As a Self-Taught Software Engineer

7 min read

You don't need a computer science degree to make it as a software engineer. This is my journey from freelance web development to my dream job.

See more posts

Read it before anyone else. Subscribe to my newsletter for early access to the latest news in software engineering, web development, and more.