Agoda | Staff Software Engineer
Summary
I interviewed for a Senior Software Engineer (Frontend) position at Agoda in Bangkok, completed three online rounds covering DSA, web fundamentals, and frontend architecture, and was ultimately rejected.
Full Experience
This was around July 2026, for the role of Senior Software Engineer (Frontend) at Agoda's Bangkok office, with relocation and visa support. All interview rounds were online on HackerRank. Each round happened with a gap of a week.
I applied directly through Agoda career website. The invite and interview round timing coordination were done on email entirely.
Actually I had applied for "Staff Software Engineer" but after round 2, I was down leveled to "Senior Software Engineer".
Round 1
Two DSA questions, easy level, on HackerRank, total 1 hour.
Question 1 was Leetcode 1331 - Rank Transform of an Array (https://leetcode.com/problems/rank-transform-of-an-array/description/)
Question 2 was Leetcode 70 - Climbing Stairs (https://leetcode.com/problems/climbing-stairs/description/) with a modification of jumping up to 1, 2 or 3 steps at a time.
Solve the question, explain the time/space complexity. Two additional quick verbal questions were:
- If you had to test this function you wrote, what all test cases you will write. Also tell other kinds of testing such unit tests, e2e tests...
- Before raising a PR, what all we should check/do?
Round 2
This was a focused 1-hour Q&A on web fundamentals. These are the questions I can remember.
- Techniques to optimize page landing speed
- A bit about SSG, SSR, CSR, ISR
- List core entities for hotel booking page.
- What things would you cache in CDN, how updates will happen to them.
- How CDNs work?
- What are different ways to store data on client side? (local storage, session storage, ...)
- Where will you store the authentication token? What are advantages, disadvantages, and security implications of each storage
- What is CSRF and XSS? How they happen? What is the mitigation for it?
- What are different ways to store data or do state management in React? (local state, props, context api. External state management libs like redux)
- On hotel booking page, what are different ways we can store the state of selected filters? (state, query params ...)
- How do you measure web page performance? (Core web vitals performance metrics)
- How would you track the funnel conversion i.e. How many users went through this flow of search -> view -> book -> pay, and how many at each stage?
- Different testing strategies and best practices for them? (Unit test, integration test, screenshot test and example/boundary for each)
- How would you manage test failures happening not because of your own code? (mocking those external deps, using mock servers, add a retry for flaky test, make tests independent of each other ...)
Round 3
This was a 1-hour round focused on frontend architecture. The question was:-
Design a hotel search page from scratch. The design should be scalable, maintainable, and observable. It should have real-time chat integration. It should support a million users, multiple teams, have flexibility of deploying multiple features with fast iterations. The UI should be like this:-
- inputs for from/to date, city, people count on top
- on left side have filters for hotels like rating, amenities, pet friendly etc.
- And on right have search result cards showing hotel name, price, location, reviews, images etc.
Do note that no diagram-drawing was expected. The page UI wireframe was already there in the question. The discussion went on lines of Micro-frontends, monorepo/multi-repos, how will it be built & deployed, how teams will deploy being independent. Why will you select a lib/framework/tech stack, what do you use today, what have you used earlier and why, and deeper follow up questions from the answer given. How would you store the selected filters on the search page? How will you break this page in components? Where will you keep the input box and filter states on UI, in which components? Other topics were bundler selection, testing architecture, monitoring.
Result
I got rejection email after round 3. I think I was not able to answer monorepo & micro-frontends how/why/what/when well enough.
I wish you luck with your interview.
Interview Questions (3)
Rank Transform of an Array
Given an integer array arr, replace each element with its rank among the unique values in the array. The smallest element gets rank 1, the next smallest gets rank 2, and so on.
Climbing Stairs with 1-3 Step Jumps
Given an integer n, count the number of distinct ways to reach the top of a staircase where you can climb 1, 2, or 3 steps at a time.
Design a Hotel Search Page
Design a hotel search page from scratch that is scalable, maintainable, and observable. The page must support real-time chat integration, handle up to a million users, allow multiple teams to deploy features independently, and include UI elements such as date and city inputs, filter sidebars, and result cards with hotel details. Discuss architecture choices, component breakdown, state management, micro‑frontend strategy, bundler selection, testing architecture, and monitoring.