Open source software underpins much of Uber’s technology stack. Our teams also actively contribute to and develop software in the areas of artificial intelligence, deep learning, mobile development, data visualization, and infrastructure. Some of our projects, including Jaeger, Horovod, and kepler.gl, were eventually adopted by industry organizations to facilitate further growth of their user community.
At Uber, our Open Source Program Office (OSPO) serves as a central resource for open source strategy, operations, and activities. This formalized relationship with the open source community helps our engineers in maintaining, contributing to, and using projects.
Today, we are excited to publicly share our open source principles and goals, providing more transparency for the community about how we contribute to and consume open source software.
Why are we sharing Uber’s Open Source Principles?
Our open source footprint expanded quickly—mirroring the hypergrowth of Uber as a company—but it also introduced complexities and complications that could prohibit us from maturing these projects in a sustainable fashion.
Over the years, we developed a principle-based decision-making process to provide autonomy and inner-open governance in Uber’s open source activities. We hope other companies will find these best practices useful and apply them to their own use cases.
Open source at Uber supports three primary goals: engineering economics, talent acquisition and retention, and industry alignment. These goals inform seven principles that guide our decisions regarding the value of open sourcing our work, or choosing to leverage or expand upon existing community solutions. Below, we share our seven open source principles in full:
- Open source activities meet our primary goals: Any open source activities that do not promote any of our primary goals require additional business justification.
- Uber first: Open source activities, especially open sourcing proprietary software, should bring value to Uber. Should any open source activities introduce resource and priority conflicts, everyone is expected to put the needs of Uber’s business first in their decision-making process before the needs of any individual teams or partners.
- Reputation is our currency: If reputation is a big pool of credits, open sourcing proprietary software should enhance the credit pool. To protect our pool of credit, we will critically evaluate all open source decisions to identify potential risks to our credit and to determine how to mitigate any such risks.
- Uber values quality : When open sourcing proprietary software, Uber only releases projects that maintain a strong technical identity across our entire project portfolio; to achieve this, project owners must continue to support their projects after releasing them to the public. Projects that fail to meet our quality standards will not be open sourced or, if already public, will be removed from Uber’s public repository.
- Contribute liberally, release and consume cautiously: The decision to open source proprietary software is irreversible. Adding open source software to our technology stack can also introduce different levels of risk related to security, compliance, engineering costs, and project sustainability. In most cases, everyone at Uber is strongly encouraged to contribute back to existing open source projects instead of releasing new ones.
- Uber supports open source project sustainability: The sustainability of open source software that Uber depends on is important to the business. Uber’s open source activities support and sustain broader open source communities and projects, and we do our best to reduce redundancy and fragmentation in the open source community. In this spirit, everyone at Uber is encouraged to reach out to other communities, collaborate wherever possible, and explore the option of contributing to an existing open source project before creating a new one.
- Always follow the principles: Projects should always follow these principles even after their release. We proactively take actions to ensure the integrity of Uber’s technical reputation and identity.
Our principles are a codified set of gateways that ensure our open source activity is compliant, mutually beneficial to Uber and the broader community, and sustainable. By choosing only to invest in open source projects that meet our company goals, we can ensure a more scalable and reliable future for the Uber platform.
If you’re interested in learning more about Uber’s approach to open source, we encourage you to read the principles for yourself.
Interested in collaborating? Learn more about Uber Open Source and our suite of projects.