Livspace | SDE 2 | Frontend | Interview experience
Summary
I successfully interviewed for an SDE 2 Frontend position at Livspace, navigating through five rounds covering JavaScript fundamentals, advanced concepts, problem-solving, System Design, and behavioral questions over a two-week period, ultimately receiving a job offer.
Full Experience
I applied for an SDE 2 Frontend role at Livspace through LinkedIn, and the recruiter reached out to me shortly after. The interview process was comprehensive, spanning about two weeks and consisting of five distinct rounds.
Round 1 (Javascript)
The first round focused on JavaScript concepts and problem-solving. We discussed core differences like `async` vs `defer` and how to persist data using session storage. I was also given a JavaScript problem to process user activity data, requiring grouping, de-duplication, and sorting.
Round 2 (Javascript)
Round two continued with JavaScript, delving into more advanced topics like SSR and why Next.js remains relevant despite React 19's SSR capabilities. The coding challenge involved implementing an Event Emitter, for which I used vanilla JavaScript. I also tackled an interactive grid problem that involved dynamic generation, state management for clicks, and a timed reset sequence. I managed to complete about 50% of the implementation and verbally discussed the remaining approach, including optimizations like event delegation.
Round 3 (Javascript + LLD)
The third round was a mix of JavaScript and Low-Level Design (LLD). While one problem involved data transformation with `reduce`, the primary focus was on designing a Restaurant Ordering System.
Round 4 (Managerial round)
The fourth, a managerial round, was a half-hour call primarily discussing my resume and past experiences.
Round 5 (HR round)
Finally, the fifth round was with HR, covering standard behavioral questions such as my motivation for joining Livspace, handling workplace conflicts, and my passion for software development, particularly frontend.
After completing all rounds, I received an offer from Livspace, which was a great outcome after a rigorous two-week process.
Interview Questions (10)
Explain the differences between the 'async' and 'defer' attributes for script tags in HTML, and when you would use each.
How would you use session storage to persist form data even after a page refresh?
Given an array of user activities, group the data by userId, sum their duration, remove duplicate equipment items, and sort the equipment array lexicographically.
Input:
const activities = [
{ user: 8, duration: 50, equipment: ['study'] },
{ user: 7, duration: 150, equipment: ['running','running'] },
{ user: 1, duration: 10, equipment: ['eating','eating'] },
{ user: 7, duration: 100, equipment: ['gyming', 'coding'] },
{ user: 7, duration: 200, equipment: ['biking','gyming', 'coding'] },
{ user: 2, duration: 200, equipment: ['cocking'] },
{ user: 2, duration: 200, equipment: ['biking'] },
];
Output:
[
{ user: 8, duration: 50, equipment: [ 'study' ] },
{
user: 7,
duration: 450,
equipment: [ 'biking', 'coding', 'gyming', 'running' ]
},
{ user: 1, duration: 10, equipment: [ 'eating' ] },
{ user: 2, duration: 400, equipment: [ 'biking', 'cocking' ] }
]
Discuss the reasons why Next.js might still be needed or preferred, even with React 19 introducing Server-Side Rendering (SSR) capabilities.
Design an interactive grid where n x n cells are dynamically generated. Initially, all cells should have the same background color (e.g., blue).
- When a user clicks on a cell, it should immediately change to a different color (e.g., red) and its click order must be tracked.
- There should be a "Start" button.
- On clicking "Start", the clicked cells should revert back to the initial color one by one, in the exact order they were clicked, with a short delay between each cell (e.g., 500ms).
- After the reset, the grid should be ready for interaction again.
Design a complete restaurant ordering system, considering various aspects such as menu management, order placement, kitchen display system, payment processing, user roles (customer, staff), and scaling considerations.
Why do you want to join Livspace?
Tell us about a time you had a conflict with a senior colleague and how you handled it.
Explain your motivation for becoming a software developer, and specifically why you chose frontend development.