3

I like software engineering. So much so I don't just do it at work, I do it as a hobby as well. I now have several small open source projects, mostly released under permissive licenses.

Occasionally at work I've had projects that seem quite good fits for these libraries. But I've always been wary of any intellectual property issues or conflicts of interest.

For instance, let's say there's an edge case bug in library X that prevents me completing work project Y. Should I write the bugfix at work, or at home? If at work, do I reserve IP rights? If at home, what if I'm not paid for my overtime?

Similarly, what if my employer's interests conflict with my users' more generally? A hypothetical example would be a backdoor in a library that needs to be highly secure. Another might be a rewrite that is functionally superior but has a stricter license (e.g. GPL). We could fork the code at this point, but my employer might be dismayed to now be maintaining their own branch of the library

My instinct is that it's safer just not to bother, but this does seem a terrible shame. It also seems a dereliction of duty when building an in-house library is expensive. Is it possible to safely negotiate these issues or is it easiest just to keep one's work and personal code separate - even to the detriment of the commercial project? And - can my employer demand that I use my library in one of their projects?

  • "(which obviates the point of using third party code)" That is not obviously true. There are advantages to maintaining a fork of a third party library over not using it at all: most clearly you get a head start on writing a bunch of code. In any case your hypothetical strictly licensed rewrite (or more commonly just maintainers abandoning the project) is something that could happen to any open source code, and is actually less likely when a significant maintainer is employed by the company. – Josiah Aug 25 at 19:53
8

The main danger is self-dealing, representing two different parties in a single transaction. You will inevitably be representing your own interests as an independent software developer. You need to ensure your employer, as a potential user of your software, is represented by someone else.

I suggest beginning by discussing the matter with your manager. If they are interested in using your code, licensing and any maintenance agreement need to be negotiated between you and your employer, represented by someone other than you and with management approval for the agreement.

  • 2
    "need to be negotiated" seems like the take home to me. You have something of value to offer. See what terms they are willing to take. – Josiah Aug 25 at 19:55
  • What items would you say might (typically) be on the agenda for that negotiation? What kinds of pitfalls and loopholes should both parties seek to close? – Jimmy Breck-McKye Aug 25 at 20:36
  • @JimmyBreck-McKye Obviously, the basic license terms. Beyond that, look at your own question. By the end of the negotiation, you should know the rules for all the issues you mention. They should either by covered by the license, by your employer's normal policies, or by explicit agreement. – Patricia Shanahan Aug 25 at 21:26
  • I'm concerned there might be other matters I haven't already considered, and the cost of that could be very great should relations sour. I suppose, really, this is why IP lawyers exist. – Jimmy Breck-McKye Aug 25 at 21:54
1

You would need to check the terms of your contract, but it is likely that anything you create at work, or using your employer's equipment, belongs to them.

This could lead to a legal minefield if you start producing bug-fixes as a result of work you have done on company time. Your employer could claim ownership of the bug-fix, meaning that you could not apply it to your open source code. So bugs would be left not fixed in the open-source version.

  • I don't think that's a risk, depending on the license. A bug fix cannot be copyrighted, although the exact patch can be. But that's what a license is for. – forest Aug 27 at 6:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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