I transitioned to being an engineering manager at Uber, almost three years ago. I started with a team of five people, which has grown to over 20 people today. Uber, in Amsterdam, has grown similarly quickly, almost doubling every year, going from 25 engineers in 2016 to about 150 today.
And our growth is not slowing. We are expanding teams to build Uber Money and Uber Wallet. The press is asking, Can Uber Money compete with Apple Pay? With the team and talent we are hiring - we certainly will be able to.
So what it’s like being an engineering manager here, at Uber and what are the main reasons I enjoy working here?
What it’s like
- Team size is around 8-12 engineers per engineering manager. This group can be cross-discipline engineers (e.g. mobile and backend) or all working on the same platform (e.g. web or mobile).
- Product and engineering work closely together. Each team has one or two dedicated product managers. Product is ultimately responsible for the vision, priorities and making sure the team moves the right business value. Engineering is ultimately responsible for the execution and doing this in a sustainable way. There are two-way conversations on both topics, product managers and engineering managers partnering with each other.
- Company-wide processes changing iteratively, based on feedback from those impacted. We have many centralized processes, like promotions, hiring, reporting on SLOs or triaging. In some cases, the central process is guidance only. However, in all cases, we iterate on these processes, tailoring them for a better fit at org and company level, quarter after quarter. Proactive managers get involved in areas early on, helping shape how to make these processes work better for all of us.
- Autonomy - coupled with responsibility. Teams have a good level of autonomy on the “how”. Project management methodologies, organizing oncall, structuring the team and many others are all left up to the team. In return, teams take expected to take ownership of their results and iterate on processes, if they become a bottleneck.
- Continous growth. Amsterdam has been at the forefront of growth at Uber, and we expect this to continue. We are currently the largest engineering office outside the US and one of the few offices with local product management, design and data science teams we work directly with, over needing to rely on overseas partners. This growth creates interesting challenges and opportunities to keep working more efficiently - even when we have more people.
- Collaborating with remote teams, like SF and India are part of the job. While many dependencies for teams are within Amsterdam, teams also depend on other teams, spread across the globe.
- Strong tech talent. We are one of the few Silicon Valley companies with a large engineering office in Amsterdam. We hire talented, motivated and open-minded people across all functions, who are great fun to work with.
- Complex challenges, lots of context, lots of opportunities. When joining, Uber can feel overwhelming. There are a lot of teams and lots of transparency, which can feel like information overload. Yet, this same characteristic creates many opportunities to make an impact both with and outside the team.
- See also what working here is like for backend engineers and mobile engineers.
- 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. Similarly, engineering managers are also encouraged to seek and offer mentorship, both onsite and remote. For example, one of my mentors is based in Silicon Valley, in a different org, and she’s been invaluable in helping me grow over the years.
- Apprentice management program. We both hire managers from the outside, as well as support engineers with skills and the drive to be engineering managers, to step up. We have a thorough selection and training process, and our managers offer hands-on mentoring to first-time managers. In Amsterdam, we’ve had three apprentice managers move into this program from engineering, with more to come in the future.
- A never-ending firehose of learning about architecture. Teams write up their design approach before starting projects, then distribute it widely. Managers are heavily involved in architecture and need to understand - and sometimes challenge - how their teams approach their planning. 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.
- 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.
Sounds interesting? Apply here and work with me in Amsterdam.