Ramblings of an old-school software developer, father, and woodworker.

Recent Posts

Ninjas and Landmines
A retelling of a classic anecdote

Are Static Types Useless
Static types means more than number vs. string.

Contract Negotiations
As a software freelancer, how should contract negotiations look?

Freelance Contract Legal Clauses
Some clauses that I use in my contract as a freelancer.

Contract Negotiations

· by Tim Mensch · Read in about 7 min · (1308 Words)
blog developer consulting freelance indie post

So you have a client who wants to pay you to do something. Awesome! That’s the hardest part.

Now comes the “easy” part; negotiating what goes into the contract. I just wrote a short article on what should go into a freelance contract, but a couple of questions came up as a result of that, and I wanted to talk a little bit more about the overall process, along with a few things that shouldn’t go into your contract.


As I mentioned in my other article, contracts are about laying out your expectations. So put them all down.

  • What will I be building?
  • What will you be paying me and when?
  • How long do you have to pay?
  • How will we judge whether I’ve done the job to your satisfaction?
  • Are you paying me based on hours or based on tasks? (Milestone-based pay) If tasks, then:
    • Exactly what are the complete scope of the tasks you’re asking me to complete?
    • Exactly what qualifies as the completion a task?
    • How are we going to reasonably, and in good faith, determine the the scope of a task has been adequately covered?
    • If we missed something in the scope definition, you do understand that adding that missing feature is a change request, and may cost more?
  • If the project takes longer than I estimated to complete, is there a consequence to me?
  • If you fail to give me information in a timely manner, you need to know that will push back the schedule.
  • Is there also a consequence to you for being late with information (and therefore wasting my time)?

Who Writes the Contract?

I’ve dealt with some companies that won’t sign anything that didn’t come from their legal department. I’ve worked with others who were happy to sign my contracts.

I much prefer dealing with the latter, but sometimes collecting a paycheck is more important than standing on principles, so I’ve worked both ways. Consider though that any contract you get from another party has been designed by their lawyers, who are 100% out to protect their clients. Some more ethical companies may have reciprocal protections in their contracts, but most of the time the contracts will be about protecting them and not you.

So I’m going to add a few more sections on what to worry about in contracts that are being foisted on you.

Avoid Non-Compete Clauses

A non-compete clause is almost always going to be garbage. They are so bad that they’re illegal in many states, and there are very few places where it makes any sense at all.

If you’re working as a freelancer, it should be assumed that you work on multiple contracts for multiple clients. Most freelance contracts are for work that doesn’t involve any special expertise other than knowing how to design architecture and scale a service.

It’s only if you’re working on a really proprietary high-value machine learning algorithm or similar that there is even a valid concern of proprietary knowledge gained from one contract actually assisting a competitor in any relevant manner.

Any client who is trying to tie you down with a non-compete is suffering from delusions of idea-grandeur: They think their idea is so amazing that, once you help them realize it, you’ll duplicate it and compete with them. There are almost zero ideas that fall into that category, and of those ideas, 99% of them can also be duplicated by another developer quickly and easily. Exhibit A: The thousands of “flashlight” and “fart sound” apps that are available in iOS and Android app stores.

So I just say no to non-compete clauses. It’s typically not negotiable; if the non-compete were so restrictive that I would only be in violation if I literally cloned their app and tried to compete with them directly, I might consider it. But it never is that constrained; it’s always a general description like “you are prohibited from working on any social networking app where you share photos”. So it’s easier to just say no.

Stock is Worthless

The best advice I’ve gotten from seasoned freelancers is to consider stock to be worth ZERO. Nothing.

That doesn’t mean you should never accept stock. Just consider it to be worth about as much as a typical lottery ticket. Which is also zero, but has a chance of being worth more.

So don’t agree to be paid in stock. Take cash, and if they’re trying to negotiate you down in price, consider accepting stock as partial compensation – but always require that they pay you a fair wage for your work up front.

Don’t Sign a Blanket Indemnification

You’re the little guy. You can sign something that says you’re willing to warrant your work, and fix any bugs for some period of time. I frequently do that.

But don’t sign up with a promise to protect the larger company who you’re working for against potentially frivolous lawsuits about the software they are asking you to write.

Don’t intentionally violate patents or copyright; you can agree that you’ll respect existing licenses (though I generally just avoid researching code patents, since so many bogus patents owned by trolls exist, and it’s better to not know.). But don’t agree that if some patent troll comes a calling that you’ll pay to defend or buy off the troll. You can easily lose your entire income from a project and more that way.

Don’t Agree to Lend Them Money

Some larger companies have long payout periods. Push back as much as possible. You don’t want to do the work now and then need to wait 60 days (!!) to get paid for it.

Freelancers need to eat. I frequently won’t start working until I’ve received the first check, and if they delay a check more than 15 days at any point, I’ll stop work. Yet payment arrangements in large companies are frequently “up to 30 days’ to be paid – and sometimes as much as 60 days, given a “30 day approval” and then another “30 day payment” delay.

Again, just say no to long payment windows. Demand a short window for approval (with default approval if they don’t come up with problems within 7 days, for instance), and a short payment window after that. It should typically be less than two weeks after completion of work. You shouldn’t be floating them loans for months.

Non-Disclosures Should Expire

I’ve occasionally seen non-disclosure agreements that have no expiration date. Try to keep them under three years; five at the outside.

This isn’t quite hard-and-fast, but you really don’t want to be perpetually accumulating new things that you’re not allowed to talk about. Very few companies have secrets that are really important five years down the line.

Have an Escape Clause

If a contract starts going south, you want to have an easy way out. Many contracts have 15-30 day notice requirements; I avoid those when I can.

But be absolutely certain that any for any cancellation that is triggered by the client, you have the ability to collect pro-rated income based on the work you’ve done. This is more important for milestone-based work, where if you’re 95% of the way done with a milestone and they cancel, you want to be paid for the work you’ve already done. But some contracts are ambiguous enough that you could not even be paid your hourly rate; be careful.

Have an Attorney Read Everything

You’re not an expert at interpreting contracts. That’s what legal professionals are paid to do. So pay one, whether it’s your own contract or a prospective client’s that needs to be reviewed.

If you have concerns, either from your own read or from one of my points above, you can ask your attorney what their take on it is, and how that clause puts you at risk – or doesn’t.