The fastest courier, transport, food delivery and shopping services provider in Indonesia.
Principal Software Engineer - Marketplace Supply
Job Description / Skills Required
About The Role
Marketplace is the group that owns, improves, and manages Gojek's liquidity & experience across the Mobility Marketplace. In this team, you'll work closely with product, operations, data science, and engineering teams throughout the company. We are responsible for the pillars of technology, science, and strategy across the supply-and-demand matching of over two billion global orders in 2019.
As a Principal Software Engineer within the Mobility Marketplace team, you will be responsible for balancing driver supply with customer demand spread across multiple products and geographies, finding the right incentives for our supply at the right time, providing the right price for each booking to balance demand and supply.
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 team members look up to in terms of craft.
- Pair with team members on functional and nonfunctional 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 architecture, 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.