Interview Guide Oct 02
Oct 023 rounds
Agoda is an online travel booking platform for accommodations, and flights. It builds and deploys cutting-edge technology that connects travelers with more than 2.5 million accommodations globally.
A typical day in the role of Software Engineer at Agoda involves the creation of new end to end systems, building advanced architectures, creation of new features on Agoda's high uptime / frequently published websites and apps, development of fast and reliable automated testing systems and working in a culture that is always looking to improve Agoda's quality, tools, and efficiency.
Role and responsibility
- Lead development of features, experiments, technical projects and complex systems
- Be a technical architect, mentor, and driver towards the right technology
- Build high volume websites with current technologies including TS, React, and GraphQL
- Continue to evolve our architecture and build better software
- Be a major contributor to our agile and scrum practices
- Get involved with full stack engineering and collaborate with server, other client, and infrastructure technical team members to build the best solution
- At least 3 years of experience in building products as a Product Manager
- Strong affinity with technology, especially analytics-based, cloud-based and API-driven products
- Domain experience around bid management and/or travel is preferred
- Previous hands-on experience as an engineer, or equivalent technical role, is nice to have.
- Proven experience of working effectively with and communicating to a diverse set of stakeholders (commercial & machine learning teams).
- Be commercially aware and have a strategic mind, able to identify business opportunities and deliver against them.
- Ability to see the big picture, without losing sight of the product details.
- An analytical orientation and strong problem-solving skills demonstrated by the ability to structure issues and analyze alternative solutions.
- Team player with a bottom-up ideation process.
- Able to understand and formulate meaningful business metrics.
- Fluent in the English language both spoken and written.
Agoda Software Engineer Salary
- Entry-level salary: USD 105,000.
- Senior positions: USD 257,000.
- Median salary: USD 165,000 with the base component being USD 120,000, stock component being USD 30,000 and bonus being USD 15,000.
Interview Process Overview
Usually, the interview process for the Software engineer role at Agoda consists of 3 rounds as under:
- Recruiter Screen
- Phone Screen
- Onsite Round
Here's a more detailed description of the interview process:
The recruiter screen is a 45-minute interview with the hiring manager. Here, the interviewer is going to assess whether your experience and skill sets are a good match for the job you’ve applied for. In other words, your cultural and experiential fit for the role & company will be tested. Most of the questions are going to be based on your previous experience/resume. So, be thorough with every word on your resume. Make it a point to keep answers short, crisp & structured. Some questions regarding your motivation for the role and company might also be asked. So, prepare some good points for these questions beforehand, specially the expected "Why Agoda?".
Once you have cleared the Recruiter Screen, you will proceed to the Phone Screen. The phone screen is a telephonic interview round with an Agoda Software Engineer. This interview will last for about 1 hour. The questions in this round are almost all technical. Questions in this round are going to be theoretical, conceptual, and will also involve some coding through a shared online editor.
Here are some important topics from which questions are asked in this round:
- Data Structures
- Distributed Systems
Most asked questions in the Phone Screen
- Tell me the key advantages of Insertion Sort, Quicksort, Heapsort and Mergesort. Also explain the best, average, and worst case time and memory complexity in these algorithms.
- Write an algorithm that finds the number of ways in which you can move N meters by doing jumps of 1, 2, 3, 4, or 5 meter lengths. Assume that N can be a very large number. What is the resulting complexity?
- Can you tell me what A* is? What are its implementation details? What are its advantages and drawbacks in regard to traversing graphs towards a target?
- Tell me the logic to find the missing number in a given integer array of 1 to 100?
- How would you remove duplicates from an array without using any library?
- What is the process to remove duplicate nodes in an unsorted linked list?
- How do you find all permutations of a string?
- How would you reverse a singly linked list without recursion?
- What Is Sticky Session (Session Affinity) Load Balancing? What do you mean by 'Session Affinity'?
- Design Google Docs without collaborative editing, but with scalability and performance of a web scale product.
- What security mechanisms are deployed in Distributed Systems?
- Have you heard of the term middleware? What is its use?
- What are the advantages and disadvantages of Distributed Systems?
Want to practice more such questions with an Agoda Software Engineer?→ Book now!
On clearing the phone screen, you will get a call for the onsite round. The onsite round for the Software Engineer role at Agoda consists of 3 interviews, each being an hour long.
The first two interviews are technical while the 3rd and last one is a behavioural interview.
The technical interviews last for about 2 hours, done in two sittings. These are conducted by Agoda's Senior Software Engineers.
The technical interview of the onsite round is a more detailed version of the phone screen round. In addition to topics like Algorithms, Data Structures, Scalability, and Distributed Systems, questions are going to be asked from areas such as Multithreading & Concurrency, Coding Architecture, and System Design.
The behavioural interview is 1-hour long, and is conducted by senior managers from Agoda. This interview mainly aims to test a candidate's motivation for the role, leadership skills, and how good a fit they will be in the company. Questions are mostly situation-based.
- Focus on scenario-based system design and data structure questions as these are asked often.
- Cover theory of static parts of concepts in sufficient depth as interviewers love to deep dive in the onsite round.
Most asked questions in the technical interviews (Onsite Round)
- Given an array of numbers, how would you go about writing an algorithm to find the sum of a certain subarray? Is it possible that we query an arbitrary number of times for the sum of any subarray? If we wanted to be able to update the array in between sum queries, what would be the optimal solution then? Describe the preprocessing and query complexity for each solution?
- Suppose, you have to design a scheduler that schedules a set of tasks. Some of the tasks would need to wait for some other tasks to complete prior to running themselves
Write an algorithm that would design and implement such a scheduler.
- Given a set of date intervals represented by StartDate and End Date, how would you efficiently calculate the longest timespan covered by them? What will be the time complexity?
- Given a numeric array of length N, the task is to design a function that finds all positive numbers in the array that have their opposites in it as well. What approaches are possible for solving optimal worst case and optimal average case performance, respectively.
- How would you find the fourth element from the end in a linked list in one pass?
- Write a function to replace each element in an array with it's rank.
Multithreading & Concurrency
- Let's say you have an application where you have multiple readers and a single writer. How would you design a lock which lets multiple readers read at the same time, but only one writer write at a time?
- Suppose at the end of a political conference, members of the Ruling and Opposition party are trying to leave the venue and order Ola cab rides at the same time. To avoid conflicts, each ride can have either all opposition or all ruling members or two opposition and two ruling party members. All other combinations can result in a fist-fight.As the Ola developer, your task at hand is to model the ride requestors as threads. Once an acceptable combination of riders is possible, threads are allowed to proceed to ride.
Scalability and Coding Architecture
- Can you tell us the differences between continuous integration, continuous delivery, and continuous deployment?
- What do you understand by Shared Nothing Architecture? How Does It Scale?
- How would you explain the concept of lower latency interaction?
- Design a ride sharing service such as Ola.
- What do you understand by High Availability Design?
Most asked questions in the Behavioural interview:
- Why do you want to work for Agoda?
- What is your best experience so far as a Tech team leader?
- Why do you want to pursue software engineering as a career?
- What professional hardships have you faced so far, and how did you overcome them?
Want to ace the onsite round?→ Book now!
So, this was a quick but exhaustive round up of the Agoda Software Engineer interview process and prep strategy.
We believe that the Agoda Software Engineer interview can be cracked quite easily if candidates prepare smartly and follow the tips we have mentioned in the guide.
Thanks for reading!
All the best!
How many rounds are there in the Agoda Software engineer interview?
There are 3 rounds- Recruiter Screen, Phone Screen, and Onsite Round.
What is the difficulty level of questions in the interview?
Questions are generally of moderate difficulty level, but the onsite round may have a few difficult questions.