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.
About the role
The Core Observability team is building systems for consumption by every other engineering team at Uber. We’re writing a world-class, open-source, end-to-end metrics stack: a scalable distributed time series database, a tag-based query language, and a fleet-wide ingestion pipeline. At Uber we use this stack to monitor thousands of services that run across tens of thousands of machines, processing hundreds of millions of data points per second.
We’re hard at work building this next-generation platform to scale through our next 100x growth phase. Our NYC software engineering efforts are just getting started, so come help shape the culture and tackle these challenges with a small, tight-knit team of experienced engineers.
What you’ll do
Partner with fellow engineers to architect and build mission critical systems that can stand the test of scale and availability, while limiting operational overhead.
Drive efficiencies in systems and processes: capacity planning, configuration management, performance tuning, monitoring and root cause analysis.
Participate in a follow-the-sun on-call rotation.
What you’ll need
Drive and a strong feeling of ownership.
Experience building cross-datacenter, highly-available distributed systems. We need engineers who think about fault-tolerance, durability, and scalability.
Experience shaving off cycles and bits for optimal performance: profiling and optimizing your code and runtime environment for the hardware that it runs on.
Good programming skills in one of Go, Python, or C++ and an ability to pick up new languages.
Expertise with Linux and a good understanding of its fundamentals and internals: filesystems and modern memory management, threads and processes, the user/kernel-space divide, etc.
Working knowledge of the TCP/IP stack, internet routing and load balancing.
BS or MS in Computer Science, a related technical discipline, or equivalent experience.