The Uber Amsterdam Engineering Culture
Our engineering culture is the same across all our engineering offices: in Amsterdam, this is no different from San Francisco or our other locations. Amsterdam is one of the largest mobile engineering offices outside of our Bay Area headquarters. We are a diverse group, with talented people from over 30 countries working together.
Engineers working at Uber are highly autonomous, involved in decisions impacting the business and systems. We have a high bar for engineering quality, which starts by a transparent planning process before we write code - any engineer can get involved here. We have dedicated teams building efficient developer tools and keep improving our Android monorepo. We are big on constructive code reviews, accompany business logic with automated tests and have robust deployment and beta testing processes in place. We balance code and architecture quality with good execution speed, supporting the continued growth of Uber.
Mobile architecture for many of the Uber apps is based on the cross-platform RIBs architecture which we have open sourced, several mobile engineers from the Amsterdam office contributing. We write Android code mostly in Java, starting to introduce Kotlin to some codebases. We use Motif for dependency injection, RxJava for asynchronous event based programming and tools like NullAway for advanced static analysis. We frequently share work and learnings on Android and mobile on our engineering blog and our regular Android internal engineering meetings.
Engineering managers at Uber are also hands-on with coding and architecture - you can bump into some our Amsterdam managers speaking at mobile conferences. Product managers here are also technical, many of them having been engineers in the past. Other people engineers interact with daily, in the office include data scientists, designers and UX researchers.
About the team
The Order Checkout team in Amsterdam is responsible for providing checkout and payments capabilities for all lines of business at Uber including both Rides and Eats. The team's mission is to handle payments so that our partners can focus on their core business. We are currently building and rolling out a single payments platform to simplify payments integrations for Uber's lines of business and third parties called the Unified Checkout.
The team is a cross functional team, consisting of both backend and mobile engineers, data analysts, a product manager and engineering manager.
The team is growing to handle an expanded scope, and to support our mission of enabling the Unified Checkout for all payment integrations at Uber.
Our Products & Services
- Eats & Rides Checkout - When a customer checks out with Uber, our team is involved. We own the core checkout experiences in both Eats and Rides.
- Unified Checkout - The Unified Checkout enables new lines of business to get up and running with payments at Uber, and platformizes the payments stack into one single integration. This consists of a single API and web/mobile SDK for payment integrations.
- Cash - 40% of trips on Rides are cash trips. Our team owns the cash checkout experience, enabling cash payments between the Driver and Rider.
- 3DS/SCA for all Uber lines of business.
What you'll do
- Write best in class code and contribute to a clean and continuously evolving mobile architecture, many of this based on RIBs.
- Work with an energetic and fun group of mobile, backend, frontend engineers, as well as product managers, designers, data scientists, user researchers.
- Influence other engineers, teams and product managers, impacting the full product lifecycle.
- Collaborate with teams in different offices, such as the Mobile Platform, Data Science, Payments Risk and Finance.
- Keep the bar high on sustainable engineering by following best practices, producing best in class of code, documentation, testing, and monitoring.
What you'll need
- A passion for designing, implementing and shipping beautiful user experiences.
- 3 or more years of experience with mobile development.
- Hands-on knowledge of Android and strong knowledge of Java or Kotlin.
- Experience building and shipping consumer-facing products.
- A collaborative approach, being open to help team members.
- Applied knowledge of software engineering and best practices such as testing, documentation and code reviews.
- Good written and verbal communication skills, including the ability to write engineering documents.
- Hands-on knowledge of RxJava, understanding how it works under the hood and best practices around it.
- Experience in iOS development or interest in learning iOS - with RIBs, the architecture is strikingly similar to Android.
- Experience or interest in backend development - both at the API level, as well as with services. Our mobile and backend engineers work closely together and we encourage people contributing in multiple domains.
- Applied knowledge of coding best practices that minimize tech and architecture debt.
- Experience shipping and operating apps at scale to a large number of users, across several geographies and locales.
- Experience in the Fintech or payments domains.
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.
Europe, Middle East & Africa
United States & Canada
Life at Uber