I have been working on a framework for years. It is solid, extensive and tested. It is exactly what the employer needs for the foundation of its new project. There is no point in rewriting the whole thing from scratch or using a competing open-source alternative. My desire is to give a free, non-exclusive, non-redistributable license to the employer for access to the binaries and sources, so the employer can change the code. I understand that the employer cannot depend on closed-source code so I am willing to give my sources to the employer for free (the equivalent to two years of my work for free). I just want to protect my copyright and prevent the employer from giving the code to someone else. I believe many programmers will find themselves in this situation when starting a new job. However, making it open-source is out of question for a variety of reasons that do not matter for the purpose of this question.  I want to keep the source closed, but provide a free copy under a non-exclusive, non-redistritubable license. So my questions are:When do I bring it up that I have a framework that I would like to use? Probably before I take the job because if they don't want to use it OR don't accept my license I am not taking the job.What kind of license should I use to make this deal with my employer?Any other considerations or comments?UPDATES:One thing I can say is that there are other companies using the software (with licenses) so I cannot make it open-source or simply transfer the copyright to my new employer, which is what actually happens if you use it in your job without having this discussion.
How to use my proprietary framework on a new job without making it open-source?
licensing;open source;gpl;employment;mit license
As the use of your framework is a condition for you in accepting the job, you really must discuss this before you (even verbally) accept any kind of offer.As to the licensing question, the fact that you give a 'customer' access to your source code does not imply that you must make your project open-source. It is entirely possible to provide the framework (including source code) to your employer under the same license as you used for the other companies. Unless the license explicitly permits it, they can read the source code, but not modify or re-distribute it.You can also choose to give your employer a more relaxed license that allows modification, but not re-distribution.As for other things to consider:Would you give them a license if the want your framework, but don't offer an acceptable job for you?Have you considered the possibility that you make a nice enhancement on behalf of your employer that you might want to distribute also to your other customers? Doing so without consent from your employer might land you on a legal slippery slope.Instead of entering into a standard employment contract and bringing your framework along, you might also consider some more unusual constructs. For example, you enter into two contracts. One is an employment contract for the work you will do for your employer, with the difference that any work you do on your framework on request of your employer is excluded from the terms of that contract, but your employer is required to give you the opportunity to perform that work under working hours. The other is a service contract for your framework under which you perform the work excluded from the regular employment contract.The advantage of such a construct is that it remains clear that you are, and remain, in full control of the framework. In return, your employer gets their requested updates fast (as you don't have to do it in your spare time).As this all is a rather uncommon situation, I strongly advise you to seek proper legal advise.