Sr Software Engineer - Java Language Platform (Developer Experience)

Uber Overview

Description

Use of Java is growing steadily at Uber. In every area of the company, engineers are building infrastructure, services, and scalable distributed systems in Java. As Uber’s engineering team and grows and matures, we need the very best of the Java development community to join us and help design and build world-class libraries, tools, standards, practices and educational resources.

You’ll join a new team of language experts solely focused on improving the quality, performance and stability of Java code across the company. You’ll work with the most talented, high-velocity engineering teams and ensure that the most pressing development problems are solved, and the solutions are reusable for engineers everywhere in the organization. The code you build and maintain will be at the heart of critical systems across Uber, from infrastructure to user-facing products and services. You’ll empower a large and quickly-growing engineering organization to do its best work and deliver high-quality products fast. You’ll ensure that moving fast doesn’t mean sacrificing stability, quality, performance or maintainability. And along the way, you’ll get to shape the very future of engineering at Uber.

We need passionate, skilled developers who can think at both the code and organizational levels. Engineers who care deeply about building systems the right way, who are eager to take on ownership of business-critical code, and who are opinionated and uncompromising in their pursuit of technical excellence.

Responsibilities

  • Design, develop and maintain world-class Java tools and libraries.
  • Drive the development of Java programming standards, practices and education.
  • Work on open-source Java projects and build Uber’s Java open-source presence.
  • Design and build infrastructure and systems to help engineering teams measure and improve their development velocity.
  • Work closely with engineers across the company to solve critical software development problems in principled and reusable ways.

Requirements

  • Strong experience with and knowledge of the Java programming language.
  • Solid understanding of Java tools, frameworks, libraries and practices.
  • Experience building reusable tools, libraries and software patterns for developers.
  • Background in infrastructure and distributed systems.
  • Strong knowledge of algorithms and data structures.
  • Passion for software quality and engineering best practices: patterns, testing, code reviews, documentation.
  • Desire to work on and contribute back to open-source projects.
  • Ability to work across teams and strong communication skills.
  • BS, MS, or PhD in Computer Science or equivalent work experience.

Desired

  • Experience working on major, distributed software projects in a large organization.
  • Experience leading or maintaining large open-source projects.
  • Contributions to Java open-source projects.
  • Experience as a technology-specific speaker or evangelist.

Meet Some of Uber's Employees

Brian M.

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.

Swathy P.

Operations & Logistics Manager

Swathy is part of the team that is the driving force behind Uber’s transportation options. She helps sign up the drivers, makes sure the vehicles run smoothly, and tackles any logistical bumps along the road.


Back to top