Agoda | Staff Software Engineer | Bangkok | MAY 2026

agoda logo
agoda
· Staff Software Engineer· Bangkok
August 28, 2026 · 1 reads

Summary

I completed three interview rounds for a Staff Software Engineer position at Agoda in Bangkok and found the overall experience positive.

Full Experience

Staff Software Engineer Interview Experience

Below is the interview experience for the role of Staff Software Engineer.

---

Round 1 (DSA & Coding)

Problem Statement: Minimum Daily Reading Limit

You are given an array of integers where each element represents the number of pages in a sequence of chapters. You need to finish reading all the chapters in exactly D days.

You must read the chapters in the exact order they are given. Each day, you can choose to read one or more consecutive chapters, but you want to avoid overexerting yourself on any single day. Your goal is to minimize your daily limit, which is the maximum number of pages you have to read on any single day to finish all the chapters in the allotted time.

Find the minimum possible daily limit required to finish all the chapters within D days.

Similar LeetCode problem: Capacity To Ship Packages Within D Days

Solution

class Solution {
public static int minDailyLimit(List<Integer> pages, int days) {
    int left = pages.get(0);
    int right = 0;
    for (int i = 0; i < pages.size(); i++) {
        left = Math.min(left, pages.get(i));
        right += pages.get(i);
    }
    if (days == 1) {
        return right;
    }
    int result = -1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        int requiredDays = daysNeeded(pages, mid);
        if (requiredDays <= days - 1) {
            result = mid;
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
    return result;
}

private static int daysNeeded(List<Integer> pages, int limit) {
    int currentSum = 0;
    int days = 0;
    for (int i = 0; i < pages.size(); i++) {
        if (pages.get(i) > limit) {
            return Integer.MAX_VALUE;
        }
        if (currentSum + pages.get(i) <= limit) {
            currentSum += pages.get(i);
        } else {
            days++;
            currentSum = pages.get(i);
        }
    }
    if (days == 0 && currentSum > 0) {
        return 1;
    }
    return days;
}

}

Round 2 (Platform System Analysis & Design)

This round was a bit different - the interview started with a plain system like a flight aggregator that pulls data from different sources, where the user can search for flights by origin and destination and book tickets.

Basically, the system was incomplete with scaling bottlenecks, and an incomplete API was provided. As a candidate, you have to go through the design and improve the overall scalability of the system.

Points to cover:

  1. Talk about how you would fetch the data from different sources and keep your data up to date.
  2. Search API needs to be cached.
  3. The provided API didn't have pagination - talk about cursor vs. offset based approach.
  4. How to reduce downstream calls - maybe have a batch API.
  5. Talk about double booking and how to avoid it.
  6. Talk about deduplication of provider responses.
  7. Talk about auth and other details that might need to be added to the API.

After this, you will be provided with a booking service code which you need to fix:

  1. Exception handling not present, etc.
  2. Standard code structure not followed, etc.

Initial system diagram:

Flight aggregator system diagram

---

Round 3 (Design & Architecture - Data Management)

This was a system design question where you need to support a payment gateway for Agoda users at a scale of 10M DAU.

This is the standard payment problem - covering transactions, integrating with an external provider like Stripe, and having a reconciliation system, etc. Follow the standard template and go through the payment system.

Payment gateway system diagram

---

Overall experience was good, hope this helps the community.

Interview Questions (3)

1.

Minimum Daily Reading Limit

Data Structures & Algorithms·Medium

You are given an array of integers where each element represents the number of pages in a sequence of chapters. You need to finish reading all the chapters in exactly D days. You must read the chapters in the exact order they are given. Each day, you can choose to read one or more consecutive chapters, but you want to avoid overexerting yourself on any single day. Your goal is to minimize your daily limit, which is the maximum number of pages you have to read on any single day to finish all the chapters in the allotted time. Find the minimum possible daily limit required to finish all the chapters within D days.

2.

Flight Aggregator System Design

System Design

Design a flight aggregator system that pulls data from multiple providers, allows users to search for flights by origin and destination, and supports booking tickets. Consider scalability bottlenecks, incomplete API, data fetching and freshness, caching of the Search API, pagination (cursor vs offset), batch API to reduce downstream calls, handling double booking, deduplication of provider responses, authentication and other necessary API details.

3.

Payment Gateway System Design for 10M DAU

System Design

Design a payment gateway system to support Agoda users at a scale of 10 million daily active users. Include handling of transactions, integration with external providers such as Stripe, reconciliation system, and overall architecture to ensure reliability and scalability.

📣 Found this helpful? Please share it with friends who are preparing for interviews!

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!