Summary
I interviewed for a Software Developer Intern position at Refrens Internet Pvt. Ltd. The hiring process involved a technical screening with an assignment, followed by two technical interviews. I successfully cleared the first technical round but was not selected after the second.
Full Experience
Assignment
The hiring process for the Software Developer Intern role at Refrens Internet Pvt. Ltd. started with a technical screening that included an assignment. For this, I had to develop a React application using the Rick and Morty API. After submitting my solution, I received a call from HR to schedule my first technical interview.
Technical Interview 1 (Positive Experience, Medium Difficulty)
This round began with my introduction, where I spoke about my projects, programming languages, and current tech stacks. The interview then moved into coding and conceptual questions:
- Coding Question (DSA): I was asked to implement the classic FizzBuzz problem.
- Frontend Question: I had a question related to implementing a
useTogglehook in React, similar to what's found on Learnersbucket. - JavaScript Concepts: Questions covered the Document Object Model (DOM) and Browser Object Model (BOM), and how to modify the DOM. I was also asked to explain Promises, demonstrate how to implement a sleep function using them, and discuss the purpose and benefits of using
asyncandawait. - React & JS Differences: We discussed the fundamental differences between React.js and JavaScript, whether React.js is considered a framework or a library, and the general distinction between frameworks and libraries.
- OOP & JS: I was asked about the concepts of 'states' and 'classes', and whether JavaScript is considered an Object-Oriented Programming (OOP) language.
- Basic JS: A basic question on how to find the length of an array in JavaScript was also posed.
The interviewer also elaborated on the perks of using JavaScript, using an example that involved the var keyword.
Behavioral Questions (Technical Interview 1)
Toward the end of the first round, I was asked a couple of behavioral questions:
- How I would manage remote working effectively compared to an office environment.
- My approach if there were two different ways (mine and a colleague's) to solve a task within a team.
I successfully qualified for the second technical round after this interview, which was a positive experience for me.
Technical Interview 2 (Average Experience, Medium Difficulty)
This round started with a brief discussion about my performance in the previous round. The focus then shifted to more advanced JavaScript concepts and object-oriented programming:
- Coding Question (OOP): I was given a problem involving finding the differences between two objects based on their keys and values. I also had to demonstrate how changing a key-value in one object (a copy) would not affect the original, illustrating the concept of a deep copy.
- JavaScript Concepts: The interviewer again asked me to explain Promises, higher-order functions, and the differences between shallow and deep copy. Concepts like pass by reference vs. pass by value,
JSON.stringify(), and thereduceandassignfunctions were also discussed.
The interviewer suggested I review MDN JavaScript documentation for better conceptual clarity. Unfortunately, I was not selected after this round, making the overall experience average.
Interview Questions (19)
Explain the Document Object Model (DOM) and Browser Object Model (BOM). Describe how to modify the DOM.
Explain the fundamental differences between React.js and JavaScript.
Is React.js considered a framework or a library? Justify your answer.
Explain the distinction between a software framework and a software library.
Explain the concepts of 'states' and 'classes' in the context of JavaScript, potentially relating to React.
Is JavaScript considered an Object-Oriented Programming (OOP) language? Explain why or why not.
Describe your approach to managing remote work effectively compared to working from an office.
If there are two different approaches (yours and a colleague's) to solve a task, how would you handle the situation and resolve the difference?
Explain JavaScript Promises.
Explain what Higher-Order Functions are in JavaScript.
Explain the difference between shallow copy and deep copy in programming, particularly in JavaScript context.
Explain the concepts of pass by reference and pass by value in programming.
Explain the purpose and usage of JSON.stringify() in JavaScript.
Explain the reduce method for arrays and Object.assign() function in JavaScript.