Build sophisticated solutions for merchants 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.
Extend scope beyond Android development
Requirements & Skills:
6+ years of full-time Android engineering work experience with a 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 in English language skills to work with other engineers and stakeholders from different regions around the world
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.