About the Role Uber's platform is a large-scale, microservice-based architecture that enables dozens of millions of clients to leverage Uber products for mobility and delivery needs in a reliable manner. The Customer Identity Platform team ensures that millions of Uber's users from 70+ different countries can seamlessly and securely be authenticated and authorized at Uber. We facilitate the complete lifecycle of identity, including user creation, access & management. We are a closely collaborative cross-functional team consisting of backend engineers, front-end engineers, mobile engineers, product managers, data scientists and designers, working together to manage identity at Uber effectively through a very reliable and scalable platform that supports 1M+ requests per second. Learn more about our team on this Tech Talk . Basic Qualifications 6+ years of full-time Android engineering work experience with solid understanding of Android SDK, different versions of Android, and how to deal with different screen sizes Proficiency in Kotlin and Java Proficiency in object oriented programming, MVC architecture, multithreading, networking, offline storage, memory management and source control management (git) Familiarity with RESTful APIs to connect Android applications to back-end services Solid understanding of Android UI design principles, patterns, and best practices Knowledge of the open-source Android ecosystem and the libraries available for common tasks Familiarity with cloud message APIs and push notifications A knack for benchmarking and optimization Understanding of Google's Android design principles and interface guidelines Strong focus on high-quality mobile UI experiences. Experience with UI/UX paradigms to build sophisticated user experiences Experience working with product and design teams Experience analyzing a feature in production using analytics and experiments Experience with Unit Testing, testing frameworks and best practices Ability to understand business requirements and translate them into technical requirements Full professional proficiency English language skills to work with other engineers and stakeholders from different regions around the world Preferred Qualifications Knowledgeable in Reactive programming (RxJava),, Kotlin coroutines and Dependency injection. Comfortable working within the coding conventions of a large engineering organization and working in a large and sophisticated code base with many contributors Advanced Degree: Master's or Ph.D. in computer science, engineering, data science, or a related field. Experience in risk, identity, security or similar focus. What the candidate will do Build sophisticated identity solutions and scalable distributed systems and technologies to enable Uber to grow its business globally. Contribute to the Android monorepo on core Uber flows, building core components and user-facing experiences by designing, implementing and maintaining scalable, robust, distributed systems that support user-facing products. Directly participate in the making of important business decision, in collaboration with Product, Design and Data Science, and building the technical capabilities to support them Work closely with backend engineers and cross-platform developers Drive adoption of the best methodologies in code health, testing, and maintainability. Implement native UI with the latest Android/Backend technologies Come up with the right architecture and design for ideas and experiments to scale quickly. Apply software experimentation philosophy, setting up A/B experiments for hypothesis testing. Build instrumentation in the experiments, understand, mine insights, and investigate these to help product with data-driven decisions from experimentation. Monitor and measure launched products and feed learnings back into the product development process.