How to Identify Bad Clients As A Freelance Developer - Digital Leaves
post-template-default,single,single-post,postid-537,single-format-standard,qode-social-login-1.0,qode-restaurant-1.0,ajax_fade,page_not_loaded,,select-theme-ver-4.1,wpb-js-composer js-comp-ver-5.2,vc_responsive
Identifying Bad Clients as a Freelance Developer. Digital Leaves.

How to Identify Bad Clients As A Freelance Developer

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.

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!


❤️ Did you enjoy this article?

If you found this content useful, consider giving some love back by making a small bitcoin, ethereum or bitcoin cash donation. Thank you!

BTC: 331u8dLejzfssKY3cXm1DPPvtaibaS4S9z

ETH: 0x994ECE4B48144f5541B34D5f15a3D671e51D7E05

BCH: 1KejtFCcrv7X2ZgovpLgs6pwgqDo1KmrmS

  • Daniel

    May 18, 2017 at 7:36 pm Reply

    Nice article Ignacio! This blog is just great

    I agree in all your types of bad clients, because this kind are not just applicable to the freelance world, but also a lot in common with regular “leaders” in a regular job.

    Just have two questions/observations:

    – The freeloader: this is a super common practice when you are applying for a job. I know this is a freelance topic. But the situation is the same: they have already a iOS dev in their team and so they make you do a “test app” to judge your abilities. I, as you wrote, find this as quite unfair… but, is like the standard process, and refuse to do that test probably will mean to be rejected for the job… both freelancer and contract. It is different may be if you will be the only developer for the project as nobody has the knowledge to evaluate, but when they need you to be part of a team, they will probably need the approbation of the others devs.

    How would manage this situation? just refuse this kind of tests? asking for a pay sounds to me like a big “next”.

    -The micromanager: I think this is quite common in less developed countries (like mine) where people just dont trust in you, and they think that if they dont control you in some way, you will not work properly… hate them!!
    Anyway, in the nowadays very famous agile style, there is a normal “daily meeting” with the whole team of the project. You said this is not ok? or it is an aceptable meeting? should we say from the beginning we will not be attending any kind of meeting cause we manage our work at our own time?

    Whats about, in the same line, write the jira tickets, document what you did in the day, and all that stuff. This is like a normal part of your job when you are in a contract basis and part of a team. If we are working as 100% freelance, should we reject all this kind of administrative work? just let in clear that we work in a “work done” basis and we will not be part of this kind of documentation?

    Im doing all this questions cause I want to go to the freelance world, but I think there is a little line separating a real free lance (just give them a final product), from a “freelance worker”, I mean, someone who are paid by its time to be part of a project…. like being in a regular job: meetings, jira, slack…, but paying like freelancer.

    Are both freelancers? should we avoid to be like the second one I mentioned?

    thanks Ignacio for share your knowledge, your blog is really cool

    • Ignacio Nieto Carvajal

      May 19, 2017 at 8:34 am Reply

      Hi there Daniel. Thanks for your kind words. My pleasure to know it was useful.

      Regarding your questions, this would be my advice:

      The freeloader: yes, this is a very common situation. What I would do is having a good portfolio online, so you can send the other developer there.

      It is a nice idea having 3-4 small applications with the usual stuff that other iOS developers want to see. One app with a nice UI/animations, another with access to the network and showing information, another one with iCloud (maybe a ToDo list)…

      The nice thing about having these applications is that they add value to your portfolio and to your worth as a freelance developer, so it’s always a good idea investing some days in building those.

      Besides, you can refer any potential customer to that work.

      However, if they still want you to make a custom test app, and you REALLY want that job concretely, consider how much time is going to take you. If it’s more than one hour, I would advise you to ask for some money for your time. Explain them that the App is going to take you 3-4 hours, and ask them if they would work that hours for free for a potential job themselves. If they are serious professionals, they would pay you a small amount for your time.

      The Micromanager: Of course, some kind of progress control and ticketing system is necessary nowadays. That doesn’t imply you are in front of a micromanager. It is ok having one 5-10 min agile standup a day, and using a ticket system. However, micromanagers tend to abuse meetings and the time of the people involved in them. If that standups are taking 1h or more, and you work 8h a day, they are taking 12,5% of your time. Tell the CEO of your startup or boss about that, and ask them if they need you to attend that one hour and loose more than 10% of your productivity.

      I also agree 100% with your opinion about systems like “Jira” that are not agile at all. I hate those systems. If I have to spend more than 1min defining a task, it’s not worth it (that’s why I created The Task Ninja). In that scenario, what usually works for me is assuring your boss/CEO that you are a great worker but like to work at your pace, and ask him to allow you to define less “detailed” tickets, so you can define tickets such as “Working in the Core Data module”, that may take up many days without being micromanaged. Conversely, a micromanager will insist on you defining tickets like “fixing the sendMessageToUser() function to add the new “origin_device” property to the JSON structure”

      An agile tool should save you and your team time, not the other way around.

      Hope this helped! Thanks again for your comment.

      • Daniel

        May 19, 2017 at 2:56 pm Reply

        It helped a lot. Thank you very much and keep the good work with this amazing blog!

  • Susan Svenson

    May 22, 2017 at 8:33 pm Reply

    Fantastic article. Thanks!

  • […] you shouldn’t be afraid of your customers comparing times or rates with other developers. Good customers will not do that. They will appreciate the honesty and, if the estimate fits their needs and budget, hire […]

Post a Comment

Before you continue...

Hi there! I created the Digital Tips List, the newsletter for Swift and iOS developers, to share my knowledge with you.

It features exclusive weekly tutorials on Swift and iOS development, Swift code snippets and the Digital Tip of the week.

Besides, If you join the list you'll receive the eBook: "Your First iOS App", that will teach you how to build your first iOS App in less than an hour with no prior Swift or iOS knowledge.

I hate spam, and I promise I'll keep your email address safe.