The fastest courier, transport, food delivery and shopping services provider in Indonesia.
Principal Software Engineer - Marketplace Reliability
Job Description / Skills Required
ABOUT THE ROLE
As a “Principal Software Engineer”, you'll work closely with product, operations, data science, and engineering teams throughout the company.
We are the Reliability team in the Mobility Marketplace group. Our prime objective is to make sure that any new feature in the Marketplace domain can be shipped for experimentation by business in a matter of days. We act as a central binding agent for Pricing, Supply and Matchmaking teams and make sure that the overall architecture and infra is flexible, easily extensible and scalable. We achieve these objectives through building on-demand intelligence using real time data, using latest infrastructure scalability practices, using machine learning and cutting edge technology.
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 decacorns
- 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
- 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.
- Familiarity with sharding and partitioning strategies.
- Has worked with Kubernetes or a similar infrastructure services/workload manager.
- 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