Senior Software Engineer, Software Networking (SRE) - Seattle
Uber is a technology company that is changing the way the world thinks about transportation. We are building technology people use everyday. Whether it's heading home from work, getting a meal delivered from a favorite restaurant, or a way to earn extra income, Uber is becoming part of the fabric of daily life.
We're making cities safer, smarter, and more connected. And we're doing it at a global scale-energizing local economies and bringing opportunity to millions of people around the world.
Uber's positive impact is tangible in the communities we operate in, and that drives us to keep moving forward
Uber has become an integral part of many people's lives. It is critical that the systems that power the platform are always available to everyone in the world. Uber continues to expand into new cities and its growth and popularity presents interesting challenges for matching developer agility with the scale and complexity of its infrastructure. We are looking for senior engineers that are able to apply sound engineering principles and build robust distributed systems to solve infrastructure challenges, while enhancing developer productivity and maintaining operational simplicity.
Our networking infrastructure spans physical data centers and cloud providers. You will be part of the software networking site reliability engineering team with a healthy mix of software engineering and systems engineering background, executing in a fast paced environment. If you love working on software products that touch the physical world and want some serious experience under exponential growth conditions, this is the role for you.
Are you among the rare breed of software engineers with strong systems engineering and operational background? Do you have a passion for designing and maintaining highly reliable systems? As a Senior Software Engineer in the software networking infrastructure team, you'll be responsible for one of the following areas: load balancing, service discovery, traffic routing and health management systems. You will be building infrastructure management and automation tools that will enable you to provide software networking infrastructure components as a service for other engineering teams. Load balancing millions of requests globally, discovery and routing requests to thousands of micro services end points and building fault tolerant solutions are some of the challenges you will be presented with.
- Provide technical leadership, influence and partner with fellow engineers to architect, design and build mission critical software networking systems that can scale reliably.
- Drive efficiencies in systems and processes through automation: capacity planning, configuration management, performance tuning, monitoring and root cause analysis.
- Be an "engineer for the engineers" - collaborate with product and security engineering teams, and enable successful understanding of the architecture and use of software networking infrastructure.
- Participate in a periodic on-call rotation and be available for escalations.
- System Architecture design, including management of upstream and downstream dependencies
- Design and delivery of software to advance the reliability of software networking systems including availability, performance, latency and scalability.
- Automation of Deployment & Change Management, Canary and Release processes
- Resiliency strategies, such as Load and Failure testing
- Capacity planning, Turn-ups and Turn-downs
- Instrumentation, Monitoring, Alerting & Reporting on key metrics and SLAs
- Incident Response (problem solving, improving the on-call rotation experience, tools, and procedures) including a comprehensive postmortem process, and automation to prevent recurrence.
- Operational Readiness, such as Runbooks and other Documentation, Escalation Paths, and Incident Response Training exercises.
- Grit, drive and a strong feeling of ownership coupled with collaboration and leadership.
- BS or MS in Computer Science or a related technical discipline, or equivalent experience.
- 5+ years of experience building and managing distributed systems. Sound understanding of fundamentals of distributed systems.
- Highly proficient in one of the following programming languages: Go, Java, C/C++, Python and good scripting skills (bash) and ability to pick up new ones.
- Systematic problem solving approach and knowledge of algorithms, data structures and complexity analysis.
- Extensive experience in networking technologies: TCP/IP, UDP, DNS, OSI layers, load balancing, routing, service discovery and fundamentals of network theory
- Knowledge of networking: HTTP/2, QUIC, gRPC is a strong plus
- Power-user Linux knowledge and willingness to explore Linux internals (kernel, shell, client-server protocols, threads, processes, file systems)
- A good understanding of large-scale distributed systems in practice, including multi-tier architectures, consensus services (ZooKeeper), application security and monitoring systems.
- Experience with a cloud like AWS, Azure or GCP is a plus
- Configuration management knowledge with Chef, Puppet is a plus.
- Familiarity with Docker, Mesos and container technologies
Be sure to check out the Uber Engineering Blog to learn more about the team.
- Employees are given Uber credits every month.
- The rare opportunity to change the way the world moves. We're not just another social web app, we're moving real people and assets and reinventing transportation and logistics globally.
- Smart, engaged co-workers.
- 401(k) plan, gym reimbursement, nine paid company holidays.
- Full medical/dental/vision package to fit your needs.
- Unlimited vacation policy; take time when you need it.
Uber is an equal opportunity employer and enthusiastically encourages people from a wide variety of backgrounds and experiences to apply. Uber does not discriminate on the basis of race, color, religion, sex (including pregnancy), gender, national origin, citizenship, age, mental or physical disability, veteran status, marital status, sexual orientation or any other basis prohibited by law.
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