Software Engineer Ii- Grocery & Retail

Uber Uber · Consumer · San Francisco, CA +1 · Engineering

Software Engineer II role at Uber focused on building and maintaining backend services for the Grocery & Retail business line. Responsibilities include designing, developing, and maintaining scalable software solutions, collaborating with cross-functional teams, and leading the development lifecycle. Requires a Bachelor's degree in a related field with at least 1 year of experience or a PhD, and proficiency in languages like Java, C++, Python, or Go. Preferred qualifications include a Master's degree, extensive backend development experience, and experience with distributed systems and microservices.

What you'd actually do

  1. Design, develop, and maintain robust and scalable software solutions
  2. Collaborate with product managers, cross-engineering teams, data scientists and other partners to gather requirements and translate them into technical specifications
  3. Identify opportunities and lead of the entire development lifecycle end-to-end, from architecture design and coding to deployment
  4. Conduct thorough code reviews, offering constructive feedback to maintain high code quality and elevate coding standards
  5. Stay up-to-date with the latest technologies and industry trends, evaluating their potential impact on our software systems and recommending appropriate integrations or improvements

Skills

Required

  • Bachelor's degree or equivalent in Computer Science, Engineering, Mathematics or related field with at least 1 year of full-time Software Engineering work experience OR PhD in Computer Science, Engineering, Mathematics or related field
  • Proficiency in at least one programming language such as Java, C++, Python, or Go
  • 2+ year of experience with backend development, building and delivering end-user products.

Nice to have

  • Master's degree or higher in Computer Science, Engineering, Mathematics or related field
  • More than 3 years of full-time Software Engineering work experience
  • Proven experience building highly available distributed systems (at Uber scale) and working across multiple backend services
  • Experience working on scalable backend systems utilizing a microservices architecture
  • High bar for quality as demonstrated by code reviews, documentation, unit and integration testing
  • Experience with optimization techniques and algorithmic development
  • Strong problem-solving skills, with expertise in algorithms, data structures, and complexity analysis