Source: ZDNet (October 2019)
Background: The ICE Contract Controversy
In October 2019, GitHub CEO Nat Friedman published a public defense of the company’s decision to renew its contract with US Immigration and Customs Enforcement (ICE). The move came after a group of GitHub employees — internally known as “Hubbers” — published an open letter in the Washington Post demanding that the Microsoft-owned platform cancel its ICE contract “no matter the cost.”
The employee letter was a direct response to an internal email Friedman had sent explaining why GitHub would not terminate its relationship with ICE. The contract in question involved a license for GitHub Enterprise Server, the on-premise version of GitHub’s platform, which ICE had purchased in April 2016 through a reseller.
The Scale and Nature of the Contract
Friedman noted in his published email that the revenue generated by the ICE contract was less than $200,000 — an amount he characterized as not financially material to GitHub. He also emphasized that GitHub did not have a professional services agreement with ICE and had, in his words, “no visibility into how this software is being used.”
This distinction — between providing a self-hosted software license and providing consulting or professional services — became central to Friedman’s defense. He compared the GitHub Enterprise Server license to a Microsoft Office Word license, arguing that just as Microsoft does not demand to know what customers write with Word, GitHub should not be expected to dictate how developers use its tools.
“Just as Microsoft for more than three decades has licensed Microsoft Word without demanding to know what customers use it to write, we believe it would be wrong for GitHub to demand that software developers tell us what they are using our tools to do.”
— Nat Friedman, GitHub CEO
Friedman’s Core Arguments
Friedman’s defense rested on several distinct points:
- ICE’s dual mandate: While acknowledging that ICE was responsible for immigration enforcement policies GitHub disagreed with, Friedman argued the agency also performs functions considered beneficial to society, such as combating human trafficking. Cancelling the contract could affect those operations too.
- Limited visibility: Because the product was an on-premise server license rather than a cloud service with active monitoring, GitHub had no insight into which specific projects or workflows were using the software.
- Democratic advocacy over service denial: Friedman argued that the right approach for a company to influence public policy is through corporate advocacy — lobbying and leveraging “the vast resources of Microsoft” — rather than cutting off technology services to government customers whose policies a company disagrees with.
- Personal values on record: He pointed to Microsoft CEO Satya Nadella’s 2018 LinkedIn post in which Nadella stated he was appalled by the Trump administration’s policy of separating migrant children from their parents at the US-Mexico border.
“As a matter of principle, we believe the appropriate way to advocate for our values in a democracy is to use our corporate voice, and not to unplug technology services when government customers use them to do things to which we object.”
— Nat Friedman, GitHub CEO
GitHub’s Commitments in Response
In an attempt to address employee concerns while maintaining the contract, Friedman made several pledges:
- Publicly advocate against the Trump administration’s immigration policies, which he described as “terrible.”
- Donate $500,000 to nonprofits supporting immigrant communities.
- Support employees who wished to volunteer time toward organizations advocating for more humane immigration policies.
Employees who signed the open letter were not satisfied with these commitments. In their Washington Post letter, they wrote: “We cannot offset human lives with money. There is no donation that can offset the harm that ICE is perpetrating with the help of our labor.”
A Broader Pattern of Tech Worker Protest
The GitHub controversy was not an isolated incident. It was part of a broader wave of tech worker activism over government contracts that accelerated in 2018–2019:
- Google: In August 2019, Google employees protested their employer’s bid for an ICE contract.
- Chef Software: A developer publicly pulled his open-source code from GitHub and RubyGems after discovering that Chef was using it as part of an ICE contract. The incident highlighted the challenges of dual-use open-source software in government procurement.
- GitHub trade sanctions: Separately, GitHub had come under scrutiny in July 2019 for blocking developer accounts in countries under US trade sanctions, including Iran, Cuba, and the Crimea region. Microsoft’s legal team was reported at the time to be working with US regulators to restore access for developers worldwide.
In each case, the tension centered on the same fundamental question: at what point does supplying general-purpose developer tools to a government agency make a technology company complicit in that agency’s enforcement actions?
The Software License vs. Services Distinction
One of Friedman’s most technically specific arguments concerned the difference between a software license and a professional services engagement. GitHub Enterprise Server is a self-hosted product — the customer installs and operates it on their own infrastructure. GitHub has no ongoing access to data, workflows, or configurations once the software is deployed on-premise.
This is meaningfully different from a cloud-based SaaS arrangement where a vendor can monitor usage, enforce terms of service in real time, and terminate access remotely. It also differs from a consulting engagement in which company employees are actively involved in a customer’s operations.
Critics of this argument countered that the distinction, while legally and technically real, does not eliminate moral responsibility for how a vendor’s tools are used — particularly when the customer’s enforcement activities are publicly documented.
Key Takeaway for DevOps and Engineering Teams
The GitHub–ICE dispute raised questions that remain relevant for engineering and DevOps teams working in or evaluating government contracts:
- How should software vendors and open-source maintainers think about the downstream use of their tools?
- Does an on-premise license carry different ethical weight than a managed cloud service?
- What mechanisms — code of conduct clauses, acceptable use policies, licensing restrictions — can developers use to limit or prohibit certain uses of their software?
- How should engineering organizations handle internal employee dissent over corporate customers and contracts?
These are not merely political questions — they have direct implications for open-source licensing strategy, enterprise contract terms, and the governance of developer platforms at scale.