10

My question is similar to this one, but the difference is that I already had a lot of code ready when I was first asked about the task. Not sure it makes any difference though.

Is it ok to build software at home and then use it at work?

At my work I was asked to find a solution for a problem, either free or paid. I looked at many options on the web and they were all suboptimal at best. Then I realized that during my college/pre-work years I wrote a small generic library that can be used for this task. It was about 80% usable already, but required some improvements.

Since it was mostly done, I didn't feel like I should simply give it off to my company. Also I felt this problem is very generic and not directly related to company business, so I didn't want it to be lost in proprietary code. Also, I wasn't sure it will actually work for production, since trying and testing it would take a lot of time too. Nevertheless, it was an interesting excercise, so I decided to do it on my own.

I spent weekends, nights and vacation days to improve it and posted it on the web as closed-code SDK. Then one day I "discovered" it at work and started testing. During testing I found a few small bugs, which I debugged at work (yes) and fixed within minutes. I suppose if that would be someone's else library I would had similar problems, but they would be harder and longer to fix (lame excuse?).

At the end the company loves it (it potentially saves a lot of money) and wants to buy a commercial license (which I don't mind giving for free, but that would be suspicious). A few other companies are also interested, but I feel this whole thing is awkward and unethical. I can't quit my job and concentrate on this SDK, since it won't pay enough.

I understand that I should've discussed it first with my manager or legal, but at that time it was too vague and not related to my direct work. Now it's too late and I'm not sure what the right thing is now. If I tell about it I think instead of a thank you I will be fired for cause and get sued. I can probably open source it, but is this the right action? What would you do?

  • 5
    Why do you think it's unethical to sell the software you own and created in your free time? The fact that you did do work on it at work using company resources throws a couple of red flags concerning ownership. – user1666620 Jul 31 at 13:44
  • I feel I used company time to test and improve my code, got valuable feedback from many people, some of which are my colleagues and did not tell anyone that I am doing this beforehand. Is it a legal problem? Ethical? Should I have got a permissions first? Would I get into problems if I tell at work that I was the one who did it? – Skew Jul 31 at 14:16
  • Also the improvements that I did to the library were done during my employment time. Does it mean the company owns them? The code was not very usable initially. – Skew Jul 31 at 14:22
  • 5
    Does it mean the company owns them? you need to consider your company's policy, your employment contract, and the law in your jurisdiction, but generally the answer would be "yes." – dwizum Jul 31 at 15:31
  • 1
    This looks like a "conflict of interest": you developed a SDK using inside knowledge about the needs of your company but still trying to sell it them. As soon as you "realized that during my college/pre-work years I wrote a small generic library that can be used for this task" you need to come to your manager and speak out that you have library that does this and this and satisfies 80% of their needs as well as mentioning that you would not give it to them for free. – AlexanderM Aug 1 at 0:05
24

I strongly disagree that you "You have done nothing wrong thus far." This is a very complicated and intricate situation that you have put yourself in to and you need to be very cautious in how you proceed.

Despite your good intentions, at best your actions are suspect and questionable. At worst they are possibly fraudulent and criminal. When you introduced your intellectual property as a possible solution to your employer's needs without fully disclosing your ownership and potential gain from its use and adoption you committed the textbook definition of fraud.

Seek legal advice from a reputable attorney immediately; before disclosing any information to your employer or a third party. If the attorney doesn't see this as a criminal act on your part they can offer the guidance and expertise to help you assure that you don't inadvertently cross the line. They can also help you determine what to disclose to your employer and how to do it so that you can mitigate the risks.

In the event that attorney feels that your actions were illegal, they can help you to 'come clean' in a way that will minimize your risks and exposure.

Legal and criminal questions aside, you also need to review your employee handbook, contract, and code of ethics to assure yourself that you are not violating anything stipulated in them. Again an attorney can assist with the gray areas.

TL;DR

Stop what you're doing. Seek professional legal advice.

4

Own up to it being yours.

So long as there is verifiable proof that the code existed well before your employment, your rights regarding the existing binary should be watertight. You have done nothing wrong thus far.

DO NOT incorporate the bugfixes into your mainline code

It is code you did on their dime, so it is legally theirs. Incorporating it into mainline would therefore be a headache with regards to ownership of the product.

You should be able to license it to the company

But what benefits code-base wise does the pro version bring? You won't be able to sell them support - they're already paying for that in employing you.

  • What about the improvements that I did to the library?Even though I did them at my spare time I was employed by the company. Does it mean the company owns them? The code was not very usable initially. – Skew Jul 31 at 14:31
  • 1
    @Skew, you might need to look at your employment contract to find that out. I had an offer from a company (years ago now) that wanted to have ownership of everything I did on my free time while employed with them, if it was mildly related to their business. I didn't accept that offer. My current company did not ask for that so I do side projects all the time. – Catsunami Jul 31 at 14:35
  • What would be a verifyable proof that the code existed before? The initial code was written 15 years ago for some fun proof of concept and never published anywhere. How can I prove it now? Is this generally a main point of ownership, that the code existed before? – Skew Jul 31 at 14:46
  • Sorry for weird question, but how would you feel if it turns out that your team member actually created the library that everyone is using now, without telling anyone else on the team? Would you consider it a breach of work ethics? – Skew Jul 31 at 14:50
  • 2
    @RobertDundon Agreed, but the default position by law in the UK (and I think the US?) is that the employer owns code you produce on their dime. They can decide to contribute to an open-source project but you should NEVER assume that is their default position. – 520 says Reinstate Monica Jul 31 at 15:17
-2

It is dumb. At least if you are paid by the hour or month, it would basically be the same as giving away work for free. Actually it's even worse as you probably would lose any IP on it. Would go to the company.

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.