Mobile Engineering at Uber, in Amsterdam

I joined Uber as a mobile engineer in 2016. It’s been the most fun, challenging and impactful environment I’ve worked at so far, as a developer. And I’ve had plenty of experience in mobile, beforehand: I was a prolific Windows Phone developer, then one of the very early swift adopters at Skyscanner - earning a notable mention from Chris Lattner on my tutorial to move from Objective C to Swift.

We’re now hiring mobile engineers to build Uber Money and Uber Wallet. The press is asking, Can Uber Money compete with Apple Pay? With the team we are hiring - we certainly will be able to.

As a mobile previous engineer at Uber in the past, and as a manager to several mobile developers, here are the main benefits I see of working at Uber, in Amsterdam, as one of the Silicon Valley companies with a large presence in Europe.

Career Growth

  • Mentoring and mentorship is a big part of our culture. We have formal mentoring opportunities and encourage informal mentorship. Developers mentoring other developers and learning from each other is a big part of our culture. This culture allows us to hire less experienced people and invest in them. It also a great way to have experienced engineers further grow, by supporting others.
  • A never-ending firehose of learning about architecture. Teams write up their design approach before starting projects, then distribute it widely. This is our engineering planning review process that provides transparency, lots of learning opportunities, and the ability to give feedback to teams across the globe.
  • Cross-platform opportunities. Many of our mobile engineers onboard to the “other” platform (iOS and Android) - and we are supportive of this. RIBs architecture is similar on iOS and Android, our design documents usually capture both platforms, and we have internal training to learn one platform or the other. A large percentage of mobile engineers decide to contribute to both platforms, after some time.
  • Exposure to large, distributed systems. As someone who started as a mobile engineer, I learned a lot about distributed systems by reading design documents and talking with backend engineers. We’ve had mobile engineers fascinated by these systems move to the backend, broadening their skills.
  • Promotions. We have a clear career ladder and a transparent promotions process that we keep tailoring based on feedback from engineers and managers. My team has had a pretty good run with promotions the past few years. Professional growth is something managers and peers are deeply invested in.
  • Technical managers and a path into management. All engineering managers come from an engineering background, having been developers for a good time, and are technical. We have an apprentice manager program and occasional opportunities for moving from engineering to management. I moved into management at Uber, and three other engineers in Amsterdam have also done this transition.
  • Product-minded software engineers. Because most mobile engineers work closely with product managers, UX researchers, data scientists, and operations people, we have lots of opportunities for product input. We encourage developers to think as “product engineers”, bringing suggestions and tradeoffs to the table.
  • Principles of engineering growth. Dan Heller is a former engineering manager in Amsterdam, now a staff software engineer in San Francisco. His ten principles for growth as an engineer capture how we encourage engineers at Uber to take ownership of their growth - and the environment we strive to create to do so.
  • A Silicon Valley company in Europe. There is a lot to like about this kind of environment, that merges good things from both worlds.

Engineering Culture, Architecture and Scale

As a mobile engineer, I’ve had a hard time convincing stakeholders at other companies to adopt engineering best practices that benefit the team and the product, in the long term. At Uber, I had to push little: we are about pragmatic, sustainable, and world-class engineering.

Sounds interesting? Apply here and work with me, in Amsterdam.

Featured Pragmatic Engineer Jobs

  1. TicketSwap: Engineering Manager (Amsterdam)
  2. Linear: Senior Full-Stack Engineer (Remote, EU/US timezones)
  3. Fonoa: Senior Backend Engineer (Remote, EU timezones)
  4. FindHotel: Engineering Lead (Amsterdam)
Browse more senior engineer and engineering leadership roles, or add your own on The Pragmatic Engineer Job board.