Data Engineer II
Uber
Bengaluru, Karnataka, India
What the Candidate Will Need / Bonus Points ---- 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. ---- Basic Qualifications ---- Bachelor's degree in Computer Science or related technical field or equivalent practical experience Experience coding using general purpose programming language (eg. Java, Python, Go, Javascript, Fusion) Understanding and exposure to data tech stack eg: Spark, Hive. ---- Preferred Qualifications ---- Coding chops, clean, elegant, bug-free code in languages like JS, React, nodejs, open to new stack as needed Provide technical direction and hands-on solving of technical problems in the area of distributed systems Strong desire to learn and grow, while building the outstanding systems Work in close collaboration with other specialists, product managers, designers, and operations to ship useful and fabulous experiences to our customers Passionate about helping teams grow by inspiring and mentoring engineers. Ability to Identify and resolve performance and scalability issues