Data Metrics Platform Engineer
Data 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 — every single day, 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. This requires an ambitiously novel approach to human process and computation.
As a member of the Metrics Platform engineering team, you will apply advanced data modeling theory, build massively scalable data distribution systems, and develop domain-specific languages to deliver both batch and real time business metrics to power Uber’s multitude of data tools. You will work directly with teams building Uber’s marketplace optimization efforts, product experimentation platform, and city-management tools. Key challenges include supporting complex metric definitions, metric lifecycle management, and compatibility with a variety of both data storage and retrieval technologies.
Qualifications and Required Skills (or, in other words, your resume and your interview should speak to the following):
- 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).
- Implemented Domain Specific Language (DSL) for expressing computing flow for SQL or computing engines (Storm, Samza etc) or business scenarios.
- Experience extending and implementing core functionality and libraries in data processing platforms (Hive/Pig UDFs, Spark / Spark SQL, Apache Samza, etc).
- Experience building pipelines from ingestion to delivery in critical data applications (Data Warehousing, Search, Real-time Dashboarding)
- Distributed Systems Design Experience – including understanding of distributed systems concepts and principles
- Strong algorithms / data structure experience
- A commitment to writing understandable, maintainable, and reusable software.
- Well versed in software and data design patterns.
- Willingness to learn new languages and methodologies.
Nice to Have Skills (it would be great if you could check some of these boxes!)
- Knowledge of designing highly expressible internal DSL on functional programming languages such as Scala, Clojure, Haskell etc.
- Have a significant background in functional programming, preferably in Java or Scala.
- Deep Knowledge of Parsing, AST, and Code Generation is highly desirable.
- Experience working on system internals of large scale distributed stream and batch data processing (Spark, Samza, Storm, YARN, Dataflow, Flink, Cascading etc).
- 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.
- Employees are showered with Uber credits each month.
- The rare opportunity to change the world such that everyone around you is using the product you built. We’re not just another social web app, we’re moving real people and assets and reinventing transportation and logistics globally.
- Sharp, motivated co-workers in a fun office environment.
- 401(k) plan, gym reimbursement, nine paid company holidays.
- Full medical/dental/vision package to fit your needs.
- Unlimited vacation policy; work hard and take time when you need it.
Meet Some of Uber's Employees
Community Management Specialist
Brian makes sure that every Uber user has an amazing experience. He troubleshoots roadblocks to customer happiness and also does outreach to attract new Uber users.
Back to top