The fastest courier, transport, food delivery and shopping services provider in Indonesia.
Lead Software Engineer (Backend) - Driver Platform
Job Description / Skills Required
About The Role
The Driver Platform Team is responsible for building products & features meeting the technology needs of our driver-partners. You will be directly impacting the livelihood of 2M+ drivers across geographies.
We are looking for engineers who are passionate about maintaining clean and maintainable codebase, also empathise with our driver partners for whom our app is the only way of livelihood. We aspire to become one of the best platforms available for drivers partners in the world.
What You Will Do
- You will be part of the Driver Platform Team responsible to design and develop highly scalable, reliable, maintainable and fault tolerant systems
- Translate business requirements into scalable technical solutions
- Responsible for the overall delivery and the solution architecture of the feature your team will be working on
- Cross team/role boundaries and work with other teams/other roles (Mobile, Web etc) and Communicate, collaborate and work effectively with product and business stakeholders across distributed teams in a global environment
- Writes, co-writes, and reviews design documentation and responsible for participating in the design review process, seeking and providing constructive criticism and take responsibility for multiple services maintained by the team.
- Leads new language/framework POC within your technical focus area. Prioritises and values work that is underrated but increases the predictability, quality & throughput of delivery
- Lead and mentor a team of highly motivated junior engineers; impart design philosophy, goals and improve the code quality across the team. You will be an incident commander for an incident and run the postmortem.
What You Will Need
- 5+ years of hands-on experience in software development - designing, developing, testing and deploying large scale applications in any language or stack.
- Proficiency in at least one programming language Golang/Java/Clojure/Ruby and ability to pick up other languages quickly.
- Design and implement low latency GRPC/RESTful services
- Proficiency in OOP, SQL, Design Patterns, Data modelling. Functional programming is a plus
- Proficiency in PostgreSQL/MongoDB, Kafka and Redis and well versed with Agile methodologies, Writing unit tests and maintaining good coverage (TDD is a Plus).
- Continuously refactor applications and architectures to maintain high quality levels and experience in troubleshooting server performance - memory issues, GC tuning, resource leaks
- Experience with Server monitoring tools (newrelic/sentry/kibana/server logs) and managing and debugging services in a distributed environment. Estimate and execute releases with a good degree of predictability
- Scope, review and refine user stories for technical completeness and to alleviate risks, understand and implement Continuous Integration and Continuous Delivery, understand how complex systems fail (and how to make them not fail)