Software Engineer II
Summary
Build and scale Uber’s global data and storage infrastructure, designing low-latency distributed systems and high-performance pipelines that power real-time decisions for millions of users.
About the role and team
Engineering at Uber means building for real-world impact under real-world constraints. As a Software Engineer II on our Data and Storage teams, you will architect the foundational infrastructure that powers business decisions and core services for millions of users. Whether you are scaling distributed storage platforms or building high-performance data pipelines, you will be solving complex challenges at the intersection of low latency, high correctness, and massive scale.
The problems here are messy and the systems are global. You’ll need to make smart decisions with imperfect information, own your work end-to-end, and stay calm when high-load systems are on the line. We are looking for engineers who think in systems, pride themselves on robust monitoring, and believe that the best solutions are built through candid feedback and cross-functional collaboration. If you’re energized by challenges and motivated to move the real world - this is where you’ll grow.
Rate of Pay: $187,741 to $209,000 per year
You will be eligible to participate in Uber's bonus program, and may be offered other types of comp. You will also be eligible for various benefits. More details can be found at the following link
What you’ll do
- Design, develop, and test software applications.
- Apply technical knowledge to evaluate complex data, developments, and projects in order to provide recommendations to resolve technical issues.
- Support the company's business operations and improve engineering productivity.
- Build software components that can be integrated into a fully functional software system.
- Solve production issues in product and system reliability.
- Design and implement backend services with high scalability and reliability.
- Build key components of a large-scale platform for real-time event processing and batch job processing.
- Join on call rotation, drive continuous improvements on system availability, scalability, performance and efficiency.
- Collaborate with other engineering teams, product managers and stakeholders to drive adoption and standardize processes, and to lead the design and implementation of high impact, cross-product features.
- May telecommute.
Basic Qualifications
- Employer will accept a Master's degree in Computer Science, Engineering (Any), Information Technology, Mathematics, Physics, or related field.
- Position requires:
- C++, Python, Java, or Go;
- SQL or MySQL;
- NoSQL databases such as Cassandra, or Redis;
- Data structures and algorithms development and functionality;
- RESTful API design, client-server communication and integration patterns for microservices;
- Scalability, reliability, and availability concepts;
- Designing simple backend systems and distributed components;
- Debug code, write unit and integration tests, and use monitoring/logging tools to ensure service health in production;
- Agile development, code reviews, and version control systems like Git or SVN;
- CI/CD pipelines, deployment workflows.