The Life of a Programmer


Stop signing crappy contracts

Just because you’re given a bad contract doesn’t mean you have to sign it. I was recently offered a programming position that came with a ridiculous contract. It started off with a clause opening me to unlimited liability. It then went on to be very one-sided, placing an unfair burden on me. It finished with an inappropriate fee structure, failing to distinguish between salaried and contractual workers. It’s a stark reminder that carefully reading contracts is vital.

Entering the interview process I had high hopes. The company seemed to be doing it right. They had a screening interview, followed by a programming exercise. That was followed up with a technical interview then completed with a small project. It’s a good way to vet candidates. The people I talked to seemed reasonable and intelligent. All was good until I was sent the contract to sign.

Unlimited Liability


That was on the second page of the agreement. It’s quite harsh. And yes it was in uppercase. The “foregoing” was a standard contracting clause. It’s the one that states that I’m working with clients of the company and they have exclusive rights to solicit work from the clients. I’m used to that clause, and it is fair. Without it an unscrupulous consultant would bypass the company and just work directly for their clients.

The punishing clause however is not okay (note that it actually goes a lot longer than the snippet I’ve shown). There are several things wrong with it. It fails to establish any limiting criteria for the breach; the company alone acts as judge. It assigns an absolute monetary value without consideration of circumstances or deference to the legal system. It’s simply not a legitimate contract clause. It’s a threat.

I understand the company wishes to protect its interests, but that goes too far. I guess they had bad experiences in the past and now their base position is that all contractors are of questionable character. It certainly establishes the tone for the rest of the contract.


It’s important to understand the spirit of the contract and not just individual terms. Many things, taken on their own, may seem okay, but the cumulative effect can be quite negative. This contract had a lot of seemingly standard clauses but the balance was heavily in favour of the company.

[Company] … may terminate this Agreement immediately at any time, with or without cause, upon written notice…

I’m okay with lenient termination, but there was zero provision for how I could terminate the contract. Even if they breached the terms I’d be required to give 10 days notice and allow them to correct the breach. Taken on it’s own this point isn’t terrible, but the one-sided nature continues.

Developer agrees to indemnify [Company] from any and all claims, damages, liability, settlement, attorney’s fees and expenses, as incurred, on account of the foregoing or any breach of this Agreement or any other action or inaction by or for or on behalf of Developer.

I’m okay with shouldering some responsibility for my work. At the same time I expect the company to limit my legal exposure; it’s one of the values of working for a company as opposed to directly with clients. This clause however makes me responsible for virtually any costs the company should incur, for any reason. Note that my “action” or “inaction” of “any” nature makes me liable regardless of what I do.

All notices to [Company] under this Agreement shall be in writing […] sent by prepaid certified or registered U.S. mail. […] Notices to Developer will be made by email or regular mail.

This clause clearly identifies the one-sided spirit of the contact. There is no reason why the requirements for notices should be different in each direction. The requirement for U.S. mail is additionally silly as the company recruits international programmers. I’m not exactly sure how I, residing in Germany, would be able to deliver something via U.S. mail? And what’s wrong with Fedex?

Unpaid working time

Weekly fee for full-time engagement (minimum 40 hours per week)

I’m supposed be a contractor. This was stated from the beginning of the interview process and it’s what I wanted. The agreement also previously outlines my role as a contractor, not an employee. Yet here in the fees section I’m suddenly being paid as an employee. It’s a weekly payment for a minimum working time. I expected an hourly based fee, as is normal for such contracts.

The company can’t have it both ways. Either I’m a contractor or an employee. As a contractor I expect to be paid hourly. I’m okay with giving a commitment for minimum time, or average time, but I expect to be paid for overage. If they want a cap on the time that is also fine, and fairly common.

The one-sided nature of the contract should also be considered here. Were the remaining contract fair I might attribute this to a wording mistake that can be fixed. But this company seems intent on setting up a situation where they expect me to work long hours and only pay for a minimal amount. That’s not acceptable.

Bad faith negotiations

Errors in contracts, and negotiating changes is normal. Company’s don’t necessarily mean to have bad contracts. But when I raised some of these issues with this company I was met with silence. Even after the lengthy interview process they couldn’t be bothered to give me a response.

Taken together the overall spirit of this contract is one of defense instead of mutual agreement. The company is trying to defend themselves from my actions rather than cooperate with me. I assume the company has had bad experiences in the past, and that resulted in a vindictive contract. Bad things will happen. Contractors will breach the agreement. But this is what the legal system is for. It’s the reason we have arbitrators. To start the relationship on a sour note is unnecessary.

Stop signing this shit

A contract is meant to be a mutual agreement of exchange of goods and services. Both parties must agree that it is fair. “Fair” doesn’t mean it’s great for you. It means a certain level of responsibilities, and even liabilities, in exchange for a reasonable fee. Whether this is a contractual agreement, employee agreement, services agreement or otherwise, doesn’t change this. Most of the contracts I’ve had in life live up to this. Some required a few tweaks, and the companies were fine with that.

I was surprised to even get this contract. It’s just bad. It’s bothersome to think this company is filled with programmers that are okay with unlimited liability. But that’s the reason it exists. It’s the reason all bad contracts exist: people are wiling to sign them. Stop that, please!

Please join me on Discord to discuss, or ping me on Mastadon.

Stop signing crappy contracts

A Harmony of People. Code That Runs the World. And the Individual Behind the Keyboard.

Mailing List

Signup to my mailing list to get notified of each article I publish.

Recent Posts