Senior Full Stack Engineer - Data Processing Frameworks Team

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 Data Platform - Data Processing Frameworks Engineering team, you will be at the epicenter of an amazing company experiencing extreme growth and solving the challenges that come with scaling rapidly. Accessibility of insight requires accessibility of data; quality of insight requires quality of data- and everyone deserves accessibility to quality data. As Uber is facing exponential growth, our data has followed the same “up-and-to-the-right” curve that is pervasive throughout the company.


What You’ll Do


As a member of the Data Processing Frameworks Engineering team, you will be doing just that- building a data workflow management platform that enables reliable, trustworthy, and approachable data delivered to thousands of Uber employees. You will be responsible for development of our platform framework infrastructure and libraries to improve user experience. You will have deep understanding of the problems our platform solves for the users. You will also help drive full-stack projects that impact the platform’s user interface.

Your software will deliver, model, curate, data that powers core data platforms at Uber. At every stage of the data processing platform you will enforce information security principles.


What You’ll Need

  • Bachelor's degree or higher in an engineering or science field (Computer Science, Computer Engineering, Mathematics, Physics).
  • Programming experience one or more of these languages/frameworks: Java, Go, Python, Ruby, C/C++, JavaScript, Node.js, React.js.
  • Knowledge of frontend stack (Javascript/HTML/CSS). Frameworks like React/Flux/Redux is a plus.
  • Passion for working with customers and helping them with their use cases.
  • A solid understanding of information security standards & methodologies.
  • A good understanding of large-scale distributed systems in practice, including multi-tier architectures, application security, monitoring and storage systems.
  • Experience building components of a data workflow management platform including schedulers, queuing systems, state management systems,  job executors, etc.
  • Strong algorithms / data structure experience
  • Experience extending and implementing core functionality and libraries in data processing platforms (Hive/Pig UDFs, Spark / Spark SQL, Apache Samza, etc).
  • An incredible desire to be part of a team that delivers impactful results every day.
  • A commitment to writing understandable, maintainable, and reusable software.
  • Experience working on designing and developing front end components with focus on innovative customer interactions.
  • An innate desire to deliver and a strong sense of accountability for your work.
  • Well versed in software and data design patterns.
  • Willingness to learn new languages and methodologies.
  • An enormous sense of ownership

Bonus Points If

  • Experience working on job scheduling/monitoring system internals (Spark, Samza, Storm, YARN, Dataflow etc) and/or task queuing systems internals (Celery/Redis, RabbitMQ, etc). 
  • Experience building pipelines from ingestion to delivery in critical data applications (Data Warehousing, Search, Real-time Dashboarding).
  • Passionate about scheduling algorithms, its nuances and trade-offs in distributed environments.
  • Distributed Systems Design Experience - including understanding of distributed systems concepts and principles
  • Database Performance concepts like indices, segmentation, projections, and partitions.
  • Hadoop Ecosystem of Tools (Spark, Hive, Oozie, Presto, MapReduce, Cascading, Scalding, Pig, 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.

About the Team


The Data Processing Platform engineering teams are at the core of Uber’s software engineering organization.  Many companies are data driven, but being on the bleeding edge of the P2P Ride-Sharing / Logistics / Transportation industry, we partner utilize data to conquer a whole new world of challenges. Every Uber employee is hands on with data 24 hours a day. Data is the center of our business--  it drives the development of our world class service, highlights the effectiveness of incentives and promotions, measures the reach and effectiveness of localized marketing campaigns, and surfaces opportunities to improve how Uber operates. It is impossible to be at Uber and not feel the presence of Data.  This is the core mission of the Data Processing Platform teams.


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.