About the Role
We are looking for Backend engineers for the Transport team, who appreciates good engineering and user experience. The person should be passionate about maintaining clean and maintainable codebase. Your primary focus will be the development of all server-side logic, definition, and maintenance of the central database, and ensuring high performance and responsiveness to requests from the front-end.
What You Will Do
Work cross-functionally with product, design, backend and other teams across regions and independently ship world-class products and features with minimal guidance.Design and develop highly scalable, available, reliable, secure and fault-tolerant systems with minimal guidance for one of the world’s fastest-growing companies in travelWrite code that is clear, concise, performant, tested and easily understood by othersActively mentor associate software engineers in the teamTranslate business requirements into scalable and extensible designWrite, co-write and review design documentationPartner with the product management team to execute the feature roadmapCommunicate, collaborate and work effectively across cross-functional teams in a global environmentParticipate in recruitment to hire high-quality engineersBuild and manage automated build/test/deployment environmentsImprove engineering standards, tooling and processesDebug production issues across services and levels of the stack
What you'll need
Have 3+ years of hands-on experience in developing, testing and deploying large scale applicationsEnjoy working in Ruby, Go, Clojure or JavaThink about systems and services and write high-quality codeHave sound knowledge of unit testing methodologies and frameworksHave the ability to understand and implement Continuous Integration and Continuous DeliveryHave good verbal and written communication skillsHave the experience working with Agile methodologies, Test Engineering and AutomationHave experience troubleshooting server performance - memory issues, GC tuning, resource leaks etcHave an 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 systemsHave the ability to estimate and execute releases with a good degree of predictability