Software Engineer II
Summary
Build and scale Uber’s data infrastructure and storage systems, designing high-throughput distributed services using Go, Kubernetes, Kafka, Spark, and OLAP engines.
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: $171,000 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.
- Design, develop, and/or test software applications using company technology stack.
- 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.
- 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:
- Go (Golang), including concurrency programming;
- Object oriented programming language, including Java or C++;
- Front-end technologies including React, JavaScript, HTML, or CSS;
- Container orchestration tools including Kubernetes or Docker;
- Data lake frameworks including Apache Hudi, Delta Lake, or Iceberg;
- Batch processing frameworks including Apache Spark or Apache Hive;
- Real-time OLAP engines including ClickHouse, Apache Pinot, or Apache Doris;
- Stream processing and message queues using Apache Flink and Apache Kafka;
- RPC frameworks (e.g., gRPC or Thrift) and Protocol Buffers;
- Caching strategies using Redis or in-memory caches;
- Designing high-availability distributed systems with high-throughput traffic for machine learning inference or model serving.