Software Engineer II - Ads Metrics & Attribution
Uber
Job Overview
Who's the hiring manager?
Sign up to PitchMeAI to discover the hiring manager's details for this job. We will also write them an intro email for you.

Job Description
About The Role
The Ads Metrics & Attribution team builds the high-throughput streaming infrastructure that serves as the mission-critical "source of truth" for Uber's global advertising business. As a core member of this team, you will dive deep into Apache Flink internals to architect a resilient, low-latency platform capable of validating and attributing billions of ad engagement signals in real-time. Your work will directly define the reliability of our metrics and the scalability of our pipelines, providing the foundational data that drives ROI for advertisers and powers growth across Uber's entire ads ecosystem.
What You'll Do
- Design, develop, and test scalable streaming features using Apache Flink and Java/Scala to support new ad products and attribution requirements.
- Maintain and optimize existing data pipelines to ensure the high-throughput transport of billions of ad engagement signals with 100% accuracy.
- Collaborate with senior engineers to perform deep dives into Flink internals, troubleshooting performance bottlenecks and improving system resilience.
- Participate in the team's on-call rotation, monitoring the health of production streaming jobs and responding to system alerts to maintain high availability.
- Write clear technical documentation and contribute to code reviews to ensure high engineering standards across the Ads Metrics platform.
Basic Qualifications
- Bachelor's degree or equivalent in Computer Science, Engineering, Mathematics or related field.
- 2 years full-time Software Engineering work experience, WHICH INCLUDES 1-year total technical software engineering experience in one or more of the following areas: Programming language (e.g. C, C++, Java, Python, or Go).
- Strong grasp of data structures, algorithms, and object-oriented design, with a focus on writing clean, testable code.
Preferred Qualifications
- Experience designing and developing backend services or data pipelines. You should understand the basics of how systems scale and be familiar with concepts like REST APIs, databases, or message queues (e.g., Kafka).
- A track record of debugging complex issues and a desire to look under the hood. You should be excited about learning stream processing (Apache Flink) and building systems where data accuracy and reliability are the top priorities.
- Prior experience building or maintaining applications using Apache Flink or similar stream-processing frameworks, with an understanding of state management and watermarks.
- Proficiency in Scala, with an emphasis on writing performant, thread-safe, and highly maintainable code within a distributed systems context.
- Familiarity with the AdTech ecosystem, specifically around metrics collection, attribution logic, or handling high-volume engagement signals like clicks and impressions.
- A proven interest in systems performance, such as experience profiling JVM applications or optimizing resource utilization in data pipelines.
Key skills/competency
- Apache Flink
- Java
- Scala
- Distributed Systems
- Data Streaming
- Real-time Processing
- AdTech
- Data Pipelines
- Algorithms
- Data Structures
How to Get Hired at Uber
- Research Uber's culture: Study their mission, values, recent news, and employee testimonials on LinkedIn and Glassdoor to align your application.
- Tailor your resume: Highlight extensive experience with Apache Flink, Java/Scala, and distributed systems, specifically relevant to ads metrics and real-time data processing.
- Prepare for technical interviews: Sharpen your skills in data structures, algorithms, and system design, with a particular focus on streaming architectures and high-throughput data pipelines.
- Understand AdTech fundamentals: Familiarize yourself with advertising metrics, attribution models, and the challenges of handling high-volume engagement signals in a real-time environment.
- Showcase problem-solving skills: Be ready to discuss specific examples of how you've debugged complex system issues, optimized performance, and ensured data accuracy in previous roles.
Frequently Asked Questions
Find answers to common questions about this job opportunity
Explore similar opportunities that match your background