I wrote a program for my boss. How legal is to to write the program again and make it FOSS?

DroneRights [it/its]@lemm.ee to Programming@programming.dev – 72 points –

I told my boss I had an idea for a program that could improve efficiency across much of the business, and he let me build it on company time. In the long term, he wanted to be able to sell it to other companies. However, the program never got implemented due to personnel mismanagement, and I'd rather be able to post it on my github under a free licence so I can use it as a resume item, and at least someone would have the chance to actually use it. It's all still in my head, and I could write it again if I wanted. If I do, is it illegal to publish it? What if I write it in a different language? Do I need to change the variable names? I did plenty of research and planning on company time to build it, and it's not like I can research it again, it's all still in my head.

75

Not a lawyer but from my understanding of intellectual property: You wrote it on company time, so it is the companies code. Publishing it without explicit approval would be copyright infringement.

The code on the computer isn't what I would be publishing. I would be publishing the memories in my head, which I had written down again

Don't copy the code directly from any company assets. There are plenty of ways to track code and data theft these days, so don't even attempt it. I am just saying that as a friendly reminder.

Honestly, there is not much that a company can do unless they specially own the business logic of what you are doing. Are there aspects to the code that apply to internal proprietary software? That probably isn't wise to share.

While I am not a lawyer, a general rule of thumb is that if you think you might be stealing something, you probably are. Anything you do on company time, is technically owned by that company.

If your previous work gets discarded by that company, never talk about it again. Never code it again for that company and just let the idea die, as far as that company is concerned. Independently resurrect the idea at a later date.

Nobody here can really tell you what to do, btw. Quite honestly, if you think that you can claim ownership of what you have, pay a few hundred bucks for a consultation with a lawyer.

Doesn't matter if you write it in code or chisel it on a stone tablet. It is still the companies intellectual property.

Think of it this way: You film a movie which for whatever reason doesn't get published. This doesn't give you the permission to write a book containing the same story, just in writing. The story is still owned by the film studio. The same reason applies to published material: You are not allowed to write a Star Wars story without approval from Disney, the copyright holder. Fan fiction exists in a gray zone for exact this reason.

You're sort of missing the point. Two programming implementations are never the same if you rewrite them from scratch for anything but the most trivial program. It wouldn't be a copy of the original and it would have a unique, if similar, implementation. It's not as clear cut as you suggest (at least not for the reasons you suggest, but IANAL.)

Legally it is quite clear. Taking a description of a closed source program and writing a new one is ok in most cases (unless that description is API docs - see Cisco vs Arista). Taking a look at closed source software and then implementing your own version is poison as far as OSS goes. OP implemented the first version, so that's already a problem. They may get away is they describe what the program does to someone else and let them implement it, but OP would not be able to touch the source code

I agree. Particularly because it's less about the truth and more about what can be proven in court. But even more, they don't want to pay a lawyer a bunch of money to defend this even if you could prove it beyond a shadow of a doubt. You can tell by the way they didn't want to pay a lawyer to answer this question.

Having seen original source code hasn't been an issue in previous cases where the reimplementation was done in another language with the changes one would expect coding up something a second time, I believe

It is not about the code line by line, but the functionality that OP created for their employer. And yes it is not clear-cut in the sense that in Oracle vs. Google it was AFAIK decided that the idea of the toString Method does not fall under copyright. However, a software that fills a specific need for a company and is then re-implemented/released by an employee? You can bet your ass you are in for at least a lengthy battle in court.

Yeah being right doesn't protect you from a company firing your ass and suing you

You can absolutely write a Star Wars knockoff, though. You just can't call it that. There's some gray line in there somewhere.

If you rewrite it in a clean-room approach and another language it will most likely not be in breach of copyright.

But there are many other aspects where you may be at fault: breaking confidentiality, using trade secrets, non-disclosure, non-compete etc.

My advice would be to have an honest discussion with the company owner and ask for the permission to open the code under a permissive license. Be prepared to explain what the advantages would be for the company, beyond "the code is just sitting there". Be prepared to drop it if they say no.

If you go ahead it is quite possible you will be sued. Make sure you're willing to risk it and spend time and money defending your project.

