About the Role Ubers 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 Ubers 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 Ubers 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 Ubers 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, youll 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: Were looking for software engineers who thrive on learning new technologies and dont 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 youre 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
Keyskills: Computer science Coding MySQL Debugging Data structures Customer service Unit testing Distribution system Monitoring SQL
Ubertal was created in 2011 in Silicon Valley with the initial objective of helping high growth software companies solve their toughest business challenges. Through this process weve identified common challenges faced by companies and have developed our own software solutions (IP) and co- created s...