Uploaded March 2020 | Updated September 2026, 2 weeks ago
At Uber, we use feature flags to customize our mobile app execution, serving different features to different sets of users. However, after a feature has either been 100 percent rolled out to our users or an experimental feature has been deemed unsuccessful, the feature flag in the code becomes obsolete. These nonfunctional feature flags represent technical debt, making it difficult for developers to work on the codebase.
Seeking to automate this process, we developed Piranha, a tool that scans source code to delete code related to stale feature flags, leading to a cleaner, safer, more performant, and more maintainable code base. We run Piranha at Uber in an ongoing pipeline for our Android and iOS codebases, and have used it to remove around two thousand stale feature flags and their related code.
We believe Piranha offers great utility for organizations that use feature flags in their app deployments, and so have open sourced it. Currently implemented for Objective-C, Swift, and Java programs, open source contributors may want to apply Piranha to other languages or improve on its ability to perform deep code refactorings.
Learn more: eng.uber.com/piranha
Check out the project for yourself: github.com/uber/piranha
At Uber, we use feature flags to customize our mobile app execution, serving different features to different sets of users. However, after a feature has either been 100 percent rolled out to our users or an experimental feature has been deemed unsuccessful, the feature flag in the code becomes obsolete. These nonfunctional feature flags represent technical debt, making it difficult for developers to work on the codebase.
Seeking to automate this process, we developed Piranha, a tool that scans source code to delete code related to stale feature flags, leading to a cleaner, safer, more performant, and more maintainable code base. We run Piranha at Uber in an ongoing pipeline for our Android and iOS codebases, and have used it to remove around two thousand stale feature flags and their related code.
We believe Piranha offers great utility for organizations that use feature flags in their app deployments, and so have open sourced it. Currently implemented for Objective-C, Swift, and Java programs, open source contributors may want to apply Piranha to other languages or improve on its ability to perform deep code refactorings.
Learn more: eng.uber.com/piranha
Check out the project for yourself: github.com/uber/piranha



![[Uber Marketplace] Using Machine Learning to Power Uber Eats Charlie Zhang
During a May 2018 meetup, engineering manager Charlie Zhang discusses how Uber uses machine learning to create a reliable, affordable, and effortless user experience on the Uber Eats app. [Uber Marketplace] Using Machine Learning to Power Uber Eats Charlie Zhang](https://i.ytimg.com/vi/XAg4DIgoUdE/mqdefault.jpg)


![[Uber Open Summit 2018] Closing Keynote with Zoubin Ghahramani, Chief Scientist, Uber
During the closing keynote of Uber Open Summit, Ubers Chief Scientist Zoubin Ghahramani discusses the symbiotic nature of open source collaboration and artificial intelligence, and how Uber is committed to growing our suite of open source ML technologies. [Uber Open Summit 2018] Closing Keynote with Zoubin Ghahramani, Chief Scientist, Uber](https://i.ytimg.com/vi/YKrXmRuEBeU/mqdefault.jpg)

![[Visualization Nights] Painting the World with Data - Erik Klimczak
At Uber, we use data for nearly everything from influencing policy to building products and gleaning market insights. However, the data alone doesnt always tell the full story. Color, composition, and framing play a critical role in developing a narrative that helps connect emotionally and visually with your audience. During our June 2018 Visualization Night, Uber Principal Designer Erik Klimczak discusses how the Uber Data Design team leverages data throughout the organization to build better products. [Visualization Nights] Painting the World with Data - Erik Klimczak](https://i.ytimg.com/vi/Yl5Ey3phMXM/mqdefault.jpg)
![[Visualization Nights] Urban Planning Workshop with Kepler gl & Uber Movement
During Ubers September 2019 Visualization Nights meetup, Uber engineer Ben Kramer and data analyst Utsav Shah walk through how to use the Uber Movement speeds data set with Kepler.gl to visualize insights about San Francisco traffic. [Visualization Nights] Urban Planning Workshop with Kepler gl & Uber Movement](https://i.ytimg.com/vi/YqsYhHpwklQ/mqdefault.jpg)
![[Distributed Tracing NYC] Gaining Insights from Distributed Traces Joe Farro
During a February 2019 Distributed Tracing NYC meetup, Uber software engineer Joe Farro explores several techniques for deriving value from distributed traces as well as covers the strengths and weaknesses of different distributed tracing approaches and how they relate to one another.
Joe is a software engineer and member of the Observability team at Uber. Hes a core contributor to the Jaeger and OpenTracing CNCF projects. [Distributed Tracing NYC] Gaining Insights from Distributed Traces Joe Farro](https://i.ytimg.com/vi/ZZUSqXo0ec8/mqdefault.jpg)