Client Refused To Pay For The Website An Independent Contractor Created For Him, So The Contractor Modified The Code To Get Revenge
by Jayne Elliott
If you hire someone for a job, obviously you need to pay them the agreed upon amount.
Unfortunately, some clients are dishonest and try to get away with not paying their contractors.
In today’s story, an independent contractor in the IT field explains how a client tried to get away with not paying for a website the contractor created.
It didn’t work out the way the client anticipated.
Find out how the contractor got revenge…
Client tried to screw me by locking me out of my own system.
I‘ve worked as a independent contractor in the IT field for over 20 years.
I do all manner of things from creating simple HTML sites to managing a big hotel‘s complete IT infrastructure.
One of the many clients I had back in the day I was coding big-ish custom websites was a rental company.
Now I had heard a lot of warnings about not working with this guy that owned it.
He had a reputation that he was sharp as a tack, backstabbing and conniving.
He was a lawyer after all.
So, I went into the partnership with that in mind.
It started well, but not for long…
He wanted a new website for his renting gig, where people would list their home for rent, renters would sign up and pay a subscription to the site and he would get the whole lot.
Nothing out of the ordinary there.
So we make a pretty good deal on paper, we sign it and I get started on the project.
Coding everything in PHP goes well, but he demands suddenly that I show him progress only a week into the progress.
He wants to see the website front now.
This is just the tip of the iceberg.
He tried to explain what the contract said.
I tried explaining to him that the front end work isn‘t scheduled to start until after 6 weeks of backend programming.
I only had pure code to show right now, the contract we signed clearly states this.
He then get‘s on his high horse and demands that I put everything on hold to do the frontend first, design and then program.
I, being really young at the time and fairly naive, agree to this without asking for it to be added to the contract as an addendum and start working on the design now.
The customer was very picky.
Now, the contract stated that I was given free reign of the design decisions as long as I maintained the same color scheme and used the same logo on the site.
So I make a fast draft in Fireworks (this was back when it was a Macromedia product, before the Adobe acquisition) and within two days I show him.
He‘s not impressed and demands a different direction and sets up a list of demands.
I, as always, aim to please the customer and do just what he wants.
I design a new layout, with his list of demands but he doesn‘t like that either.
That‘s how the next 3 months go.
A never-ending circle where he is never happy with anything.
Now he points out what the contract said!
Now close to 4 months into the project, he demands to see a working showcase of the backend.
I point out that he himself changed the order in how the project was being done and had demanded that I do the frontend design first instead of the backend as stated in the contract.
Which he now turns on me and says: Yes, the contract we both signed says you will have a working backend to show me at the end of the month! If you don‘t honor that I will have to take my business elsewhere and seek compensation for your lack of professionalism!“
Ok, I now have 12 days to do a backend for the site.
A friend helped him work on the backend.
So I get a friend to help me and we work tirelessly through a weekend and I have a good base to work from in 9 days.
Mind you, at this point he has only paid the security on the contract (about 5% of the total price) and has shielded himself from paying by hiding behind.
Well, if you can‘t honor the contract, why should I? Finish XX work and then I‘ll pay as per the contract!“
Remembering now, all the warnings I had heard about this guy, I decide to add a special function to the code just to be safe, more on that later.
Time to show the customer the site.
So, now it‘s the end of the month, we have a frontend design he is OK with, a backend that has been finished to about 85% of what is required according to the contract.
I still have 1 month left to finish everything else.
Time for show and tell.
Since I was working on this development I was running it on my own dev server and showed him this in a browser on his computer.
I mentioned to him that since I only had 512Kbit/s upstream from the server it might lag a little, but it wouldn‘t when it would be put on the productional server he has his website on at his hosting company.
He says that‘s OK and the demonstration goes on.
The customer seems fairly happy with the site.
As I‘m showing him the site, both frontend and backend, I can see he‘s immensely happy with it (although he would never say so aloud).
He is trying to hide his smile that pops up regularly and his eyes gleam with all the added ways he can now start making money from.
Anyway, he now says that it‘s way too slow, this is wrong, that is wrong.. blah blah blah.
Client: “I want you to put it up on my prod server and see how the speed is!”
Me: “OK, no problem, I can make that happen. Please pay 50% of the contract and I‘ll get right on it.”
He lied about paying OP.
OK, I wait a few days and then I get an email from him where he includes a forwarded message from the bank detailing a transaction from him to me to the amount of the 50% I asked for.
So I push the system to his prod server so he can take a look at it (under beta.his-domain.tld).
I then send him an email stating that he can try the system with the supplied credentials.
What he doesn‘t know is that I knew he had been fishing around for another programmer to do this project, to “pick up from a lazy deadbeat who couldn‘t do anything right.”
So I knew he would most likely try to screw me.
What I also suspected was that the email he sent me with the transaction proof was a fake, which it ended up being.
He built revenge into the code!
Pro Revenge 1:
Remember that small function I mentioned?
Well, what it did was if user X (his user) tries to remove user Y (my admin) from the system without one setting being changed in the config first, the system will first delete and purge the database and then remove all the documents in the webroot.
Well, not 5 minutes after he reads the email from me, he does just that.
He tries to delete my admin user from the system to lock me out.
Guess who has nothing of the project left? He does!
Now the customer is also in trouble with the law!
Pro Revenge 2:
Since it is considered forgery to spoof an email, specially from a bank, I sent the information to the authorities and he goes under investigation by both the police and the bank lawyers.
OP found a competitor to buy the site.
Pro Revenge 3:
I sold the system to a competitor of his for a better price than originally contracted to him and last I knew he was now blacklisted from owning a company as well as he lost his right to work as a lawyer.
I only got that 5% he paid at the beginning and for working for just over 5 months on this project that is hardly anything.
But the knowledge of his demise will keep my heart warm for the rest of my life.
The customer was very shady and deserved to lose everything.
After all, he didn’t pay for it!
Let’s see how Reddit reacted to this story…
This reader loved the revenge.
Another reader loved how the story turned out.
Here’s another horror story about a lawyer…
This is an interesting revenge idea…
It was satisfying revenge, but the client might try to pull a stunt like this again.
Or maybe he will, because he doesn’t seem very bright.
If you liked that post, check out this story about a customer who insists that their credit card works, and finds out that isn’t the case.
Sign up to get our BEST stories of the week straight to your inbox.