When it comes to software engineering and the IT industry in general, contracts are a necessary part of doing business. Here and there, you sign NDAs — as an employee, contractor, or company — which nowadays are a necessary evil. I’m not a fan of confidentiality agreements, as companies usually include clauses that have no place to be there. So, the best thing we as engineers can do is be aware of the types of contracts we’re signing. Even better, if we know the contracts that we should avoid signing. In this article, I’ll share some of my experience with legal documents.

Before we jump into the article, disclaimer — not a lawyer, not legal advice.

Back in the day, I read an article by Joel Spolsky about the NDAs, and I agree with him 100% — companies did start abusing the NDAs/Non-Competes. Also, FTC has proposed to ban Non-Compete clauses in all employee contracts in 2023.

You need to keep your employees loyal by treating them well, not by creating arbitrary obstacles in their career.

Joel Spolsky

I also saw this tweet not long ago that reminded me that most engineers I know take contracts lightly. They trust and assume that, by default, the contract is already in their interest. Nobody is so evil that they would offer you to sign an agreement that is not beneficial for you, right?

To be honest, I always assume good faith from people who offer me to sign some documents, but I still read through all of it and clarify every point that is unclear to me. This should be your default — trust but verify, and there’s no shame in discussing parts of the contract. In the end, it’s a bilateral agreement that should benefit all the parties. And if you miss anything or agree to some terms you did not clarify beforehand — it’s on you.

The good news is that contracts are not set in stone, they are usually open to negotiation until they’re signed, and even after signing, you have a chance to change something if you’re on good terms with the counterparty.

Stuff you shouldn’t sign

Any form of a non-compete clause in employee contracts. These clauses prohibit an individual from working for a competitor for a certain period after leaving a company. These are bullshit and are mostly illegal in their phrasing.

They look something like this:

Employee agrees, for a period of X months after resignation with Employer, not to work in the field of  Y and/or in the region of Z.

I’ve seen contracts that prohibit a person from accepting opportunities in a radius of X km around a company’s headquarters for 12 months. CRAZY. To be clear, there are other more effective ways to protect a company’s IP or against solicitation from former employees — non-competes are just evil and help no one.

Thank god such non-competes are getting extinct.

If you’re an engineer and get offered a non-compete, turn it down. Plain and simple. Even with all the layoffs happening, there is still a shortage of skilled developers, so you’re in demand, and you can always find a company that cares about keeping a good relationship with their employees instead of ruining their future potential (even if it is outside of their company).  

Another clause to watch out for, but is not as dangerous as the non-compete, is the “I agree not to cause any other employees to get hired,” which prohibits you from hiring directly or allowing any current employees to get hired by the company to which you went. This clause protects the company from the unlikely event of a manager leaving and taking their team with them.

Confidentiality agreements, a.k.a the Non-Disclosure Agreements. These must be carefully read through, and any broad language should be dismissed. Be wary of contracts that are overly strict about types of information that are allowed to be shared and that is not genuinely confidential. Most of them also don’t have ANY expiration date, which is a big no-no.

There is, however, one clause I’ve seen in a lot of NDAs that I consider quite unacceptable. It is a clause that forbids you to hire anybody who works for the company that is making you sign the NDA. Presumably, they think that while you are visiting them, you will hire away all their employees and put them out of business.

– Joel Spolsky

If you really need to sign one — it needs to define precisely what is protected by the NDA. Contain no broad language, and contain an expiration date, the agreed penalties, and the jurisdiction.

Exclusive distribution agreements. This is relevant mainly for creators, but I know many developers create content, books, videos, etc. It sucks if you have an exclusive contract with Amazon that allows you to sell your product only on Amazon. Contracts that require one business to use the services of the other exclusively can limit future growth opportunities and should be avoided if possible. Not worth it.

A project-based agreement without a clear definition of scope and definition of done. If you’re a freelancer and a new one, you might consider keeping the contracts relaxed, e.g., “Develop an E-commerce shop.” This can go wrong in so many ways, as you and the Client have very different opinions on what an e-commerce shop should be able to do. Reviews? Recovering abandoned checkouts? BNPL Integrations?

💣 Any work contract should be explicit, never implicit.

A vague project agreement will come back and bite you. Contracts that do not clearly define the project’s scope can lead to disputes and, most of the time, DO lead to at least a mild headache. It’s essential to have a clear and detailed scope of work that outlines the project’s deliverables, timelines, and milestones.

Clauses that you should avoid

Work-for-hire clauses a.k.a “Everything belongs to your employer”: These clauses transfer ownership of any work created during the contract to the hiring party. Sounds straightforward and logical, except it means:

  1. Anything you do with the company property, e.g., work computer, automatically belongs to the company, even if you do it on the weekends.
  2. If you work for a software hub, any SaaS app you build over the weekend will belong to the company, regardless of whether you do it with company property or not — as it’s related to the company’s business.
  3. Belonging to the company means everything, not just the IP — the revenue, the code, and the good vibes.
Too vague.

Ideally, before starting any side hustle — clear it up with your employer. Even if you think you’re in the clear, it’s highly recommended to have everything in writing where you’re specifically granted an exemption from this clause. Most of the time, this clause is just a catch-all protection against the employee trying to claim copyright on something they built for the company, so it’s very easy to get an exemption to this clause if you explain your case.

One-sided termination clauses: In general, you should avoid any one-sided clauses. Every clause should have a balance of what it takes from you and what it gives you. So if someone can terminate the contract without any explanation, and you don’t have that right, that’s a no-go.

Unclear compensation rules a.k.a “how to get fucked in startups”: So, if you watched the movie Social Network, there was this scene where Eduardo Severin’s Facebook shares got diluted from 34% to 0.03% because he signed some wrong documents. This is an oversimplification of what happened, but the sentiment holds that you should be very careful with the compensation clauses and shareholder agreements.

Red flags that you should keep an eye out for:

  1. Absence of vesting period. Vesting is the period you must wait before turning your options into shares. Also, to make this clear, options != shares, you will still need to buy those shares at the agreed-upon price. If you leave before you execute those options, you forfeit any benefits. Additionally, there should be some timeline for when you can start executing your options.
  2. No explicit termination clause. If your CEO can fire you on a whim — consider yourself expendable. Before you sign any sweat equity agreement, check that there are clear performance criteria described in the exit clause.
  3. No mention of Tag-Along and Drag-Along Rights in your shareholder agreement: Tag-along protects you as a minority shareholder, someone sells — you can sell at the same price also. The drag-along right protects the majority shareholder. If they sell, they can also force you to sell under the same conditions. You might be at a disadvantage if the contracts don’t have them.

Automatic renewal clauses, unless you really want them: Some contracts automatically renew for a fixed period unless the individual or company takes action to terminate the agreement. These can be difficult to get out of, so read the fine print. These are used, in my opinion, in a predatory way in the Fitness industry where you come in January, sign up for a yearly contract, and then it’s so hard to get out of that contract by the time that you remember that you need to cancel it, it’s already too late and the following year rolls over. Kudos to those who notify you a few weeks before the deadline.

🚷 Never sign anything you're not completely sure about.


I think we can summarize it quite well with just a few bullet points:

  1. You should read your contracts and, better yet, get your lawyer friend to take a look at them. There’s no shame in that.
  2. Everything can and should be negotiated. We are people, we have empathy, at least most of us do.
  3. You sign the contracts in good faith, propose clauses in good faith, and ensure it’s a win-win for everyone. If the other party is uninterested in a win-win, you walk away.
  4. Avoid Gym contracts.

Feel free to suggest anything from your experience in the comments.

Other Newsletter Issues:

Other Popular Articles:

Read More