About the Role
More than 7 million drivers globally rely on Uber as their primary and flexible earnings source! To deliver on our value proposition as a flexible earnings platform, it is critical we reliably and clearly communicate what has been, and could be, earned to each and every driver on the platform. Information about earnings is the foundation by which drivers are able to set and track their goals and make tradeoffs about when and where to drive.
As part of the earnings platform team, you will have direct responsibility for vital systems and processes. You will take ownership of key features and initiatives in designing and building high quality, scalable systems in making earnings reliable and efficient. Your work will directly impact the lives of Uber's partners (drivers, couriers), riders, eaters, and operations teams across the globe.
What You'll Do
Build elegant backend platform components for high throughput and low latency distributed systems
Solve challenging problems with cutting edge design and algorithms
Drive adoption of best practices in code health, testing, and maintainability
Analyze and decompose complex software systems and collaborate with cross-functional teams to influence design for scalability and testability
You will work closely with team members to ensure the stability and integrity of our systems and codebase. This includes upholding development best practices, continuously refactoring and enhancing our code, and maintaining the resilience and robustness of our systems.
What You'll Need
6+ years of backend software engineering experience with Strong CS fundamentals
Extensive software design and development skills. Ability to learn, and adapt to new technologies and contribute in a productive environment
Expertise in one or more object oriented programming languages (e.g. Java, Golang, Python)
Experience with production-quality services, deployment, monitoring, and reliability
Background in distributed storage and database systems (SQL or NoSQL, e.g. MySQL, Cassandra)
Ability to decompose complex problems into clean, extensible, performant services and systems
Self-driven to identify opportunities to make things better and efficient
Thoughtfulness. High adaptability. A willingness to learn
Experience mentoring team members & being a trusted advisor
A team player attitude. You believe that you can achieve more on a team - that the whole is greater than the sum of its parts. You rely on others' candid feedback for continuous improvement and you help others by returning the favor
Bonus points
You have prior experience working on features end-to-end, including frontend, backend and database
Background in building high performance, scalable distributed systems