Senior Full Stack Engineer, Data Metrics Platform

US-CA-San Francisco
Engineering - Engineering

Uber Overview

About Uber


We’re changing the way people think about transportation. Not that long ago we were just an app to request premium black cars in a few metropolitan areas. Now we’re a part of the logistical fabric of more than 600 cities around the world. Whether it’s a ride, a sandwich, or a package, we use technology to give people what they want, when they want it.


For the people who drive with Uber, our app represents a flexible new way to earn money. For cities, we help strengthen local economies, improve access to transportation, and make streets safer.

And that’s just what we’re doing today. We’re thinking about the future, too. With teams working on autonomous trucking and self-driving cars, we’re in for the long haul. We’re reimagining how people and things move from one place to the next.

Job Description

About the Role


As a member of the Metrics Platform engineering team, you will build tools and technologies that will democratize access to Uber’s business metrics while allowing users to do their work effectively.


What You’ll Do

  • Create a structured approach to elegantly represent and serve hundreds of Uber's business metrics definitions into tools and services.
  • Build novel metric lifecycle management workflows.
  • Work with a variety of data storage and retrieval technologies.
  • Build an intuitive frontend for metric definers and consumers. These tools will be used by thousands of weekly analytics users, spanning from core Data Science teams, to the Operations teams in hundreds of cities.
  • Build a powerful and flexible backend for developers of services and data tools. Your direct customers will include the teams building Uber's marketplace optimization efforts, product experimentation platform, and city-management tools.

What You’ll Need

  • Bachelor's degree or higher in an engineering field (Computer Science, Computer Engineering, etc).
  • Programming experience one or more application or systems languages (Java, Go, Scala, Python, C/C++, etc).
  • Experience in front-end development using Web technologies to create single-page responsive applications. JavaScript (ES6) using React/Redux highly preferable.
  • Distributed Systems -- understanding of distributed systems concepts and principles.
  • Strong algorithms / data structure experience.
  • A commitment to writing understandable, maintainable, and reusable software.
  • Excitement/Interest to learn new languages and methodologies.

Bonus Points If

  • Knowledge of designing highly expressible internal DSL on functional programming languages such as Scala, Clojure, Haskell etc.
  • Implemented Domain Specific Language (DSL) for expressing computing flow for SQL or computing engines (Storm, Samza etc) or business scenarios. 
  • Have a significant background in functional programming, preferably in Java or Scala.
  • Strong understanding of different storage architectures and their appropriate application.
  • Experience working with business partners and engineers to gather, understand, and bridge definitions and requirements.

About the Team


Business Metrics is at the heart of the decision making process at Uber. People across various roles and locales need access to accurate and reliable business metrics -- accessed through a variety of tools, and from many data sources -- to ensure our business operates at peak performance. Metrics Platform exists to ensure that Uber's metrics are well-defined, centrally managed, and accessible to everyone, from engineers to executives to operations which spans thousands of users.


Connect With Us!

Not ready? Connect with Uber to receive future communications about opportunities and general information about specific areas of Uber that interest you.