Not Exactly a Linter (NEAL) takes code reviews one step closer to full automation by allowing engineers to write custom syntax-based rules in any language.
To mark the two-year anniversary of Uber Eats, Android engineer Hilary Karls discusses how her team's commitment to "playing the perfect game" resulted in one of Uber’s most successful products.
Uber's mobile engineers leverage code generation to make our applications more reliable and boost developer productivity.
By unifying mobile onboarding experiences for our new rider app, Uber Engineering made it easier than ever before for users to "get moving."
Uber Engineering built and open sourced NullAway, our fast and practical tool for eliminating NPEs, to help others deploy more reliable Android apps.
Uber Engineering's XP Background Push mitigates bugs safely and efficiently in real time, facilitating more seamless user experiences on our apps.
Uber Engineering's new open source tool, AutoValue: Bundle Extension, decreases the likelihood of encountering bugs by enabling Android engineers to quickly unbundle data into value classes.
In this article, members of Uber’s Mobile Platform team introduce Startup Reason Reporter, our new open source tool for detecting startup reason on iOS.
Uber Engineering shares our best practices for working with plugins, a powerful tool that enables us to build and ship features quickly at scale.
Uber Engineering built a new microservice to power Driver Profiles, an in-app platform that enhances the Uber experience by celebrating drivers.
In this article, we discuss how Uber Engineering designed m.uber, a lightweight web app that delivers a native app experience for riders on mobile browsers.
In 2016, Uber Engineering built and open sourced RAVE, a data model validation framework for Android that leverages Java annotation processing to protect against crashes caused by invalid data.
In this article, Uber Engineering shares our best practices for relieving RxJava backpressure on Android through targeted operators, more forgiving RxJava 1.x configurations, and RxJava 2.x.
In this article, we outline how Uber Engineering developed UberSignature, a new feature that allows iOS users to draw and store touchscreen signatures on the UberRUSH app.
The monorepo codebase powering Uber Engineering's Android rider app is architected to scale for growth while supporting the IDE, reducing build times, and stabilizing the master during integrations.
How Uber Engineering re-architected the content delivery feed and backend ecosystem of our new driver app to deliver an enhanced user experience.
Uber Engineering built a custom stack that generates AutoValue models using immutable collections to stably migrate Android apps at scale.
A recipe for success: how Uber Engineering used React Native to optimize UberEATS' Restaurant Dashboard app for mobile.
Although an untraditional choice for building mobile architectures, deep scope hierarchies are a key component of Uber's new Android rider app that enable the quick and seamless rollout of new features.
The Uber Engineering mobile team migrates to a monorepo that uses Buck to test and deploy iOS and Android code faster and more efficiently than ever before.