Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have signed a Non-competitive agreement but I would like to be able to reuse some code across all projects that I work on for this company. So, which license can be used for my library code that would basically say the following:

  • I (the author) can use my library code in any client project.
  • You cannot use my code in part or in whole in any of your projects.
  • You may not redistribute or share my code in any way in part or in whole.
share|improve this question
There's your license right there. ^^^ – Robert Harvey Mar 12 '12 at 19:59
Would something like that actually hold water? – nathanjosiah Mar 12 '12 at 20:43
Awesome, can you add your comment as an answer so that I can mark it as the answer? – nathanjosiah Mar 12 '12 at 21:08
up vote 4 down vote accepted
  • I (the author) can use my library code in any client project.
  • You cannot use my code in part or in whole in any of your projects.
  • You may not redistribute or share my code in any way in part or in whole.

The tricky part is defining the terms "use," "client," "project," and "redistribute." It might be worth your while to take this to a lawyer and have him hammer out some legalese.

In practice, you just need a written agreement with the company about what each party can and cannot do, which is basically what you've done in your question. You also can't contravene the non-competitive agreement you already signed, no matter what verbiage you put in the license.

share|improve this answer
Thank you, this will be a good one to have in my programmer utility belt! – nathanjosiah Mar 12 '12 at 21:15
"You" is possibly also tricky to define, in corporate contexts. – MSalters Mar 13 '12 at 10:51
+1 for being simple. I know many folks come to Programmers.SE to seek such guidance but are basically horrified. There are potentially many thing that one can noise them with, but it is when we give them simple (i define simple as easy to interpret) answers, it helps genuinely. – Dipan Mehta Mar 13 '12 at 11:00

Assuming you are a consultant to this company, you want to sell them a non-exclusive license. To your plain-English description, I would explicitly add that you require the company to contract individually for any further projects using your library. Of course, I Am Not A Lawyer (IANAL); you should consult a real one if you are going to write your own contract, especially since your actual laws may vary...

If you are an employee for this company, rather than a contractor, be aware that code written as an employee is usually, by default, work made for hire, which means the company owns it from the get go. If I were working in any environment that even vaguely resembled employment, I would be inclined to a very careful, explicit, and particular written contract, to ensure that the company did not appropriate my library altogether. But, again, IANAL.

Additionally: at least as important as getting the contract right is making sure the people at the company you are contracting with have the same understanding about what they're buying as you do.

The contract is insurance against lawsuits, but mutual understanding is what should make a lawsuit less likely. After all, your question indicates that you expect repeat business...

share|improve this answer
My Non-Competitive Agreement explicitly states that I am in no way an employee. The agreement was only to establish that I do not own any software or any assets associated that are part of a project that is sold to a client. When the project is completed, we hand all files associated over and it becomes their property. – nathanjosiah Mar 14 '12 at 15:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.