Taro Logo

Senior Software Engineer Interview Experience - Bangkok, Thailand

August 1, 2019
Positive ExperienceGot Offer

Process

It was lengthy and rigorous. We took a deep dive into threading, up to the OS level. Yes, you read that right.

The process started in September when I was given a HackerRank test. I cleared that, and Agoda scheduled two tech interview rounds in a single day on BlueJeans. These were moderate-level rounds.

After 10 days, I was told that the position had been closed and they would contact me back in a few months once a position opened. However, they contacted me again after 20 days. They scheduled one final round of BlueJeans interview, which was also of moderate difficulty.

I cleared this round and was called to Bangkok for face-to-face interviews with development managers. I faced five technical interview rounds from 10 AM to 5 PM, with a two-hour lunch break. The interviews were difficult, focusing on my technical knowledge and design skills.

The interviews did not involve general problem-solving like those at Amazon or Google. Instead, they had problem-solving of their own kind, which expected less code and more tech and design skills.

The tech discussions went as deep as how threads are created and managed by the OS. We also discussed my projects extensively, going into great depth on those as well.

Finally, four days after the interview, I was called again on BlueJeans and was extended an offer for the Senior Software Engineer position in Bangkok.

Questions

  1. How can you manage thousands of requests simultaneously? All requests cannot be processed at the same time. How will you keep them waiting? Explain the architecture.

  2. A global variable x is initialized to 0. A function f() has a loop that runs from i=0 to 5 and increments the value of x at each iteration. If f() is called once, when f() completes, the value of x will be 5. Now, in our main() function, we create another loop that runs from j=0 to 5 and create a new thread in each iteration. Each thread calls f(). What are the maximum and minimum possible values of x after this loop ends?

  3. I had a project on my resume where I implemented traffic distribution to different servers using percentages. For example, if I have 3 servers A, B, and C, and I need to distribute 20%, 50%, and 30% of traffic to each respectively, I could configure my system to do that distribution approximately. It is possible that there may be a fluctuation of 3-4% at the end of the day in the distribution. So, instead of A getting 20%, it might get only 18%, while C gets 32% of the traffic.

So, the interviewer asked me to implement a system that distributes traffic to my servers strictly as configured, not approximately. Then, they also added a use case: what happens if I introduce a server D and want to divert exactly 1000 requests to it per hour? Not percentage-wise, but request count-wise this time.

  1. A new user signs up, and a new integer ID is to be assigned to the newly created user. This needs to happen in parallel and needs to be replicated across 5 data centers. Design a system to do the same.

  2. Design an elevator system. Draw a class diagram for it. The elevator system of the office building was very high-tech. If you are at an elevator labeled G and press the up button, you won't necessarily get elevator G, but you might end up getting elevator F if F is nearer.

Was this helpful?

Interview Statistics

The following metrics were computed from 15 interview experiences for the Agoda Senior Software Engineer role in Bangkok, Thailand.

Success Rate

53%
Pass Rate

Agoda's interview process for their Senior Software Engineer roles in Bangkok, Thailand is on the easier side as most engineers get an offer after going through it.

Experience Rating

Positive73%
Neutral7%
Negative20%

Candidates reported having very good feelings for Agoda's Senior Software Engineer interview process in Bangkok, Thailand.

Agoda Work Experiences