Company and Developer agree:

Published Form

This is the third edition, first correction of the Switchmode Developer Agreement. See 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 by project.


Company agrees to appoint a Technical Representative by giving Notice of their name, title, and email address before work starts, and to appoint a replacement whenever the current Technical Representative 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 set a rate per hour, Company will pay the first of these hourly rates that can be determined:

  1. the hourly rate in the last Project Summary Company and Developer signed that stated an hourly rate

  2. Developer’s published standard hourly rate

  3. 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 from Developer for the expense. Company agrees to pay Developer all correctly billed expenses of this kind within seven calendar days 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 ends. 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 thirty calendar days of receiving each bill. Company agrees to give Notice of any suspected error on a bill within fourteen calendar days of receiving the bill. If Company does not give notice of an error in that time, Company agrees to pay the billed amount.

Late Payment

Company agrees to pay Developer 1.5% 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.

Cost of Collection

If Company fails to pay any bill on time, Company agrees to pay Developer costs of pursuing payment and collecting that bill, such as attorney fees and costs, that Developer incurs after the deadline for payment.


Developer will deliver work on the Project to Company by sending the Technical Representative copies or Internet addresses from which to download copies.

Intellectual Property

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. For Intellectual Property Rights in Derivatives of Open Software, the terms of the license are the same terms on which the Open Software is licensed to the public. For other Intellectual Property Rights, the terms are those of a Separate Permissive License.

Public 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.

Further Steps

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

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.

Open Releases
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 discrete, 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:

  1. The Technical Representative must discuss each Proposed Release with Developer, as needed, and decide whether each Proposed Release is an Approved Release.

  2. The Technical Representative must send a decision for each Proposed Release, in writing, to Developer within fourteen calendar days.

Approving Open Release Requests

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 automatically 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 Permissive 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 third edition, first correction of the Switchmode Developer Agreement.

Others’ Work

If Developer work Utilizes the work of others who are not Company employees or contractors, and Developer can license or sublicense that work, Developer licenses that work to Company. The terms of the license are the most permissive terms that Developer can give.

Developer Guarantees

Developer guarantees that:

  1. 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.

  2. None of the New Intellectual Property has been involved in any Legal Action.

  3. No one else has claimed any rights in any of the New Intellectual Property.

  4. None of the New Intellectual Property has been assigned or exclusively licensed to anyone else under a different agreement.

  5. 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.

  6. 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.

  7. If any Developer work Utilizes the work of others who are not Company employees or contractors, 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. Otherwise, Developer provides the New Intellectual Property and their work “as is“, without any warranty.

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 whether software is Open Software, and what license terms apply.

Work on Open Releases

Unless Company and Developer agree to a Project covering the work:

  1. 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.

  2. 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.

Limited Damages

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.

Project Term

If the Project Summary describes recurring work, the Project continues until either Developer or Company gives Notice that it end at the end of the next calendar month. Otherwise, the Project ends when Developer delivers Project work under Delivery. 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:

  1. Information Marked Confidential

  2. Business Information

  3. Personal Information

  4. the fact that Company is Developer’s client for work on any Project

  5. information about any Closed Project

  6. information about any Company product or service that Utilizes or motivates any Open Project

  7. information about the Software, services, systems, and other tools that Company uses

Keeping Secrets

With the exceptions in Work with Open Software Communities, unless compelled by a Legal Requirement, Company and Developer agree not to:

  1. disclose each other’s Secrets to anyone

  2. use each other’s Secrets for any purpose but Project work

  3. use or disclose each other’s Secrets in violation of any Legal Requirement

  4. 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:

  1. Developer may only disclose Company Secrets of a technical nature.

  2. 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.

  3. Developer may not disclose Company’s identity, any Information Marked Confidential, or any Personal Information.

  4. Developer may disclose Company Secrets only as needed for effective and efficient collaboration with Open Software developers.

  5. 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.

  6. 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.

Security Precautions

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:

  1. they learn that a Leak has happened

  2. they believe a Leak may happen

  3. they believe a Legal Requirement will force them to disclose Secrets, before making the disclosure, if possible

Confidentiality Clarifications

  1. 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.

  2. This agreement does not require either Company or Developer to disclose any Secrets.

  3. Neither Company nor Developer makes any guarantee that any Secrets they disclose will be complete or reliable.

Court Orders

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.

Agreement Term

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.

Whole Agreement

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:

  1. Developer can assign this agreement, as a whole, to any new business entity that Developer sets up for software contracting or consulting work.

  2. 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.

Unenforceable Terms

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.


  1. Affiliate means a legal entity that has Control over, is under the Control of, or is under common Control with another legal entity.

  2. 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.

  3. 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.

  4. Copyright Derivative means the same as “derivative work” under the United States’ Copyright Act of 1976.

  5. Derivatives means Intellectual Property Rights incorporating, improving, or derived from other Intellectual Property Rights.

  6. Embodiments means documents, computer files, and other records that describe, embody, record, or store the subject matter of New Intellectual Property.

  7. Generic Improvement to Open Source means:

    1. a Copyright Derivative of Open Software

    2. that is suitable for submission as a patch to the Open Software project from which it derives

    3. that does not contain any Derivatives or Embodiments of any Company Secrets

  8. 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.

  9. Intellectual Property Rights means all of these:

    1. copyrights, mask work rights, and moral rights

    2. patent rights

    3. trade secrets

    4. trade names, trademarks, service marks, and rights in trade dress and packaging

    5. database rights

    6. other kinds of exclusive rights that lawyers typically class as “intellectual property rights”

    7. rights in registrations and applications for Intellectual Property Rights.

  10. 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.

  11. Legal Action means any legal action or claim, ignoring the historical distinction between actions “in law” and “in equity”.

  12. Legal Requirement means a requirement of a law, regulation, or order from a court, administrative body, or government institution with legal jurisdiction.

  13. New Intellectual Property means all of these, created by Developer during work on a Project, alone or with Company personnel:

    1. all Intellectual Property Rights that Developer creates as a result of Developer’s work on a Project

    2. Derivatives of New Intellectual Property

    3. Embodiments of New Intellectual Property

  14. 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.

  15. 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.

  16. Open Software means software licensed to the public on the terms of an Open License.

  17. 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.

  18. Information is Publicly Available in all of these situations:

    1. The information became publicly known for some reason other than breach of this agreement.

    2. The party disclosing the information has made the same information available to others without obligations to keep it confidential.

    3. 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.

    4. 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.

  1. Separate Permissive License means the latest version of the The Blue Oak Model License published by Blue Oak Council on, interpreted as an entirely independent legal document, without reference to these terms or the circumstances of Developer and Company’s contractor-client relationship.

  2. 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.

  3. Software Utilizes another work when it explicitly depends on, installs, configures, invokes, or links to the other work, directly or indirectly.


Type Form
Publisher switchmode
Project switchmode
Version Version 3.0.1 (3.0.1)
Published January 12, 2022