About The Role
At Uber, customer obsession drives everything we do. We are dedicated to building products that provide exceptional support for our Riders, Drivers, Eaters, and Restaurants. Our Customer Obsession team focuses on creating seamless experiences through in-app self-service, omnichannel communications, and tailored support for multiple lines of business. We leverage cutting-edge technologies, including our internal tool Bliss Platform for agent support, to deliver high-touch interactions across Greenlight Hubs, Centers of Excellence (COEs), and Business Process Outsourcing (BPO) partners worldwide.We are seeking a Backend Software Engineer II to join our dynamic engineering team. The ideal candidate is a seasoned software engineer with experience in designing, building, and maintaining scalable backend systems. This role demands technical depth, problem-solving expertise, and a focus on fostering collaboration to ensure high-quality design, development, and delivery of complex software projects.You will work on projects spanning multiple teams, contribute to the optimization of system performance, advocate for engineering best practices, and lead efforts to innovate, scale, and maintain reliability while aligning technical efforts with business goals.You will play a crucial role in building and enhancing the tools and systems that support our customer communication channels. You'll have the opportunity to work with innovative technologies, including the integration of phone IVR systems, Video Integration, and Generative AI & Self serve automation solutions, ensuring a seamless customer service experience across multiple modalities and extending these platforms to support B2B customer support to New Line of Business within Uber.
What The Candidate Will Need / Bonus Points
---- What the Candidate Will Do ----
- As a software engineer II, you will develop high-quality system designs, ensuring scalability, maintainability, and performance while considering both short- and long-term trade-offs.
- Exercise sound engineering judgment to make decisions around design patterns, architectural trade-offs, and feature prioritisation.
- Contribute to team-wide architecture decisions and drive efforts to modularise and reuse components across services.
- Document technical designs (e.g., ERD, architecture design notes, engineering wikis) to maintain transparency, consistency, and alignment.
- Foster team-wide knowledge sharing and establishing training opportunities related to software design patterns and technical best practices.
Basic Qualifications
- 2.5+ years of relevant software development experience in one or more programming languages (e.g. Golang, Java, Python, C/C+) and distributed system design.
- Experience designing, implementing, and maintaining scalable RESTful APIs and micro services.
- Experience with database design and management (SQL and NoSQL), system performance optimization, and high-availability system design.
- Experience with CI/CD pipelines, cloud infrastructure (AWS, GCP, Azure), and containerisation (Docker, Kubernetes).
- Familiarity with monitoring tools, incident response, and alerting mechanisms.
- Experience collaborating on projects and working efficiently as part of a team
- Thriving in ambiguity and having a go-getter attitude
Preferred Qualifications
- Bachelor's degree in Computer Science or related field
- Background in large-scale backend infrastructure
- Knowledge of data structure and algorithms and an ability to use them practically when implementing solutions
- Demonstrated experience working collaboratively in cross-functional teams
- Prior experience building systems that are user-centric, reliable, and optimised for scalability.
- Proven ability to balance technical and business trade-offs while aligning engineering solutions with organisational objectives.