If I wrote code for a personal project, and use some of it in a program at my company, can they now sue me for using the code in my personal project? Let's say I developed a web app for a personal endeavour of mine. Soon after, I get a job with a tech company, and my first task is to develop a web app for them. Well, it turns out the functionality of this new company web app is similar to my personal web app, and so I use some of the code from my personal web app in the company's web app. Can the company now sue me or take other legal action if I continue developing my personal web app? If so, how can I put a &quot;license&quot; in my code to protect my intellectual property (since I wrote the code BEFORE I even took the job)? For the programmers out there, the code language is JavaScript and CSS.
In the US, code that you write in the course of employment is the property of your employer. Otherwise, anything that you create is your property. The gray area is things that you write during your employment but not in the course of your employment (hence the terms of the employment contract are vital). Something that you write before becoming an employee is not &quot;in the course of employment&quot;. However, if you use that code in the in the course of employment, you invite the argument that in fact the code was written in the course of employment. That argument can be squelched if you have an agreement with the employer that acknowledges that you are licensing your code to the employer in exchange for ... some consideration. It could be $1, or a similar unit of currency.
You cannot use a patented invention without permission A patent gives the owner exclusive rights to use it: not just profit from it. The only way you can use their patent is by licensing it. You cannot make any version of the software that uses the patented method, free or otherwise. Technically, the software you have now is infringing even if you never release it. If you had published your work before they filed for the patent, you can seek to have their patent invalidated due to the existence of prior art. If you had been using it privately prior to this some jurisdictions will allow you to keep using it privately.
If you use the reviewer's code, or code derived from it (e.g. if you just changed a variable name) then they own the copyright on that part of the software. If the reviewer describes a solution which you implement, or if you re-implement the code from scratch while taking ideas and methods from the reviewer's code, then you own the copyright on that code. However if there are only a few ways to implement something in code then the code is not creative and hence cannot be copyrighted. For example the regular expression in the question you link to is (as far as I can tell) the only correct solution to the problem: any programmer addressing the problem will have come up with that RE. In this the position is akin to a database of phone numbers: while the collection may be copyright (depending on whether selection or arrangement required creativity), the fact that Alice Jones has the number 012345 is not copyrightable, and neither is the alphabetical arrangement of names. Where it gets messy is the boundary between the two. The requirement to detect 4 or more repeated digits in a credit card number could be implemented in a number of ways, but whether there are enough of these to qualify any particular solution as "creative" would be a matter of fact for a court to decide.
No, you can't The last paragraph of the MIT License explicitly says the author is not responsible for damages (emphasis mine): THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. A software license is not a contract. You didn't enter a contract with the developer or team. You found software online and decided to use the software. When you install paid software you are almost always presented with the EULA and check-box saying you agree to it. You took an action and agreed to the EULA. You didn’t have to agree to anything before getting access to the code under the MIT license. The software is offered &quot;as-is&quot; which is further protects the author. You'd have to show the author convinced you to use the software fraudulently. You're unlikely to talk to the author at all, and since the entire source code is available for review, it would be very difficult if not impossible to claim fraud. Finally, in the U.S. people have been sued using the Computer Fraud and Abuse Act. None of the notable cases involve embedding a virus in an open-source project. Of interest is how the CFAA defines a virus (emphasis mine) (A) knowingly causes the transmission of a program, information, code, or command, and as a result of such conduct, intentionally causes damage without authorization, to a protected computer; Simply writing bad code wouldn't be enough. You'd have to prove the developer acted maliciously. Hobbyists working for free don't usually have much money. The other major contributors to open source are large companies like IBM and Google, which have lawyers on retainer and deal with frivolous lawsuits frequently.
Yes, it does. Using the downloaded content, whether it was scraped or individually downloaded one file at a time, for research or for commercial purposes would violate that TOS provision (unless some other provision contradicts it, or you obtain specific permission). The site owner could sue you for such a violation, should the owner become aware of it. I do not think it would be likely to be a criminal offense, depending on the jurisdiction.
Whether this is considered a trade secret (at least in the US) depends partly on whether you've taken reasonable action to keep it secret. If an employee thought it was OK to publish the algorithm, that's evidence that you didn't try very hard to keep it from getting out. Even if nobody's noticed it yet, getting the blog post taken down in't going to get it off the internet. You may as well try to do it anyway. If nobody has noticed the algorithm by now, you want to make it harder for them to find. You need an IP lawyer pronto. Depending on where you are, you might be able to get a patent on the algorithm still, but patents are hard to enforce, and it appears to be getting harder in the US to patent algorithms. (There's a Stack Exchange site so people can look at patent applications and see if they can invalidate the application with prior art.) You can't license out the algorithm without having some legal way of stopping other places from just using it. If you have more proprietary algorithms or things that aren't generally known that give you a competitive advantage, it would be a good idea to inform employees that they aren't supposed to reveal them. Check with your IP lawyer to see what you should do.
As Greendrake says, you can legally create your &quot;open source&quot; license. There are two problems with this: Since you are not an experienced contract lawyer, there is a significant risk that your license doesn't do what you intend it to do. As a consequence, people who you want to use your software might not do so, because your license prevents it or makes it too risky. Or people may use your software in ways that you didn't want to allow, because the text of your license doesn't prevent it. Your license terms may be incompatible with other open source licenses. For example, I might want to use GPL licensed software A, and your software B with your license in my application. Being careful, I give both licenses to my lawyer, and the lawyer says, &quot;sorry, you cannot possibly follow the terms of both licenses, because GPL and Ky's license require that you do two contradictory things. You can use software A and follow GPL's terms, or you can use software B and follow Ky's license terms, but you can't use both&quot;. All in all I would recommend that you use a widely used open source license.
As the owner of your own computer, you can dispose of it however you see fit (as long as your choice is legal). The courts could, theoretically, force you do do something with your computer, but installing software is not one of the things that the courts are empowered to force you to do. (Mostly, they can force you to turn it over for a search). A company can't force you to do anything with your property: only the courts can order the use of force. But there is no legal basis for the courts to grant a company's request for an order to install software. A company can perhaps persuade you to install software on your personal computer, in exchange for keeping your employment. I assume you are familiar with the law regarding firing people. If you do not perform your job, you might be terminated for cause. You could hire an attorney and sue for wrongful dismissal, and it's not obvious that you have a valid reason for non-performance. So I would suggest consulting a Canadian employment attorney before sticking your neck too far out.