Software Engineer - Big Data at Uber
About the Role
Uber is one of the fastest growing tech companies in history. Supporting this rapid business growth while developers add features creates a variety of reliability and efficiency challenges. We must ensure we have enough resources to operate the business and our software is stable and performant.
Uber is on the lookout for an outstanding Software Engineer, with a specialization in Data Engineering, to join our Capacity Engineering team in San Francisco. As a Data Engineer, you will help define a holistic vision and build an Infra Data Warehouse solution across a wide variety of focus areas such as capacity planning / management, forecasting, fleet-wide usage monitoring, distributed tracing, benchmarking, budgeting and ordering of hardware. All to help grow Uber's infrastructure while collaborating with shared platform teams, service owners, finance, data scientists and infra leaders.
What You'll Do
- Design and develop large scale distributed systems such as data warehouses and big data pipelines.
- Build scalable, reliable, secure, efficient and highly performant platforms and infrastructure for a variety of analytics and business applications.
- Develop and maintain data tools and solutions (e.g., pipelines, models, tables) to acquire, process, and store data by ensuring the accessibility, reliability, and quality of data for end users.
- Apply techniques of capacity management, security, and optimization to store, maintain, modify, and output data.
- Applying data modeling techniques to organize and transform data into meaningful and valuable output.
- Profile large quantities of data to provide appropriate recommendations for products and/or processes.
- Design and implement automated monitoring for data quality issues that scales with a rapidly expanding warehouse.
- BS or MS in Computer Science or a related technical field, or equivalent experience.
- 3+ years of experience building and managing distributed systems. Sound understanding of distributed system fundamentals.
- Proficient in one of the following programming languages: Go, Java, C/C++. Good scripting skills and the ability to pick up new ones.
- Experience with data engineering, data pipelines, big data systems, data science, SQL, analytics
- Systematic problem solving approach and knowledge of algorithms, data structures and complexity analysis.
- Familiarly with different types of data serialization formats such as Parquet, Avro and Protobuf.
- Understanding of big data infrastructure tools and software such as Kafka, HDFS and Hive.
- Experience with a relational database (MySQL, PostgreSQL)
- Grit, drive and a strong sense of ownership coupled with an appetite for collaboration.
- Bonus points if: You have experience with time-series forecasting or anomaly detection systems, Machine Learning and/or advanced statistical modeling experience.
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 10,000 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.
Uber is proud to be an Equal Opportunity/Affirmative Action employer. All qualified applicants will receive consideration for employment without regard to sex, gender identity, sexual orientation, race, color, religion, national origin, disability, protected Veteran status, age, or any other characteristic protected by law. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements. If you have a disability or special need that requires accommodation, please let us know by completing this form.