Company and Developer agree:
This is the second edition of the Switchmode Developer Agreement. See https://github.com/switchmode for license terms and other information.
Open software developers and companies approach intellectual property, confidentiality, and other legal matters differently. The expectations of their user and customer communities differ, too. The purpose of this agreement is to enable Developer to bridge the gap and do paid work for Company without creating issues either for Company or for Open Software Developer contributes to. This agreement achieves that purpose with intellectual property, confidentiality, and other terms that vary, depending on which expectations apply to specific work.
Company agrees to appoint a Technical Representative by giving Notice of their name, title, and email address before work starts. Company agrees to appoint a replacement Technical Representative if the current one leaves or becomes unavailable. If Company or any Affiliate has technical staff, the Technical Representative must be a member of the technical staff.
The terms of this agreement apply to each Project that Company and Developer write up and cosign in a Project Summary. Each Project Summary must refer to this agreement, say that it's a Project Summary, and set out what Developer agrees to do for Company and what Company agrees to pay Developer for the work.
Open and Closed
Some terms of this agreement apply to a Project depending on whether the Project Summary calls it an Open Project or a Closed Project. If a Project Summary does not say, the Project is an Open Project.
Default Project Terms
All of these terms apply to each Project, unless its Project Summary says otherwise:
Company agrees to pay Developer fees for Project work on an hourly basis, in fairly rounded, quarter-hour increments. If the Project Summary doesn't state a rate per hour, Company will pay the first of these hourly rates that can be determined:
the hourly rate in the last Project Summary Company and Developer signed that stated an hourly rate
Developer's published standard hourly rate
Developer and the Technical Representative's joint estimate of the going hourly rate for a developer of similar skill and experience where Developer lives
Company agrees to reimburse Developer for Project expenses listed in the Project Summary, expenses that the Technical Representative preapproves in writing, and travel and accommodation expenses for trips that Company requests and Developer agrees to make. On Notice of an expense that will likely cost more than Project fees in the same month, Company agrees to pay the expense directly, on Developer's behalf, or to request and pay a separate bill for the expense. Company agrees to pay Developer all correctly billed expenses of this kind within of receiving each bill.
Developer agrees to send Company a bill at the end of each calendar month for fees calculated on an hourly basis. For fees calculated on any other basis, Developer agrees to send Company a bill on the schedule in the Project Summary, or if there isn't any, when the Project is done. Developer agrees to submit bills via any processing system that Company specifies by advance Notice. Company waives any legal terms that its choice of processing system tries to impose, and agrees to reimburse Developer any costs of using its system.
Company agrees to pay Developer all correctly billed amounts within of receiving each bill. Company agrees to give Notice of any suspected error on a bill within of receiving the bill. If Company does not give notice of an error in that time, Company agrees to pay the billed amount.
Company agrees to pay Developer interest on late bill payments, compounded monthly. If the law sets a lower maximum rate of late-payment interest, Company agrees to pay that rate of interest instead. If Company fails to pay any bill on time, Developer may give Notice and stop any or all work under this agreement until all bills due are paid and all suspected errors are addressed. Stopping work in this way postpones all deadlines under each Project for as long as work stops. Retainer and other recurring fees continue to add up.
Developer will deliver work on the Project to Company by sending e-mailing the Technical Representative a copy, or an Internet address from which to download a copy.
Open Project IP Terms
For an Open Project:
Developer Retains IP
Developer retains all Intellectual Property Rights in New Intellectual Property.
License to Company
On Company's full payment of each Developer bill for the Project, Developer licenses New Intellectual Property created during work charged on that bill to Company. Developer licenses Intellectual Property Rights in Derivatives of Open Software by means of the contributor license agreement or developer certificate used for contributions to the Open Software project as a matter of public project policy, if any, and otherwise on the same license terms on which the Open Software is licensed to the public. For other Intellectual Property Rights, the terms are those of a Separate Apache License.
Developer agrees that if Developer makes New Intellectual Property available to the public, Developer will do so under the same terms that Developer licenses it to the Company under License to Company.
Closed Project IP Terms
For a Closed Project:
Developer Assigns IP
Company and Developer agree that New Intellectual Property will be "work made for hire" under copyright law, to the extent legally possible. On Company's full payment of each Developer bill for the Project, Developer assigns New Intellectual Property created during work charged on that bill that cannot be "work made for hire" to the Company. Among the rights assigned are:
ownership of the New Intellectual Property
all rights to take Legal Action for Infringement of the New Intellectual Property
all rights to seek legal remedies for Infringement of the New Intellectual Property, such as money damages, injunctions, and other "equitable remedies", as well as any other compensation, benefits, or procedural privileges a court might award
all other rights Developer has in the New Intellectual Property
Developer agrees to do everything necessary to paper assignments in Developer Assigns IP, make them legally effective, and help Company enforce the rights assigned. Company agrees to give Notice of any further steps required, to provide all necessary documentation, and to reimburse Developer for reasonable out-of-pocket expenses.
Company Can Act on Developer's Behalf
What Company May Do
Company may take action under Further Steps on Developer's behalf if Company can't find Developer, if Developer isn't capable of doing so, or if Developer refuses to do so.
In legal terms of art, Company and Developer intend What Company May Do to appoint Company as Developer's "attorney in fact with full right of substitution" to act on Developer's behalf under Further Steps.
Requesting Open Releases
No more than once per calendar quarter for a recurring Project, or once within thirty calendar days after the Project ends for any other Project, Developer may send a written Open Release Request to the Technical Representative. Each Open Release Request must identify at least one Proposed Release, a discreet, reusable Software component of New Intellectual Property that Developer proposes to publish as Open Software. The Open Release Request must note when a Proposed Release is a Generic Improvement to Open Source.
Responding to Open Release Requests
Company agrees to task the Technical Representative to respond to each Open Release Request:
The Technical Representative must discuss each Proposed Release with Developer, as needed, and decide whether each Proposed Release is an Approved Release.
The Technical Representative must send a decision for each Proposed Release, in writing, to Developer within fourteen calendar days.
Approving Open Release Request
If the Technical Representative fails to send a decision in time for a Proposed Release that is a Generic Improvement to Open Source and was noted as a Generic Improvement to Open Source in the Open Release Request, that Proposed Release becomes an Approved Release. Otherwise, a Proposed Release becomes an Approved Release only if the Technical Representative confirms that decision in writing.
License to Release
Company licenses New Intellectual Property in each Approved Release to Developer. The license permits Developer to sublicense the Approved Release to the public. For an Approved Release that is a Copyright Derivative of Open Software, the terms of the public license must be the same terms on which the Open Software is currently licensed to the public. Otherwise, the terms of the public license must be a Separate Apache License. In either case, unless an executive officer gives Notice of permission to attribute the Approved Release to the Company by name, Developer must replace the standard copyright notice with a statement that Developer sublicenses under the second edition of the Switchmode Developer Agreement.
Developer guarantees that:
Developer has all legal rights needed to license the New Intellectual Property, if the Project is an Open Project, or to assign the New Intellectual Property, if the Project is a Closed Project.
None of the New Intellectual Property has been involved in any Legal Action.
No one else has claimed any rights in any of the New Intellectual Property.
None of the New Intellectual Property has been assigned or exclusively licensed to anyone else under a different agreement.
No one else has any lien on or other right to any of the New Intellectual Property that will interfere with or limit the rights Company receives.
No employer, client, educational institution, or other organization Developer has been affiliated with has any right to claim ownership of any of the New Intellectual Property.
If any Developer work Utilizes others' Software, data, or other kinds of work, either the Project Summary or the Technical Representative specifically approved that work, or it is Open Software.
Developer makes only the guarantees in Developer Guarantees about New Intellectual Property. Otherwise, Developer provides the New Intellectual Property without any warranty of merchantability, of fitness for a particular purpose, or of any other kind.
Open Source Guidelines
If Company gives Notice of specific Open Software or kinds of Open License that Company permits or prohibits, Developer agrees to follow those guidelines in selecting Open Software that New Intellectual Property for any later Project Utilizes. Company agrees that Developer can rely on LICENSE, COPYING, and similar files, as well as copyright notices, header comments, and package metadata, to determine what license terms apply.
Work on Open Releases
Unless Company and Developer agree to a Project covering the work:
Company does not agree to pay Developer for any extra work to prepare any Approved Release, or any New Intellectual Property created during work on any Open Project, for publication as Open Software.
Developer does not agree to maintain, provide support for, ensure the availability of, or provide any other kind of service for any New Intellectual Property published as Open Software.
If Company takes Legal Action against Developer related to the New Intellectual Property, under contract law, tort law, or any other kind of law, the Company's damages from Developer will be capped at the amount of fees Company actually paid Developer for the Project.
Company and Developer can change any of the terms of a Project Summary by writing out and cosigning an amendment to the Project Summary. Developer and the Technical Representative can change Project Summary terms about the scope of work that Developer will do, and technical standards for that work, by agreeing to changes in writing.
If the Project Summary describes recurring work, the Project continues until either Developer or Company gives Notice that it will stop at the end of the next calendar month. Otherwise, the Project ends when Developer finishes work. Company and Developer can agree to end a Project early at any time.
The confidentiality obligations of these terms apply to the Secrets that the parties share with one another. Secrets include these kinds of information, when not otherwise Publicly Available:
Information Marked Confidential
the fact that Company is Developer's client for work on any Project
information about any Closed Project
information about any Company product or service that Utilizes or motivates any Open Project
information about the Software, services, systems, and other tools that Company uses
With the exceptions in Work with Open Software Communities, unless compelled by a Legal Requirement, Company and Developer agree not to:
disclose each other's Secrets to anyone
use each other's Secrets for any purpose but Project work
use or disclose each other's Secrets in violation of any Legal Requirement
help others disclose or use each other's Secrets in these ways
Work with Open Software Communities
Publishing Open Software
Developer may publish the Software of any Approved Release or Open Project as Open Software, as long as Developer removes all other Company Secrets before publishing.
Collaborating with Open Software Developers
In specific circumstances, Developer may disclose Company Secrets to developers of Open Software:
Developer may only disclose Company Secrets of a technical nature.
Developer may not disclose Company Secrets, even of a technical nature, that would prevent or destroy intellectual property protection, such as trade secrets or rights to apply for patents, or that would afford Company competitors any significant advantage over Company in any line of business.
Developer may not disclose Company's identity, any Information Marked Confidential, or any Personal Information.
Developer may disclose Company Secrets only as needed for effective and efficient collaboration with Open Software developers.
Developer may disclose Company Secrets only to receive technical support for, report a possible bug in, or to propose or discuss changes to, Open Software. The Open Software must be Software that a Project Utilizes or potentially Utilizes, or Open Software used or potentially used to operate or develop Project Software.
Developer may disclose Company Secrets by private message to an Open Software developer, or by message to a public mailing list, bug tracking system, or revision control system.
Technical Representative Guidance
Company agrees that Developer can rely on written messages from the Technical Representative that disclosing specific information, or sending a specific message, will be allowed under Collaborating with Open Software Developers.
Copies, Changes, and Disposal
Company and Developer agree to provide copies of, update, or dispose of all copies of materials containing each other's Secrets that they have, on written request.
Company and Developer agree to take security precautions to keep each other's Secrets confidential. Company and Developer agree that on Notice of new security requirements, they will either implement the new security requirements or destroy copies of materials containing Secrets covered by the new requirements they will not implement.
Leaks and Disclosures
Company and Developer agree to give immediate Notice summarizing what Secrets may be affected, who may receive Secrets, and any relevant Legal Requirement whenever:
they learn that a Leak has happened
they believe a Leak may happen
they believe a Legal Requirement will force them to disclose Secrets, before making the disclosure, if possible
This agreement does not give either Company or Developer any legal rights in the other's Secrets, except the permission needed to review and use disclosed Secrets for Project work.
This agreement does not require either Company or Developer to disclose any Secrets.
Neither Company nor Developer makes any guarantee that any Secrets they disclose will be complete or reliable.
Money alone would not fully compensate either Company or Developer for the damage caused by a breach of obligations in Confidentiality. Company and Developer agree that in addition to other legal remedies, they may request court orders not to breach those obligations, to stop breaching those obligations, or both, without posting any bond.
This agreement will continue until one year has passed since there was any ongoing Project. However, both Company and Developer can end this agreement early by giving Notice when there is no ongoing Project. Obligations in Confidentiality will continue for five calendar years after this agreement ends.
Kind of Working Relationship
No matter what any Project Summary says, Company and Developer intend for Developer to decide when, where, and how to do Project work, with the discretion of an independent contractor, rather than as an employee. Developer agrees that Developer will not receive any employee benefits.
Both Company and Developer agree to do their respective parts for tax compliance concerning fees and expenses paid to Developer as an independent contractor under this agreement.
General Contract Terms
The law of the state where Company's headquarters are located governs all rights and duties under this agreement.
Company and Developer agree to take Legal Action related to this agreement only in the federal or state courts nearest Company's headquarters, and to pay the other's attorney fees and costs if they lose in court.
This agreement and each Project Summary list all the terms that Company and Developer intend to apply to Project work.
With two exceptions, neither Company nor Developer can assign any right under this agreement without Notice of the other's permission. Any attempt to assign has no legal effect. The exceptions are:
Developer can assign this agreement, as a whole, to any new business entity that Developer sets up for software contracting or consulting work.
Company can assign this agreement, as a whole, to another business entity that acquires its stock or substantially all its assets, or to a new business entity set up to change Company's legal form or jurisdiction.
If Developer assigns this agreement under Assignment, the entity Developer assigns to may delegate its obligations to Developer. Otherwise, neither Company nor Developer can delegate any duty under this agreement. Any attempt to delegate has no legal effect.
If a court decides that any part of this agreement cannot be enforced, for any reason, the rest of this agreement will continue to apply, so long as that wouldn't defeat the purpose of this agreement in Purpose.
Company and Developer can sign this agreement and any Project Summary however they like, so long as it creates a written record, accessible to both parties, that shows they agreed.
Affiliate means a legal entity that has Control over, is under the Control of, or is under common Control with another legal entity.
Business Information means information that is not Publicly Available about how and with whom a party or any Affiliate has done, does, or plans to do business. Information about these terms and Developer's compensation is Business Information. Information about customers, suppliers, employees, consultants, professional service providers, officers, directors, advisers, employees, and contractors is Business Information. Information about transactions, prices, costs, market share, strategy, and financial performance is Business Information.
Control means ownership of substantially all the assets of a legal entity or the power to direct management and policies of a legal entity, such as by vote or by contract. Control can be direct or indirect.
Copyright Derivative means the same as "derivative work" under the United States' Copyright Act of 1976.
Derivatives means Intellectual Property Rights incorporating, improving, or derived from other Intellectual Property Rights.
Embodiments means documents, computer files, and other records that describe, embody, record, or store the subject matter of New Intellectual Property.
Generic Improvement to Open Source means:
a Copyright Derivative of Open Software
that is suitable for submission as a patch to the Open Software project from which it derives
that does not contain any Derivatives or Embodiments of any Company Secrets
Information Marked Confidential means information that is not Publicly Available that is disclosed in materials marked or identified in writing as "Secret", "Confidential", "Proprietary", or similar.
Infringement means infringement of Intellectual Property Rights, before or after the date of this agreement.
Intellectual Property Rights means all of these:
copyrights, mask work rights, and moral rights
trade names, trademarks, service marks, and rights in trade dress and packaging
other kinds of exclusive rights that lawyers typically class as "intellectual property rights"
rights in registrations and applications for Intellectual Property Rights.
Leak means unauthorized disclosure or loss of Secrets from or by a party or any other person a party suspects has obligations to keep the Secrets confidential. A Leak is a Leak whether caused by accident or due to an intentional security breach.
Legal Action means any legal action or claim, ignoring the historical distinction between actions "in law" and "in equity".
Legal Requirement means a requirement of a law, regulation, or order from a court, administrative body, or government institution with legal jurisdiction.
New Intellectual Property means all of these, created by Developer during work on a Project, alone or with Company personnel:
all Intellectual Property Rights that Developer creates as a result of Developer's work on a Project
Derivatives of New Intellectual Property
Embodiments of New Intellectual Property
Notice means an email from one party to the other, delivered to the address provided with their signature, or to another address they specify by Notice after signing.
Open License means a form public license approved by the Open Source Initiative as an open source license, or the Creative Commons CC0 1.0 Universal form license.
Open Software means software licensed to the public on the terms of an Open License.
Personal Information means all information subject to laws governing collection, storage, use, transfer, and processing of data about individuals, or implicating personal privacy, broadly understood, about individuals who interact with a party, its products, or its services. Personal Information is Personal Information no matter how it is stored and whether or not it is attributable to specific individuals by name or other identifier, aggregated, or anonymized.
Information is Publicly Available in all of these situations:
The information became publicly known for some reason other than breach of this agreement.
The party disclosing the information has made the same information available to others without obligations to keep it confidential.
The party receiving the information received the same information from someone else before, and did not know then that the person providing the information was breaking a confidentiality obligation to the other party. The party receiving the information must show this is the case with documents created before it disclosed the information.
The party receiving the information developed the same information, without any help from the party disclosing the information or using any of its Secrets, before receiving it from the other party. The party receiving the information must show this is the case with documents created when it independently developed the information.
Information is not Publicly Available just because it synthesizes other information that is Publicly Available.
Separate Apache License means The Apache License, Version 2.0, in the form standardized by Software Package Data eXchange with the identifier "Apache-2.0", interpreted as an entirely independent legal document, without reference to these terms or the circumstances of Developer and Company's contractor-client relationship.
Software means computer code and software configuration, whether in source, script, or compiled form, for any software or hardware platform, and stored in any format.
Software Utilizes another work when it explicitly depends on, installs, configures, invokes, or links to the other work, directly or indirectly.