Get to Know Our Team
In Agoda’s Back End Engineering department, we build the scalable, fault-tolerant systems and APIs that host our core business logic. Our systems cover all major areas of our business: inventory and pricing, product information, customer data, communications, partner data, booking systems, payments, FinTech and more. These mission-critical systems change frequently with dozens of releases per day, so we must employ state-of-the-art CI/CD and testing techniques in order to make sure everything works without any downtime. We also ensure that our systems are self-healing, responding gracefully to extreme loads or unexpected input. In order to accomplish this, we use state-of-the-art languages like Scala and Go, data technologies like Kafka and Spark, and agile development practices. Most importantly though, we hire great people from all around the world and empower them to be successful. Whether it’s building new projects like Flights and Packages or reimagining our existing business, you’ll make a big impact as part of the Back End Engineering team.
The Opportunity
You might call yourself “full stack” or “back end” or you might consider yourself an authority in a certain field, but you have a keen interest in how the different systems work together.
We’d love to hear from you if you are skilled in any of the technologies we work with (note – we are not looking for you to have them all). We are interested in speaking to persons of any level from individuals just starting their IT careers to experts in their field, although this particular position is better suitable to veteran engineers, with expertise in certain technologies, and especially those that had lead projects, initiatives and/or teams.
In This Role, You’ll Get to
- Think and own the full life cycle of our products, not just a single piece of code – from business requirements, technology selection, coding standards, agile development, unit and application testing, to CI/CD and proper monitoring
- Design, develop and maintain platforms across the back end area
- Improve scalability, stability, and efficiency of our existing systems
- Write great code and help others write great code
- Collaborate with other teams and departments
What You’ll Need to Succeed
- 7+ years’ experience under your belt developing performance-critical applications that run in a production environment using Scala, Java, C# or Kotlin
- Experience in leading projects, initiatives and/or teams, with full ownership of the systems involved
- Data platforms like SQL, Cassandra or Hadoop. You understand that different applications have different data requirements
- Good understanding of algorithms and data structures
- Strong coding ability
- You are passionate about the craft of software development and constantly work to improve your knowledge and skills
- Excellent verbal and written English communication skills
It’s Great If You Have
- Experience with Scrum/Agile development methodologies
- Experience building large-scale distributed products from scratch
- Core engineering infrastructure tools like Git for source control, Gitlab CI/CD for Continuous Integration docker and kubernetes for deployments
- Hands-on experience working with technology like queueing systems (Kafka, RabbitMQ, ActiveMQ, MSMQ), Spark, Hadoop, NoSQL (Cassandra, MongoDB, CouchBase), Play framework, Akka library