--Not legal advice-- Except they can't do clean-room development because copyright is viral. If they had access to the copyrighted source, any code they write on the matter, if it coincides with the copyrighted one to some extent, can be pursued for copyright claims (IBM v. Microsoft). For example, when there's a leak of Windows source, ReactOS devs get super scared, because it really puts them on the line. Another example is Nouveau, which can't accept anyone who has worked at NVIDIA. That being said, the company was not intending to do anything with it, so they can't claim damages; ergo, OP is completely safe.

Even worse: Depending on (local or national) law, it may be the company's property, even if written in personal time. Especially if the code is in competition with your work.

Yes, it's ass-backwards, but that's how it is in some places.

Just rewrite it with different lines but same result fuck em. Down votes incoming

Check your employment contract. If that includes an NDA or a confidentiality agreement, the company may own your design as well as any code produced. Writing the program from scratch a second time may still end up being company property.

Given that they didn't put your program into production, it's unlikely they would pursue you legally for releasing a new version on your own.

IANAL but i'm pretty sure that even without an NDA anything you develop on the job is considered IP of the company. However, as long as it's not a blatant copy paste(a rewrite), it's hard to legally enforce that because they have to prove damages. Meaning that if they shelfed the idea/program, even if it's a blatant copy paste they can't do anything.

even if it’s a blatant copy paste they can’t do anything.

They can sack you.

Basically, they won't bother sueing you unless you end up making millions off it

But at that point the program will likely not even be reminiscent of its original form

NDAs/confidentiality agreements have to be specified in the employment contract or other signed paperwork?

In the past I've joked with my boss that I'm not obligated by NDAs and can say what I want to others. It was a joke but realistically I don't believe I am because not a word of NDA/confidentiality is in my contract, nor have I signed any other paperwork with it in. But the boss seems to think I am restricted by NDA.

1 more...
1 more...

The only real answer here is talk to an actual lawyer rather than a bunch of Joe Blows on the internet. Case in point: Laws will vary depending on country and you haven't specified what country you're in. The set of laws you're subject to are possibly entirely different than the set of laws each commenter here is familiar with. Never take legal advice from the internet.

But if you're only looking to publish the source code as a resume item, it's not worth the legal exposure or time/money to talk to a lawyer. Find something else to write and put on your resume.

Meh, everyone scaring you into thinking you don't own your own mind.

Assuming your boss is not the dangerous kind (beyond legal threats), and if the goal is to make it FOSS, then do it using an alias first. Do it differently. Use components/libs/algos from other people at first, even if they are not perfect. Make those parts easily pluggable/replaceable which would be good design anyway. The code then wouldn't be wholly yours, not even your alias self.

You can join the project later with your real identity as an interested domain expert (maybe a bit after not working for the same boss). Start contributing. Become a maintainer. And maybe take over after a while. You can start replacing non-optimal components/libs/algos with better ones piecemeal.

Oh, and if Rust wasn't the choice of implementation, use it this time.

