Senior Software Engineer, Communications Platform
Uber
Marketing & Communications, Software Engineering
Hyderabad, Telangana, India
Posted on Monday, August 28, 2023
About The RoleAs a Software Engineer at Uber, you’ll work on code closest to the business. You will build business-critical products and handle real-time traffic from delivery services that serve communications to millions of people, therefore contributing directly to the bottom line of the organization. You’ll build and work with real-time services and batch pipelines that track and measure communications sent to millions of Uber users daily (e.g., Rider, Earner, eater, etc.).This involves working with world population-scale datasets (billions of rows). Build a system to provide insights about inherent patterns hidden in large data volumes. Analyze and optimize various workflows and data pipelines.Partnering with stakeholders and leading team efforts to build and maintain backend services and solutions to support user-facing products, downstream services, or infrastructure tools and platforms used across Uber.We innovate communications surfaces & platforms at Uber scale, enabling all lines of business to reliably deliver billions of personalized, timely, compliant, and relevant messages across all channels. Our durable, reliable, channel agnostic platform also produces Uber's messaging analytics, allowing us to build intelligent systems on top to optimize message relevance & effectiveness and chargeback. Our platform drives global top & bottom-line growth and enables friction-less end to end UX.---- What the Candidate Will Do ----
- You’ll build and work with real-time services and batch pipelines that track and measure the impact of communications sent to millions of Uber users daily (e.g., Rider, Earner, eater, etc.).
- Build systems that’ll allow sending precise but accurate communications to the user resulting in higher user engagement metrics.
- Build systems that’ll allow the ops team to track, and audit delivery metrics across various delivery channels
- Writes and documents code to solve complex problems that are not well-defined and span multiple related areas or projects.
- Writes tests to verify the functionality and stability of code; establishes monitoring and alerting systems to ensure code reliability; contributes to defining testing, monitoring, and alerting standards and leads team efforts to execute against them.
- Solicits and responds to code and design review feedback to optimize code and design; defines and encourages the adoption of standards and best practices within the team for code and design reviews.
- Partners with stakeholders to understand customer and/or business requirements.
- Translates requirements into effective design documents (e.g., ERDs, RFCs) to address clearly defined business or technical problems.
- Provides expertise to make trade-off decisions between short-term results and long-term goals.
- 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