Summary
I interviewed at OYO Rooms for a Web Development Engineer Level 2 position, which involved multiple rounds focusing on JavaScript, HTML/CSS, data structures, algorithms, and React/Redux. The process spanned a full day, with significant waiting times between rounds.
Full Experience
I recently interviewed at OYO Rooms for the Web Development Engineer (WDE) 2 role. I currently work as a Front End Developer at BookMyShow with 1 year and 10 months of experience. The interview process took place in Kormangala, Bengaluru, on April 20, 2019, and was quite lengthy, consuming the entire day due to considerable gaps between rounds, though lunch was provided.
My first round was a Pen and Paper Round, lasting about an hour. It included four JavaScript questions covering topics like Closures, creating a Polyfill for the Filter method, and understanding the usage of the 'this' keyword. Additionally, there was one algorithm question on the Balanced Parenthesis problem.
The second round was a Face to Face Interview-1, which focused on HTML, CSS, and JavaScript, lasting around 40-50 minutes. We discussed Function Prototypes and reviewed the questions from the first round. I also answered a few CSS questions, explained how lazy loading works, and was asked to write HTML, CSS, and JavaScript code for a modal box similar to one on their website. The interviewer also posed questions about closures within loops.
My third round, Face to Face Interview-2, was dedicated to Data Structures and Problem Solving and lasted about 30-35 minutes. I was asked to solve the problem of finding the one missing number in a given range, print the right view of a binary tree, and write a function to find the intersection point of two linked lists.
The fourth round was another Face to Face Interview-3, this time focusing on JavaScript, React, and Redux, which was the longest at 80-90 minutes. Topics covered included Event Bubbling and Event Capturing, creating a given CSS design on Codepen, understanding Object.assign() and Object.seal(), and more questions on Prototypes. I was also tasked with creating a Polyfill for the Reduce function. We had a detailed discussion on React and Redux, and I was asked to build a login gallery app using React and Redux, handling errors through a higher-order component. Finally, we discussed blocking and non-blocking API calls.
My last round was a Managerial Round, which lasted about 50-60 minutes and consisted primarily of behavioral questions.
Interview Questions (17)
Explain JavaScript closures and how they work. Provide examples of their use cases and discuss common pitfalls.
Write a polyfill implementation for the Array.prototype.filter method in JavaScript.
Explain the different contexts in which the 'this' keyword behaves in JavaScript. Provide examples for each scenario (e.g., global, object method, constructor, call/apply/bind, arrow functions).
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if open brackets must be closed by the same type of brackets and open brackets must be closed in the correct order. Note that an empty string is also considered valid.
Explain JavaScript Function Prototypes, the prototype chain, and how inheritance works in JavaScript using prototypes.
Explain how lazy loading works, including its benefits and common implementation techniques in web development.
Write HTML, CSS, and JavaScript code to create a functional modal box. The modal should open and close correctly, and be styled appropriately.
Discuss issues and solutions related to closures when used inside loops in JavaScript.
Explain event bubbling and event capturing in JavaScript. Describe their differences and use cases.
Recreate a given CSS design using Codepen. The specific design details were provided during the interview.
Explain the purpose and usage of Object.assign() and Object.seal() methods in JavaScript. Discuss their impact on object properties and extensibility.
Write a polyfill implementation for the Array.prototype.reduce method in JavaScript.
Design and implement a login gallery application using React and Redux. The application should handle errors through a Higher-Order Component (HOC).
Explain the concepts of blocking and non-blocking API calls in web development, including their implications for performance and user experience.