Also, don't use company hardware; don't do it during working hours (especially commits - if you're paranoid, use tor) either; resist the temptation of giving the old code a look, do it from memory.

don’t do it during working hours (especially commits - if you’re paranoid, use tor)

I wanted to mention not using personal emails or committing from home IP addresses, but thought that was needless to say.

Going to such lengths suggests this is morally the wrong thing to do.

"Make those parts pluggable/replaceable which would be a good design anyways".

Following best practices = Morally Wrong?
Sure, fren, whatever you say.

The only reason OP might not have done it this way in the first place would have been to save the company worrying about licensing, or getting shitty with OP about not using enough orignal/proprietary code to ensure lock-in with future clients ... is THAT somehow morally superior in your book?

I just mean that the amount of subterfuge that's been suggested in this thread suggests these people feel that something's wrong. You don't normally have to go to such lengths to hide your identity on GitHub.

Let's be honest, deciding later that code they wrote for someone should be repurposed behind their back is rather underhanded. And making it open source rather than spinning their own company doesn't make it more palatable.

Not a lawyer, but worked closely with them in the past. It REALLY depends on your employment contract. Changing variable names and language still makes it a derivative work, so it would depend on the original license. I'm assuming it doesn't have a license which would mean either you or the company owns the copyright: depends on your employment contract. Whether you're a contractor or full time also affects ownership.

Without ownership or a license, you do not have the legal right to copy the work or make a derivative of it.

I'm not clear on whether you actually wrote any code though. If that's the case (that no code was written) then I'm not really sure how that works out. If you do post it and they find out, AND they're mad about it, you could definitely get fired. I'm not sure if there could also be legal trouble or not.

If you need it for a resume item, you can just list it on your resume and talk about it. You could also implement it on your own time (but not share it until you're sure you're safe from legal action), that way you could talk about tradeoffs you've made, etc. in the real implementation.

In general, if you're not sure and you're worried about getting sued, you should ask a lawyer.

If you just care about the resume, then write on your resume: "have experience in doing this sort of stuff." Recruiters aren't going to look into GitHub to study your code.

If you care about getting the code used or sold, I'd first consider finding the next potential client to make use of whatever the program does. Their need will likely be different, so you'll need to rewrite it anyway. You then have both the client and a new product on your hands.

Did they license the code?

Is there a clause in your employment agreement about the company owning anything you create? IBM does this, and it’s total bullshit.

In many countries, code written on company time, with company hardware and as part of the job will automatically assign copyright to the company. It doesn't need an explicit clause but many companies add it anyway.

This is different from the company owning every piece of code you write, which I don't condone. But in this particular case OP has a clear conflict of interest.

Nah, what they're referring to is about stuff created in your own time, on your own kit. It's absolutely bullshit but somehow legal.

Just change the language used to write it, if possible.

That's practical, but not so sound, advice. IANAL, yet... I remember when Julia lang was gaining traction that many R lang programmers wanted to port their favorite packages. If they were to look at the R sources (under GPL) to write the Julia version to be released under MIT license, they would be violating the GPL. Or there was a risk, at least. Of course, this case is different because the first and original version is not GPL. But this came to mind. Anyway, I suppose that it all boils down to how much OP feels like their employer (boss or anyone with power in the company) will be a son-of-a-cop and really come forward to court against him... I mean, that's in the first place. Then, comes the legal advice, as to how much of a case can be made, and what do we expect a judge would see it...

Not a him

their

not a him

?

Anyway, I suppose that it all boils down to how much OP feels like their employer (boss or anyone with power in the company) will be a son-of-a-cop and really come forward to court against him

Who would the boss be coming forward in court against except for me?

The only reaction to a long advice post is bitching about pronouns? Society is fucked.

My gender is more important to me than some random program. I can make a program whenever I want, but I've only got one gender.

Sorry, I hope you understand that was just an error on my behalf most probably related to being tired and typing in multiple languages sometimes can be a strainer.

1 more...
1 more...
1 more...
1 more...

I dealt with a similar situation by simply purchasing the code from my employer. I guess that technically it was a form of licensing, because we both had the right to use, modify, and resell as we saw fit as long as there were no infringements on branding or trademarks.

They may not offer favourable terms, but it might be worth asking.

It depends in the country you are.

If you want to show of your skills, why not write an article about it. This way you don't publish company property (maybe only snippets of code) and the viewer can read your reasons on why you made certain decisions.

But do not do this without consent of the company. If the company likes it, you could even start your article something along the lines of "here at %company% we like to write good code...". Than it is a win-win. I see this a lot on sites like medium.com

check carefully what you signed. If you didn't sign anything saying otherwise, there's nothing to prevent you from doing it.

If there's something, you could still work around it (e.g. remove company secrets).

If the resulting product is provable better, then it's objectively not the same thing you did for your boss.

After checking all of this, your local FSF might give you free legal advice to get going (keep all notes/correspondence secure for later if anything comes up. It proves you tried to act responsibly).

Writing it in a different language should be enough to dodge copyright law as it is a completely different implementation utilising different dependency technologies.

Won't do shit against patents or trade secrets though, and your program could be covered by both. Also, as others have stated, check your contract for abusive (imo) but legally permissible code copyright clauses, such as 'everything you make in your spare time is ours'

I mean, at the risk of being obvious, take your contract to a lawyer or two and ask them.

-- Not legal advice-- If you have evidence that it got scrapped for good, even if it's copyright infringement, they can't claim any damages. They, at best, can DMCA GitHub, but you're VERY unlikely to get sentenced guilty in a trial (in the event of one, which won't ever happen because they know).

