Open In App

OYO Rooms Interview Experience for Web Development Engineer-2

Year of Experience: 4.5 Years.

Really well organized, and the entire process was completed in 3 days, as opposed to top MNCs, which delay each round by weeks.



There are four rounds in total.

Round 1(Data Structures): Duration: 60 minutes.



  1. Reverse a given linked list. [https://www.geeksforgeeks.org/reverse-a-linked-list/amp/]
  2. Find the first and last positions of an element in a sorted array. [https://www.geeksforgeeks.org/find-first-and-last-positions-of-an-element-in-a-sorted-array/amp/]
  3. Check to see if there are two elements in an array whose sum equals the sum of the rest of the array. [https://www.geeksforgeeks.org/check-exist-two-elements-array-whose-sum-equal-sum-rest-array/amp/]

Some stories were told in response to these questions, but they were ultimately translated to the ones listed above. I did not expect to be asked these types of questions for the UI role, but I answered all of them in the allotted time.

Round 2(HTML + CSS + JS): Duration: 45 minutes.

JS: 




var y = 10;
  (function x() {
         console.log(y); // Output ?
         var y = 20;
  })()

CSS:




<style>
  
.red {background-color: red}
.blue { background-color: blue}
  
</style>
<div class = "blue red"> Div 1</ div>
<div class = "red blue">Div 2</div>

Follow-ups on specificity, cascading effect, inheritance, How do you deal with cross-browser styling issues? (CSS Normalization and Reset) Performance enhancement, Critical Rendering Path, etc.

Round 3(Low-level designing):

We began with a simple problem.

There is a chat section in the Oyo room. Each chat requires the establishment of a socket connection with the server. However, the cost of supporting too many open connections is prohibitively expensive. As a result, we must implement the following in the chat component:

  1. When the user clicks on the chat button, a socket connection is established. ( There is no need to code this; it is simply a pseudo code for socket interaction; there is no need to worry about actual syntaxes and code ).
  2. The connection should be terminated 30 seconds after the click. If the user enters something in the chat area, the timer is reset and the 30 second counter is restarted. ( This was the main task requested here, and it was similar to debouncing ).

Then there is small discussion on setTimeouts, event queues, mico and macro tasks. Twitter should be designed. ( User Interface System Design ) How would you manage the state? Which libraries would you recommend for state management? How do you keep your posts up to date in real time? Discusses the creation of a separate component library.

I provided a React context-based solution -> Decomposing the entire app into small contexts.

Round 4(Managerial Round):

My thoughts: 

Finally, I got an offer letter.


Article Tags :