The Observability team builds the tools and systems that every engineering team at Uber uses to develop, scale, understand, and monitor their systems. These tools are absolutely critical to Uber - without them it would be impossible understand and debug problems in an environment with over three thousand microservices, hundreds of thousands of CPU cores in multiple DCs and the cloud, and hundreds of thousands of concurrent trips around the world.
The Observability suite includes:
- M3, our open source enterprise metrics stack. It handles hundreds of millions of emitted metrics per second, used to monitor and alert for every product and microservice at Uber.
- Jaeger, our open source enterprise Golang tracing system. Provides actionable insight into individual flows through our microservice architecture, and comprehension of the entirety of Uber's software ecosystem.
- Synoptic, our Uber-aware dashboarding system which displays context-sensitive information from across the Uber ecosystem, enabling quick detection and mitigation of issues.
- Our deeply integrated On-Call Experience suite of tools, which gives on-call engineers everything they need to raise, track, and close outages incidents, to track the SNR of alerts, and to drive improvements in their team health by reduce alert load.
- Blackbox, our system for externally monitoring our critical business endpoints, via emulated workflows.
- A new system under development to provide enterprise logging, with deep integration into our Observability stack, including alerting, linkage to traces, etc.
We're hiring engineers with various levels of experience - We have challenges suitable to all.
What You'll Do
- Contribute to the development, design and architecture of various tools in the Observability suite.
- Write clear documentation so that other engineers can make the most of what we deliver to them.
- Get to know engineering teams across Uber to understand their requirements and pains so we can develop the right solutions.
What You'll Need
- A demonstrated passion for meticulously architecting, designing and implementing high-performance systems. You think about performance, memory utilization, I/O bandwidth, and scalability as fundamental requirements in your designs, not as an afterthought when things break.
- Experience building cross-datacenter, highly-available systems.
- An emphasis on high quality code. We use Go and C++ but experience in either is not strictly required.
- Experience in building distributed systems. The systems we build must be reliable, available and fault tolerant - so every engineer that joins our team should have some level-appropriate experience building distributed systems.
At Uber, we ignite opportunity by setting the world in motion. We take on big problems to help drivers, riders, delivery partners, and eaters get moving in more than 600 cities around the world.
We welcome people from all backgrounds who seek the opportunity to help build a future where everyone and everything can move independently. If you have the curiosity, passion, and collaborative spirit, work with us, and let's move the world forward, together.