Case Introduction: At the end of 2024, an AI infrastructure startup in Hangzhou encountered a problem that kept its founder awake at night. After Mr. Wang, the company’s former chief architect, left and joined a competitor, the founder was shocked to discover while browsing GitHub three months later that Mr. Wang was frequently submitting code to the competitor’s open-source projects in his personal capacity, including a large number of technical solutions that closely overlapped with the database optimization work he had been responsible for at his former company. More disturbingly, a core algorithm code snippet in one of Mr. Wang’s pull requests (PR) was almost identical in logic to the code of the company’s closed-source product.
The founder’s first reaction was “He violated the non-compete agreement,” but when their legal team carefully reviewed the non-compete clause signed with Mr. Wang, they discovered a fatal loophole: the clause only stipulated “may not join a competitor company,” and completely failed to cover indirect code contributions through open-source communities, or participation in a competitor’s technical community in the capacity of an individual developer.
This is not an isolated case. When traditional non-compete clauses collide with the open-source culture and remote collaboration characteristics of the software industry, most companies’ non-compete agreements become mere formalities.
I. The “Failure” of Traditional Non-Compete Clauses in the Software Industry
1.1 Overview of the Legal Framework
Statutory Interpretation: Under Article 23 of the PRC Labor Contract Law, an employer and an employee may agree in a labor contract to maintain the confidentiality of the employer’s trade secrets and intellectual-property-related confidential matters. For an employee subject to confidentiality obligations, the employer may agree on a non-compete clause with the employee in the labor contract or a confidentiality agreement. Under Article 24, the personnel subject to non-compete restrictions are limited to senior management, senior technical personnel, and other personnel subject to confidentiality obligations, and the scope of restriction includes “going to another employer that produces or operates the same type of products or engages in the same type of business in competition with the employer.”
The problem is: the legislative language of Article 24 was born in the industrial age. An “employer” refers to an entity enterprise with an organization code, a business license, and a physical office. It does not cover the act of a programmer submitting code to an open-source project under a personal GitHub account — even if that open-source project is maintained mainly by a competitor, and even if those code contributions directly enhance the competitor’s product competitiveness.
1.2 Three Typical “Gray Areas”
- Open-Source Contributions: After leaving, a programmer submits code to a competitor’s open-source project in his personal capacity. The competitor gains substantial technical contributions, yet no employment relationship exists between the two — the competitor does not pay the departed employee a salary, does not sign a labor contract, and may even label him on GitHub as an “External Contributor.”
- Independent Entrepreneurship: A departed programmer registers his own company to develop a competing product, which is typically already covered by traditional non-compete clauses. But if he participates in a competitor’s project under the name of “technical advisor” or “independent developer” without an employment relationship in legal form, traditional clauses are difficult to enforce.
- Indirect Competition: A departed programmer works for a company that appears non-competitive with his former company, but the project or module he is actually responsible for competes with the former company’s core business. In the diversified businesses of large technology groups, such “business-line competition” is highly concealed.
II. The “Three-Layer Extension” Design of Non-Compete Scope
Faced with the modern characteristics of technical talent mobility, a software company’s non-compete clauses must undergo a “three-layer extension” to form an effective protective net.
2.1 First Layer Extension: A Broad Definition of Competitor Companies
Traditional clauses usually list the names of competitor companies or “any enterprise engaged in XX business.” But this is far from sufficient in the software industry, where new companies keep emerging. We recommend adopting a three-in-one model of “functional definition + list enumeration + dynamic updating”:
- Functional Definition: “Any entity that has a direct or indirect competitive relationship with the company’s existing products, publicly disclosed products under development, or products planned for development as set out in the fundraising plan / Business Plan, including but not limited to its affiliates, subsidiaries, and any enterprise invested in or controlled by the company’s competitors.”
- List Enumeration: List the known competitors at the time of signing in an appendix to the agreement, and stipulate that the company has the right to update the list by written notice each quarter.
- Piercing-Through Clause: Clarify that the scope of competitors extends to the competitor’s outsourced service providers, technical advisors, and open-source project communities (where such community mainly serves the competitor’s products).
2.2 Second Layer Extension: Special Regulation of Independent Entrepreneurship
For independent entrepreneurship, the non-compete clause should specify:
- “Where an employee establishes, invests in, or directly or indirectly controls a competing entity by any other means through himself, a close relative, or a nominee, it shall be deemed a breach of the non-compete obligation.”
- “Providing services or technical support to a competing entity under any name such as advisor, mentor, independent contractor, or technical partner constitutes a prohibited competitive act, regardless of whether an employment relationship is established.”
- Pay special attention to the transition period of “part-time entrepreneurship” — a programmer may have started developing a competing product in his spare time before leaving; at that point the non-compete obligation has not yet begun, but the confidentiality and loyalty obligations are already binding.
2.3 Third Layer Extension: A Clear Definition of Open-Source Contributions
This is the most frontier area of non-compete in the software industry. In practice, we recommend the following clause design:
“During the non-compete period, an employee may not, in any capacity (including but not limited to individual developer, open-source contributor, or technical advisor), submit code, documentation, issues, or PRs to the following open-source projects: (1) open-source projects mainly developed or maintained by the competing entity; (2) open-source projects that have a substitutive competitive relationship with the company’s core products or technology stack; (3) projects where the submitted content bears substantial similarity to the code, algorithms, or architecture that the employee accessed or developed during his employment with the company.”
Statutory Link: The validity of the foregoing extended clauses is grounded in Article 10 of the PRC Anti-Unfair Competition Law concerning trade secret protection. If the code a programmer contributes to a competitor’s open-source project substantially uses the technical secrets obtained from his former company (even if rewritten), it not only constitutes a breach of non-compete obligations but may also constitute an infringement of trade secrets, giving rise to civil liability to cease the infringement and compensate for losses, and potentially criminal liability in serious cases.
III. Tracking GitHub Contributions — Combining Technical Means with Legal Evidence
Discovering a breach is only the first step; proving the breach is the key to legal enforcement. As the world’s largest code hosting platform, GitHub’s public data provides a unique path for evidencing non-compete restrictions.
3.1 The Evidentiary Value of GitHub’s Public Information
The following information on GitHub has significant evidentiary value:
- Contributions: The contribution heatmap and specific commit records on each GitHub user’s page can clearly show which projects he submitted code to, how frequently, and which modules were involved.
- Pull Request: A PR contains complete code changes (diff), which can directly compare the consistency between the code a departed employee wrote at his former company and the code submitted to the competitor’s project.
- Issue/Discussion: A programmer’s discussion of technical solutions in a competitor’s issue section may itself constitute a competitive act.
- Organization Membership: The organization(s) a user is shown to belong to on GitHub (Organization), if it includes the competitor’s open-source organization, this information itself can serve as evidence.
3.2 Key Points in Evidence Preservation
After discovering suspicious GitHub activity, the following legal evidence preservation measures should be taken:
- Notarized Screenshots: Obtain notarized webpage screenshots of contribution records, PR details, and commit history on GitHub. Note that GitHub content can be deleted or modified by the user, so notarization at the first opportunity is crucial.
- Git Log Export: Export and notarize the complete git log of the open-source project to prove the author, timestamp, and content of specific commits.
- Technical Comparison Analysis Report: Engage an independent technical appraisal institution to issue a code similarity analysis report, comparing the code output of the departed employee at his former company with his contributions to the competitor’s open-source project.
- Timeline Reconstruction: Build a complete timeline proving: access to trade secrets -> departure -> appearance in the competitor’s project -> the code content bears substantial similarity to the company’s code.
3.3 Difficulties and Breakthroughs in Practice
The biggest challenge facing GitHub evidence is “identity equivalence” — how do you prove that the GitHub account belongs to the departed employee himself? In practice, breakthroughs can be made from the following angles:
- Whether the personal email associated with the account matches the employee’s company email (many programmers use the same email)
- Whether the submission times match the employee’s work/life time patterns
- Personal traits such as coding style, commenting habits, and variable naming conventions
- The GitHub account(s) the employee used at the company (disclosure may be required in the agreement upon joining)
We recommend requiring employees to disclose all their active GitHub / technical community accounts upon joining, and writing this obligation into the labor contract or intellectual property agreement.
IV. Non-Compete Compensation — The Art of Agreement
A non-compete restriction is not a “free lunch.” While restricting an employee’s freedom to choose employment, the company must pay reasonable economic compensation.
4.1 The Legal Floor for Compensation Standards
Practical Point: Under Article 36 of the Supreme People’s Court’s Interpretation (I) on Several Issues Concerning the Application of Law in the Trial of Labor Dispute Cases, where the parties have agreed on non-compete restrictions in a labor contract or confidentiality agreement but have not agreed to give the employee economic compensation after the rescission or termination of the labor contract, if the employee has performed the non-compete obligations, the people’s court shall support the claim, and the compensation standard is “30% of the average monthly wage for the twelve months prior to the rescission or termination of the labor contract.” However, where this standard is lower than the local minimum wage standard, payment shall be made at the local minimum wage standard.
For highly paid programmers in the software industry, although the “30%” standard is lawful, it is on the low side in practice — for a senior engineer with an annual salary of RMB 800,000, the monthly compensation at 30% is only RMB 20,000, far from sufficient to restrain his competitive conduct. We recommend agreeing on a higher compensation ratio (e.g., 50%-70%) for core technical personnel, to ensure the non-compete clause is recognized as “reasonable” in judicial review.
4.2 A Linkage Mechanism for Additional Incentives
In addition to the monthly compensation, an additional incentive mechanism may be designed:
- ESOP Acceleration: If no breach occurs by the end of the non-compete period, the exercise period of vested options may be extended by an additional 12 months.
- Loyalty Bonus: Upon expiry of the non-compete period, a one-time “loyalty bonus” (e.g., 3-6 months’ salary) is paid as consideration for full performance.
- Full Recovery upon Breach: Clearly agree that upon any breach of non-compete obligations, the employee must not only pay liquidated damages as agreed but also return all compensation and additional incentives already received during the non-compete period.
V. Protection of Customer Resources — The Hidden Battlefield of Non-Compete
Customer protection in the software industry faces two unique challenges:
- The “Trade Secret” Characterization of Customer Lists: If customer information (including contacts, preference needs, contract prices, etc.) is obtainable through public channels (such as tender announcements), the court may not recognize it as a trade secret. A software company should manage its customer database with encryption, set access permissions, and explicitly state in the confidentiality agreement signed with employees that customer information falls within the scope of confidentiality.
- Design of “Non-Solicitation” Clauses: A non-compete clause prevents “joining a competitor,” whereas a non-solicitation clause prevents “taking away customers.” The two differ in legal nature and should be agreed separately. A typical non-solicitation clause: “During the non-compete period, the employee may not, directly or indirectly, contact, approach, or provide services to any company customer, prospective customer, or business partner that he contacted, learned of, or was responsible for within 12 months of his tenure with the company.”
VI. Risk Warnings
- Risk of Overly Broad Non-Compete Scope: If the industry scope of the non-compete is defined too broadly and vaguely (e.g., “all technology industries”), it is highly likely to be deemed invalid in judicial review. It must be defined within a reasonable, specific scope related to the company’s actual business.
- Risk of Non-Payment of Compensation for Three Months: Under the judicial interpretation, if the non-compete compensation is not paid for three months after the labor contract is rescinded, the employee has the right to request rescission of the non-compete agreement. The company must establish a compensation payment ledger and an automatic reminder mechanism.
- Risk of “Company-Wide Non-Compete”: Imposing non-compete obligations on positions such as cleaning and administration that do not access trade secrets will be deemed invalid by the court. The subjects of non-compete must be personnel who actually access trade secrets or core technology.
- Risk of GitHub Evidence Being Challenged: Relying solely on webpage screenshots may be challenged for authenticity in court (the possibility of Photoshop). Evidence must be fixed through a notary office or a third-party electronic evidence preservation platform (such as timestamp or blockchain evidence preservation).
- Risk of Excessive Non-Compete Period: Article 24 of the Labor Contract Law provides that the non-compete period may not exceed two years. The excess is invalid — no need to wait for a judicial ruling; the over-term clause is void ab initio.
VII. Recommended Actions
- Re-review Non-Compete Clauses: Immediately review the non-compete clauses signed with core technical personnel and supplement the extended definitions of “open-source contributions” and “independent entrepreneurship” to ensure coverage of the three-layer extension elements.
- Establish a Technical Community Monitoring Mechanism: Assign legal or designated personnel to regularly monitor the public activities of departed core technical personnel on GitHub, Gitee, technical blogs, etc., as a routine measure for non-compete compliance.
- Disclose All Accounts upon Joining: Add a clause to the labor contract or intellectual property agreement requiring employees to disclose all their active GitHub / Gitee / Stack Overflow and other technical community accounts, and to undertake not to indirectly participate in competitors’ technical contributions through any account after leaving.
- Improve Compensation Management: Establish an automatic payment system for non-compete compensation to ensure full and timely monthly payment after departure, and retain bank transfer vouchers as evidence of performance.
- Rationalize the Liquidated Damages Design: The liquidated damages should not be set too high (the court may reduce them) nor too low (losing deterrent effect). In practice, it is recommended to set a combined model of “1-3 times the employee’s total annual income + return of all paid compensation + compensation for actual losses,” and to provide a reasonable basis for calculation.
Disclaimer
This article is for general reference only and does not constitute legal opinion or advice. For specific legal issues, please consult a professional lawyer. The cases in this article are adapted from real events, and the company names and details involved have been anonymized.
Lawyer Kevin Jun Lin
Senior Corporate Lawyer – Industry Legal Practice Expert
💬 Feel free to share your views and reasons in the comments section
About the Zhenpin Lawyer Team
Lawyer Kevin Jun Lin – Today’s Author
Currently a doctoral candidate in civil and commercial law at China University of Political Science and Law. Combining deep theoretical knowledge of company law with extensive practical experience, he specializes in company law, equity disputes, corporate compliance system building, data compliance, and product quality disputes.
Lawyer Yan: Founder of the law firm, with decades of frontline legal experience and practical expertise across the courts, supervision, judicial, and corporate dimensions.
Lawyer Lin Bing: 27 years in practice, with a dual background in law and finance, having handled over 2,000 litigation and non-litigation matters.
📞 Tel: 0755-82222148
📱 Mobile: 18938871445 (v) 18938871445 (v)
📧 Email: 1160727593@qq.com
🌐 Website: www.zhenpinlaw.com
📍 Address: 40F, Room 4004, Building B, Shenfang Plaza, Renmin South Road, Luohu District, Shenzhen
Further Reading
If you need professional support in shareholders’ agreements, investment term review, or equity disputes, please contact Lawyer Kevin Jun Lin (Shenzhen Corporate Lawyer) for one-on-one consultation.







Leave a Reply