Sorry. This page is not yet translated.
Gojek

The fastest courier, transport, food delivery and shopping services provider in Indonesia.

Principal Engineer - Matchmaking - Marketplace
Bangalore, IN
Job Description / Skills Required

About the Role:
 
We are the Matchmaking team in the Mobility Marketplace group. We match Gojek demand with the right supply - optimally matching customer orders across Gojek (Food, Transport, etc) with "right" drivers. We are the brain of the Gojek on-demand platform. The efficiency of our matching technology directly impacts customer experience & driver experience as well as unit economics of the platform. We match more than 5 million orders a day. 
 
Some of the key problem statements that our team works on are - how to intelligently pair drivers to customers to provide lowest pickup times for all customers; how to make our service more affordable by pairing demand on overlapping routes; how to fairly distribute customer orders across our driver base, etc.
 
We achieve these objectives through building on-demand intelligence using real time-data, machine learning and cutting edge technology.
 
As a “Principal Software Engineer”, you'll work closely with product, operations, data science, and engineering teams throughout the company. 

What You Will Do

  • Design and develop highly scalable, reliable, and fault-tolerant systems with minimal guidance for one of the world’s fastest growing unicorns
  • Improve others’ ability to deliver great quality work and is someone, the team members look up to in terms of craft
  • Pair with team members on functional and non-functional requirements and spread design philosophy and goals across the team
  • Proactively manage stakeholder communication related to deliverables, risks, changes, and dependencies
  • Partner with the product management team to define and execute the feature roadmap
  • Coordinate with cross-functional teams (Mobile, DevOps, Data, UX, QA, Business, etc.) on planning and execution
  • Proactively share information, and facilitate communication for multiple stakeholders to eliminate information asymmetry
  • Operate to strengthen teams across their product with their knowledge base
  • Contribute to improving team relatedness, and helps build a culture of camaraderie
  • Continuously refactor applications to ensure high-quality design

What You Will Need

  • 8+ years of relevant experience. Hands-on in any object-oriented or functional programming language i.e. Java, Golang, Clojure, Python, Ruby etc.
  • The ability to go into depth and breadth across tech stack used in the product vis-a-vis backend services, machine learning, data engineering, mobile, web development, data and analytics, infrastructure
  • Experienced with various architectural evolutions, identifying systemic bottlenecks and optimising for performance
  • Experienced with Agile programming principles & can put it in practice
  • An innate desire to deliver and a strong sense of accountability for your work
  • Should be able to lead the engineering team and mentor team members
  • Experience troubleshooting server performance ­memory issues, GC tuning, resource leaks etc.
  • Ability to understand and implement Continuous Integration and Continuous Delivery
  • Experienced working with microservices architectures, worked on distributed systems, caching solutions, monitoring and profiling
  • Ability to plan, prioritise, estimate and execute releases with good degree of predictability
  • Ability to scope, review and refine user stories for technical completeness and to alleviate dependency risks
  • Excellent understanding of interactive application development paradigm, memory management, performance/resource optimisations, database interactions, network programming, concurrency and multithreading, fault tolerance, monitoring, security and operability of systems
  • Exposure with Event-Driven Architectures, Kafka, RabbitMQ, Kubernetes or Docker
  • In-depth understanding of Databases and Query Optimizations, knowledge of NoSQL databases