About the Role
Uber's communication platform team is growing rapidly and seeking a software engineer who will collaborate with product managers, engineering teams, and 3rd party providers to ensure that our voice and messaging services and products are operating seamlessly across the world. As part of our Communications Platform team, this position is critical to ensuring that our users have the best experience with our communication products and providing prompt resolutions for any issues in voice and messaging services. The voice and messaging services are powering several Uber's core business for our users to communicate with each other, driver and restaurant partners and customer service teams seamlessly, which is one of the most critical flows in Uber's user experience.
What the Candidate Will Need / Bonus Points
\\---- What the Candidate Will Do ----
Work with product managers, architects and engineering managers to understand and define product requirements and roadmaps
Technically lead one or more teams to deliver features across Uber's entire technical stack
Adapt to meet the needs of our massive growth and rapidly evolving systems.
Write maintainable and extensible code with high quality tests and documentation.
Understand and use existing systems efficiently, contributing to them where necessary
Ship high quality products with an eye on scale, reliability and engineering excellence
\\---- Basic Qualifications ----
8+ years of experience in backend software engineering.
BS or MS in Computer Science or a related technical field
Sound understanding of computer architecture and CS fundamentals.
Experience with one or more of the programming languages (Go and Java preferred), data stores (MySQL, Cassandra, Redis, etc) and distributed systems design with messaging queues (Kafka)
Experience designing and working with systems at scale serving millions of users and high uptimes.
Demonstrated experience of working with large data volumes
Managed the design and implementation of complex cross team projects independently
\\---- What the Candidate Will Do ----
Architecture skills: Knowledge of data structures and an eye for architecture. You can discuss the tradeoff between architectural choices, both on a theoretical level and on an applied level.
Strong coding/debugging abilities: You have advanced knowledge of at least one programming language and are happy to learn more. When working on backend, you'll primarily be working in Java. However you should know Go Lang as well, as all new development would be in Go. You should also know commonly used SQL/No SQL solutions, industry standard monitoring solutions and distributed systems components such as Message Queues, distributed data centers and associated tradeoffs, caching solutions etc
Fast learner: We're looking for software engineers who thrive on learning new technologies and don't believe in one-size-fits-all solutions. You should be able to adapt easily to meet the needs of our massive growth and rapidly evolving business environment.
A team player attitude: You believe that you can achieve more on a team - that the whole is greater than the sum of its parts. You rely on others' candid feedback for continuous improvement. You technically lead teams to deliver software that scales and is reliable, with great quality and on time.
Design and business acumen: You understand requirements, whether you're working on an API used by other developers, an internal tool consumed by our operation teams, or a feature used by millions of customers, your attention to details leads to a delightful user experience.
Experience with established design patterns and microservices architecture. Understanding of systems such as HDFS, Hive and use them for data ingestion and querying
Excellent understanding of testing methodologies: Unit Testing, Integration Testing, Interface Testing, Mocks etc
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.