Without any patern on the idea, on what the programming does, a program doing the same thing can be done.

On the intellectual property theft, the new program should be as much as different as the other one. Different name, different functions, different var, different language, etc. This is to avoid any possible mismatch between the 2 programs. As long as you don't take the code but rewrite it you should be fine.

Talking to a lawyer is mandatory in this case.

This is one of those things where you have to read your employment contract.

If your main job involves generating intellectual property (code, or research or something else) and you live in the US there's probably a clause saying you can't do this without permission. Otherwise, it's probably fine.

However, if you're in the US, they can still fire you whenever they feel like, so if you think this might seriously piss your company off and you need your job, you might want to ask permission first.

IANAL and you really should ask a lawyer about this. The answer very much depends on your work contract and country of residence (the latter due to the fact that some generic contracts’ statements might be legally unenforceable in specific jurisdictions).

I’ll throw in a random fact: the contract might say that whatever you write as a programmer is still company's property even off the clock and it will be legal in some US states.

If you implement it from fresh then it is a new program. What matters is what your contract says about what you produce - some contracts pay claim to anything you make even outside of working hours.

Also if you rewrite it, while technically it is a fresh project if there are substantial similarities in how you implement it there could be an argument made that you have reused code that belongs to the company. Even if that is technical false it could be something you'd have to defend sometime in the future. As others have said, implementing the program in a different language and using a different methodology wherever possible should help protect against that.

I think the advice others have given that you should review your contract with a lawyer is sound even if this will be FOSS. It's mainly about ensuring you don't inadvertently open yourself to potential legal repercussions down the line, even if your employers at the moment seem benign. If you do work for a company that lays claim to everything you produce even in your off hours then I would strongly recommend you consider leaving or an exit plan, particularly if you are the sort of person who would be working on your own projects for fun or even your own business ventures.

The problem is I learned how to write good code at university and I used what I learned to inform the software architecture. I could write garbage that gets the same job done but isn't maintainable, except for the fact that I want to show this off as a display of my skill. I already did the best I could do on the company clock. If I do the best I can do again, it'll be the same. I can't make significant changes outside of language, variables, and dependencies, because then it wouldn't be as good. The structure I made for the company is simply good design. I don't remember every detail of the structure, but if I tried to rebuild it I'd get the same result. This is a problem with a correct answer.

Walter Bright had a lot of back and forth over the Digital Mars C compiler and Symantec.

Write it down for now so you do not lose the memory if it is so precious to you. Maybe it will be even better the next time coding it. I think many coders have a "loose copy" or a "code gist" of previous versions of their favorites codes around. I never created a code that I framed and hanged on my wall, but some came close. I would not publish it under your real name any time soon. At least not as long as you work in that company +1-2y. If you choose to publish it in the next 6 month under a very different name, in another account, with another repo name, because you love FOSS so much, and it looks different to the original code in format and style (and the presentation of data = frontend), then I see no problem. Just two guys having a similar idea. Not a lawyer though.

Right now there are huge financial interests in the tech sector arguing that anything output from a chat bot is non-copyright protected and non-infringing on the copyright of the training data. So use one of them to get something close to a working idea of the program and then edit that to create your self owned copyright of your program.

If you go this route, bear in mind you also have to prove it came from a chat bot. So don't delete the prompt or output any time soon!

I assume you weren't a contractor, but if you were it depends on whether your contract specifies "work for hire."

Ask your boss.

I would never rely on the opinion of my boss when the question is what my rights are. They're usually not a lawyer and their interests are often contrary to mine.

I mean ask (or more: convince) your boss for permission to make the code publicly available.

It's usually much easier to just ask for what you want before getting lawyers involved.

I've found that getting people to sign a contract is much more difficult than you're making it out to be. A verbal agreement from your boss isn't worth shit later when you'd need it to hold up.

Where did I say verbal?

I'll restate. Getting something in writing isn't easy (and has high potential to involve lawyers). And verbal agreement's aren't worth your time. So your advice isn't the simple thing you're presenting.

Without a non-compete clause, I imagine if you changed it enough you'd be alright.

I personally know someone that has started essentially the same company multiple times, and just keeps selling the companies off. It's different software each time, but it does essentially the same thing.