About the Role
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 iOS 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 iOS code mostly in Swift, in a few cases using Objective-C. We use Needle for dependency injection and RxSwift for asynchronous event based programming. We frequently share work and learnings on iOS and mobile on our engineering blog and our engineers sometimes talk at iOS conferences - like two of our Amsterdam iOS engineers speaking at NSSpain.
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.