- - - - What the Candidate Will Do ----
- Code: Writes high-quality code (i.e., reliable, readable, efficient, testable), provides quality code reviews, and creates comprehensive tests and quality documentation using software engineering principles. This includes knowledge of data structures, algorithms, programming and associated programming languages and frameworks, and major phases/activities of the software research and development life cycle (e.g., requirements, design, build, experiment, test, debug, deploy, monitor). Identifies, reports, and solves technical problems according to standards and best practices.
- Design: Uses software design principles and methods, knowledge of the capabilities and limitations of existing software solutions at Uber, and an understanding of own work's impact on other areas to reuse, extend, or, when needed, build effective architectures that are integrated with existing solutions and in alignment with needs and goals across areas. Learns and anticipates current and future design requirements and evaluates trade-off decisions to design systems that meet current needs and can be extended for future needs
- Execute: Executes work with drive and appropriate sense of urgency to deliver technical and business impact. Plans, organizes, and manages tasks, resources, and relationships to accomplish work accurately and on time. Defines and diagnoses problems and determines an appropriate solution, recommendation, or decision while logically evaluating alternatives and factors (e.g., resources, costs, tradeoffs). Accepts responsibility and accounts for own actions and work.
- Collaborate: Builds trusting and collaborative relationships and rapport with different types of people and teams. Respects the unique backgrounds and contributions of others. Recognizes conflict or disputes among people and situations, learns and works to understand different points of view. Resolves and aligns discrepancies across teams and organizations to accomplish team-, organization-, or Uberwide goals. Provides constructive feedback to others in a tactful and impactful manner.
- Be efficient: Creates and promotes efficiency and speed within Uber technology, people, and teams by leveraging and extending existing solutions when possible, and by developing solutions that balance long-term productivity with short-term needs. Identifies and addresses inefficiencies and redundancy in day-to-day work. Improves and advocates for processes and technologies that enhance the efficiency and performance of software and systems
- Create culture: Enhances the effective functioning of Uber by participating in and promoting activities and efforts that contribute to excellence and shape and evolve team-, organization-, and Uber-wide culture (e.g., reviewing diffs, refactoring code, participating in recruiting, hiring, and promotion activities, joining an ERG). Contributes to the broader community through participation in internally- and/or externally-focused engagements (e.g., tech talks, open source, conferences, team building)
- - - - Basic Qualifications ----
- 3+ years of industry experience
- Solid experience in Android development
- 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 team for code and design reviews.
- Delivers and monitors solutions in the production environment to ensure bugs and inefficiencies are identified and resolved.
- Participates in on-call rotations and serves as an escalation point for other engineers to troubleshoot and manage severe incidents in production; encourages the adoption of best practices in incident management within team.
- 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.
- - - - Preferred Qualifications ----
- Good experience in architecture design, high availability, and high-performance systems.
- Ability to learn quickly on the go. We're looking for software engineers who thrive while learning new technologies and don't believe in one-size-fits-all solutions.
* Accommodations may be available based on religious and/or medical conditions, or as required by applicable law. To request an accommodation, please reach out to .