Senior Software Engineer (Collections & Cashouts)
About the Role
The Collections & Cashouts team is responsible for building products and systems which enable Uber to collect arrears from both spenders & earners and provide flexible disbursement capabilities for drivers.
There is a huge opportunity to collect money owed from our users and provide drivers (and other earners alike) the flexibility to get their money when they want it. Projects in this team are high priority due to the massive numbers that go straight to Uber's bottom line. If you are motivated, love a challenge & want to have a real impact at Uber's scale then this might be the role for you. We are a multi-skilled team with critical tier 1 products and microservices that are predominantly built with Go & Java.
Our Products & Services
- OnDemand Disbursements - Disbursing billions of dollars a month in instant and near-instance payments to our drivers. We are continuing to expand this product into new markets and add new capabilities to help our earners get their money when they want it.
- Retriever - Collects millions of dollars per week from our earners (drivers) in over 17 different countries. This product has collected 100s of millions of dollars for Uber's bottom line. It is also foundational to Uber's lending capabilities.
- Spender Arrears - 100s of millions of USD are owed to Uber in the form of spender arrears, these products prompt our users and allow our spenders (riders, eaters, etc) to repay what they owe. We manage workflows and interaction points that drive the user to repay.
What you'll do
- As a senior engineer in the team you will be responsible for contributing to our systems architecture, ensuring that it can scale to Uber's 75+ million riders and 3+ million drivers, whilst supporting our current and future needs.
- Be responsible for Tier 1 (critical) Uber services. SLA reliability of 99.9+%
- Build highly performant distributed systems
- Contribute to the product roadmap with new product ideas / enhancements
- Ship to production everyday and work with a top tier team of software engineers from all around the globe.
- Collaborate within an agile environment with other Uber teams and third parties to ensure that money movements are reliable, compliant and offer best in class experiences.
What you'll need
- Excellent communication & collaboration skills
- Previous experience leading software projects & teams
- At least 5 years of software engineering experience
- Bachelor of Science (BS) in Computer Science, Software Engineering, Physics, or Mathematics, or related field
- Experience coding with Java, or Go
- Strong problem solving and coding skills
- Experience with developing, debugging, and shipping software products on large code bases that span platforms and tools
- Experience with Software Development processes such as design, planning, implementation, maintenance & documentation
- A good understanding of large-scale distributed systems in practice, including multi-tier architectures, application security, monitoring and storage systems.
- Demonstrated experience working collaboratively in cross-functional teams
- Passion for learning new technologies, domains, and challenging the status quo.
- Previous domain experience in the payments domain
At Uber, we ignite opportunity by setting the world in motion. We take on big problems to help drivers, riders, delivery partners, and eaters get moving in more than 10,000 cities around the world.
We welcome people from all backgrounds who seek the opportunity to help build a future where everyone and everything can move independently. If you have the curiosity, passion, and collaborative spirit, work with us, and let's move the world forward, together.
Uber is proud to be an equal opportunity workplace. We are committed to equal employment opportunity regardless of race, color, ancestry, religion, sex, national origin, sexual orientation, age, citizenship, marital status, disability, gender identity, Veteran Status, or any other characteristic protected by law.