One of the most important skills a freelancer can develop is the ability to recognize bad clients. During our freelancing career, we will eventually find many of them. Being able to easily spot them and look for customers elsewhere is vital to keep your sanity and move your business forward.

In a previous article, I talked about places to find quality work as a freelance developer and other places to avoid. While thinking about this post some days ago, I realized that those places where you should not look for customers had something in common.

They almost inevitably attract bad clients.

If you have been freelancing for some time now, you might have some experience dealing with them. However, if you are just starting up, you might want to know how to get rid of them altogether. Please allow me to introduce them.

Types Of Bad Clients and How To Avoid Them

What do I mean with “Bad Clients”? To summarize, I refer to those customers that will offer you poor quality work, will force you to work more hours than you should, or even abuse your time. I have put together a classification in categories, alongside some warning signs that will give you a hint that you are dealing with one of them.

The Needy

The needy is a customer that will always try to make you work beyond what you have agreed to. This is the kind of person that, once you deliver the work, or maybe halfway through, asks you to add a small thing. Perhaps fix a thing that is not what “they had specified” in the job description.

They know their craft, and they initially ask for a small detail that’s not included in the contract. Then, if you agree, they keep on requesting modifications to the project, complaining about how slow or ugly the application is, testing your reactions, and continuing to ask for corrections if you don’t stop them.

These clients are easy to identify because they usually give you a vague description of the product to build. Other times they ask you to build “An app like X but with Y and Z”.

The Freeloader

The freeloaders are the customers that will ask you to do some work for them beforehand. This way, they can prove your expertise and make sure you are a “good match” for their team or project.

You won’t believe how many times scammers will try to abuse your work using this technique. Once you have delivered them this sample project, they will disappear. If you contact then, they will not answer you or offer you lame excuses. Finally, after insisting, they will tell you that they opted for another developer.

Even if they are not scammers, this technique is sometimes used by people who want to outsource the job to the cheapest developer. They contact dozens of developers and ask them the exact same thing. Then, they evaluate who is the cheapest one that delivered in time with a decent quality, and hire this developer.

What they don’t care about is the time and effort you have devoted to that sample project.

These customers may seem easy to spot, but even I was lured into this trap three years ago.

The Trickster

In this article, I explain how some customers use the promise of future jobs as a trap to make you lower your hourly rate. The trickster is that kind of client. They will present themselves as reputable clients and ask you for an estimate. Once you send it to them, they will turn it down and ask you for a discount in exchange for all those future job opportunities.

In my experience, this type of customer only leads you to work long hours in a nightmarish project, finally burning out for an empty promise. Avoid them like the plague.

The Endless Negotiator

The endless negotiator customer can’t afford what you ask for your services. However, they will try to hire you by negotiating ad-nauseam until you accept out of exasperation.

They all follow the same pattern. First, they ask for an estimate, as detailed as possible. Then, when they receive it, they call you to tell you that your services are expensive. Way too expensive.  However, they pretend to be interested still because “you are such an awesome developer” and they want you specifically for the project…

Next, they ask you to meet them and go through the estimate point by point. They question whether each point needs that much time or could be solved by doing something else. Point by point. Ad nauseam, until you start agreeing on reducing the time associated to every section and, thus, the total estimate for the project.

Even if you tell the endless negotiator that you are not interested in lowering your fee or discussing the estimate, they will insist and contact you for days, trying to bring you into the game.

My suggestion is firmly stating that your invoices are not open to discussion at the very beginning. If they insist, suggest them to look for cheaper developers if their budget is not in par with your services. It might sound arrogant, but it’s the best way to deal with them.

The Micromanager

The micromanager is the customer that wants to control every aspect of your work, from your working hours, to the technologies that you use.

They usually want you to agree on regular meetings, at least once a day. They also want you to be available 24/7, or respond to emails at 9pm or on Sundays. Of course, they also want you to explain them or document everything you do. Working for a micromanager customer is exhausting, and can lead you to burnout and depression.

The signs are not always clear, because micromanagers don’t usually show themselves until you start working with them. In my experience, one important warning sign is when your potential customer seems to have everything ready for your new position: your working hours, your personalized company email, the communication tools that you will use in the team…

If a potential employer spends more time talking about those details that the project itself… be careful and ask your questions.

How to Avoid and Handle Bad Clients

These are my suggestions to avoid being hired by these bad clients, or at least handle them gracefully. Generally speaking, applying some common sense and taking some preventive measures will keep you free of headaches.

The Needy

The best way to avoid a needy customer is not accepting any kind of job offer where the functionality of the application is not clearly specified, beyond any ambiguity. This means a formal document of requisites that you and your customer will agree upon. This document will contain the screen flow for the application and the functionality of each screen.

My advice: if a potential client gives you a generic description like “I want an app similar to Whatsapp”, ask him to give you a screen flow and a document enumerating what every screen of the application should do.

If he refuses, my advice is to start looking for more customers. However, if he accepts, use it to build a document with clear specifications of what you commit to build, and add that to the invoice and future contract.

The Freeloader

The freeloader is easy to handle. Just ask your potential customer to pay you for your time. Agree on a fair amount for the time that you will spend in that sample project and ask him to pay that in advance.

If they refuse, that’s a clear sign that you should move on to the next customer. If they accept, you will not be wasting your time and effort, and probably means that the customer is more serious than you initially thought.

Another piece of advice would be having a great online portfolio. I use my own blog and my Github account to offer social proof of my skills and expertise, and I suggest you to do the same.

❤️ Enjoying this post so far?

If you find this content useful, consider showing your appreciation by buying me a coffee using the button below 👇.

Buy me a coffeeBuy me a coffee

The Trickster

In order to deal with a trickster, use a tit-for-tat strategy. Refuse to offer him a discount in your first work. Instead, offer him to consider reducing your fees for future projects.

Most probably the trickster will refuse and insist that you lower your fees now. They will try to appear as the strongest party involved in the negotiation, capable of offering you amazing job offers. Use those signals as an indication that you should look for better customers.

The Endless Negotiator

As I mentioned, the best technique to deal with the endless negotiator is stating right away that your invoices are not subject to inspection or discussion. They will probably insist quite a bit, so you have to be really assertive here.

You are the developer, you know your worth and how much time and effort a project requires. Make sure to transmit this clear and loud.

The Micromanager

When faced with a micromanager, make sure to clearly specify that you like to work at your own pace. Assure the micromanager that you are a reliable developer, and you will eventually respond and deliver all your assignments in time. However, don’t let them impose some fixed hours or daily meetings on you unless there’s a good justification for it. Be firm. Remember, it’s your time we are talking about.

If you find out too late that you’ve been hired by a micromanager, the best way to avoid turning your work into a nightmare is educating your employer and your team to respect your time. I plan on devoting a whole post to this. However, the key here is demonstrating them that you are more productive if you are able to manage your time your own way.


In summary, there are good and bad clients. Chances are, some of the bad ones will cross your path. Knowing how to identify them and avoid them will make you a happier developer.

Do you know other types of bad clients I missed? Would you like to add your personal experiences? Don’t hesitate to do so in the comments!