You are viewing content from a past/completed QCon - July 2021. Check out our upcoming events.

Piranha: Reducing Feature Flag Debt @Uber

Feature flags are commonly used in the software development process as they provide flexibility w.r.t gradual rollout of features, enable A/B testing and provide the ability to toggle features on production instances. An often overlooked part of this development model is the introduction of tech debt due to stale feature flags. The presence of code due to stale flags can adversely affect application reliability and increase software development costs. At Uber, reducing this debt without imposing significant additional overheads on the developers necessitated the design of novel tools and automated workflows. 

In this talk, I will describe my experiences with building and deploying Piranha, an automated code refactoring tool to delete code corresponding to stale feature flags. The Piranha workflow has been used continuously at Uber since early 2018 to help delete more than 4K stale flags (> 200KLoC) across Java, ObjectiveC, and Swift code. It has also inspired open source contributions in the form of extensions to JavaScript and Go. Piranha is available as open source to refactor code in these five languages at


Murali Krishna Ramanathan

Staff Software Engineer @Uber

Murali Krishna Ramanathan is the architect of Piranha and a Staff Software Engineer at Uber. He currently leads multiple code quality initiatives across Uber engineering. In the past, he has led the research and development of novel static and dynamic analyses for concurrency bug detection and automated test generation. He holds a PhD in Computer Science from Purdue University, USA.

Find Murali Krishna Ramanathan at:


Learn more about the organizations that joined us on this journey