About the Role
We are looking for Lead Backend engineers for the Transport team who appreciates good engineering and user experience. The person should be passionate about maintaining a clean and maintainable codebase. Your primary focus will be technically leading the development and management of mission critical systems.
What You Will Do
Design and develop highly scalable, highly available, reliable, secure and fault tolerant systems with minimal guidance for one of the world's fastest growing company in travelTranslate business requirements into scalable and extensible designPair with team members on functional and nonfunctional requirements and spread design philosophy, goals and improve the code quality across the teamPartner with the product management team to define and execute the feature roadmapCoordinate with cross functional teams (Mobile, DevOps, UX, QA etc.) on planning and executionProactively manage stakeholder communication related to deliverables, risks, changes and dependenciesProvide technology leadership to the team and foster engineering excellenceCommunicate, collaborate and work effectively across cross functional teams in a global environmentBuilding and managing automated build/test/deployment environmentsResearch new technologies and tools that enable building the next generation of Gojek services
What you'll need
5+ years of hands on experience in designing, developing, testing and deploying applications on Java, Ruby or Go for large scale applicationsDeep knowledge of Linux: CentOS, Fedora, or UbuntuDeep knowledge of one of the following platforms - Go, Ruby or Java (JVM)Proficient in OOP, SQL, Design Patterns. Experience with functional programming is a plusData modelling experience in Relational and NoSQL databasesAbility to understand and implement Continuous Integration and Continuous DeliveryWell versed with Agile methodologies, TDD and Test Engineering and AutomationAbility to design and implement low latency RESTful servicesExperience troubleshooting server performance - memory issues, GC tuning, resource leaks etc.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 systemsContinuously refactor applications to ensure high quality designAbility to plan, prioritise, estimate and execute releases with good degree of predictabilityAbility to scope, review and refine user stories for technical completeness and to alleviate dependency risks