What the Candidate Will Do
- Partner with fellow engineers to build and maintain backend services and solutions to support user-facing products, downstream services, or infrastructure tools and platforms used across Uber, millions of Uber riders and drivers worldwide;
- Work on Uber's most complex applications by designing, implementing, and unit testing the mobile application code;
- Work with Product Managers and Designers to nail user experiences;
- Drive ongoing efficiency and reliability improvements through design and automation: availability, performance, scaling, monitoring and capacity;
- Lead upstream and downstream dependencies, collaborate with other engineering teams, capture requirements, evolve solutions and enable successful adoption;
- Create frameworks and abstractions that are reliable, reusable and avoid surprising outcomes;
- Go to person to get clarity of problem statements and also can break down into meaningful tasks;
- Promote and demonstrate problem-specific expertise and execution excellence in delivering results.
Basic Qualifications
- Bachelor’s degree or equivalent in Computer Science, Engineering, Mathematics or related field AND / OR +3-year total technical software engineering experience;
- Proficiency in Java and Kotlin, strong knowledge of both programming languages commonly used for Android development;
- Experience with Android SDK, strong knowledge of Android's core libraries, tools, and frameworks.
- Knowledge of Android UI/UX Design Principles, experience designing responsive and intuitive user interfaces;
- Advanced English language skills to work with other engineers and stakeholders from different regions around the world;
Preferred Qualifications
- Understanding of Android Architecture Components and other architecture components for building scalable and maintainable apps;
- Familiarity with Jetpack libraries to build modern Android apps;
- Expertise in using Kotlin Coroutines for managing background tasks and asynchronous code;
- Skills in profiling and optimizing apps for performance, including memory management, battery usage, and smooth UI rendering;
- In-depth understanding of Android Activity and Fragment lifecycle management, including handling configuration changes and memory leaks;
- Experience with Android testing frameworks and familiarity with debugging tools;
- Knowledge of performance tuning, usability and automation testing;
- Good understanding of code versioning tools, such as Git.
* Accommodations may be available based on religious and/or medical conditions, or as required by applicable law. To request an accommodation, please reach out to .