Agoda | Staff Engineer | Bangkok | [Selected]
Summary
I interviewed for a Staff Engineer position at Agoda in Bangkok, completed four rounds (coding, platform design, system design, and culture fit), and was selected.
Full Experience
Hi Guys, I interviewed for Agoda. These were the rounds
Round 1 - Coding
-
Monotonic stack based problem involving nearest smaller element.
-
Given a array of priorities, give ranks of every element in priorities. Higher numbers should get higher ranks. (Solved it with a hash set. Don't remember the complete question)
Round 2 - Platform Design
Initially was given a problem where data is being supplied to multiple airline aggregators and asked to analyze the design.
It had issues like lack of rate limiting, incorrect api methods, lack of horizontal scaling, lack of DB replication, etc. Idea is to point out the issues and have a discussion with the interviewer.
This went on for 40 minutes, after which I was asked some general questions on Software Testing, Rolling out to limited traffic, etc.
The last 10 - 15 minutes had a code review question where you're given a code snippet (language of your choice) and you need to review the code and highlight issues (ex - Leveraging strategy - factory pattern to avoid if-else chains, etc).
Round 3 - System Design
Building a flight aggregation system. It was a standard System Design Round. Followed a structure with Clarifications, FRs, NFRs, Core Entities, API design, DB choice, High Level Diagram and a few deep dives after that.
Round 4 - Culture Fit
Typical questions around technical leadership, handling conflicts, pushing back on design decisions, etc.
Result : Selected
Took multiple rejections before I was able to finally cracking this. The market is challenging right now, and the process can feel really draining, but you only need one yes. Keep grinding till you get it 💪...
Interview Questions (2)
Nearest Smaller Element using Monotonic Stack
Given an array of integers, for each element find the nearest element to its left that is smaller than it. The solution should use a monotonic stack to achieve an O(N) time complexity.
Rank Elements by Priority
Given an array of priority values, assign a rank to each element such that higher numbers receive higher ranks. For example, the largest priority gets rank 1, the second largest gets rank 2, and so on.