Pergunta de entrevista da empresa Agoda

1. How can you manage thousands of requests at the same time? All the requests cannot be processed at the same time. How are you gonna keep them waiting? Explain the architecture. 2. A global variable `x` is initialized to `0`. A function `f()` has a loop which runs from i=0 to 5 and increments 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 which runs from j=0 to 5 and create a new thread in each iteration, and each thread calls `f()`, what is the maximum and minimum possible value of `x` after this loop ends? 3. I had a project on my resume in which I had implemented traffic distribution to different servers using percentages. For ex. 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 fluctuation of 3-4% at the end of the day in the distribution. So instead of A getting 20%, it gets 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 and not approximately. Then also added a use case that 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. 4. A new user signs up and a new integer id is to be assigned to a newly created user. And this needs to happen in parallel. And needs to be replicated across 5 data centers. Design a system to do the same. 5. Design an elevator system. Draw class diagram for same. The elevator system of the office building was very high-tech. If you are at elevator labelled `G` and you press the up button, you won't necessarily get elevator `G` but you might end up getting elevator labelled `F` if `F` is nearer.

Respostas da entrevista

Sigiloso

6 de nov. de 2020

How come minimum value can be 2 ?

1

Sigiloso

28 de out. de 2019

Solution to question number 2: Minimum possible value of `x` is 2 and maximum is ofcourse `25`. Followup question: Can minimum be less than 2? Can it be 1 or 0? No? Why?