Locus | SDE 2 | Rejected
Summary
I recently interviewed for an SDE 2 position at Locus. The process involved two online assessments followed by an onsite round covering LLD, HLD, DSA, and DB Design, but unfortunately, I was rejected.
Full Experience
I have 3 years of experience and applied for the SDE 2 role at Locus. The interview process began with two online assessments.
The first OA focused on LLD and DSA. I was tasked with designing and implementing a user and file management system. This assessment was divided into four parts, where successful completion and passing tests for one part unlocked the next.
The second OA was an HLD round, which consisted of a system design case study followed by 16 Multiple Choice Questions.
The final round was a comprehensive session covering DSA, DB Design, and HLD. I was presented with several challenging problems.
For DSA, I was asked to find the kth largest element in an unsorted array and specifically implement it using the Quick Select algorithm. For DB Design, the question involved designing a transactional data store with specific columns, handling millions of rows, and supporting particular query patterns. The HLD question required me to design a music streaming application with features like uploading, searching, streaming, and queuing songs, along with non-functional requirements such as near-zero buffering, low internet bandwidth support, and tolerance for no internet connectivity.
Honestly, I felt some of the questions, particularly the HLD for the music streaming app, were more akin to staff-level problems, which seemed irrelevant for someone with only 3 YOE. I also felt the interviewer was intentionally trying to debate and make me uncomfortable, constantly cross-questioning my answers. Despite answering some questions brilliantly, I was ultimately rejected.
Interview Questions (4)
Design and implement a user and file management system. The task was broken into 4 parts, where each part required implementing specific functionalities and passing tests to unlock the next part.
Given an unsorted array of integers, find the kth largest element in the array.
Example 1:
Input: nums = [3, 2, 1, 5, 6, 4], k = 2
Output: 5
Example 2:
Input: nums = [7, 10, 4, 3, 20, 15, 4], k = 3
Output: 10
I was specifically asked to implement this using the Quick Select algorithm.
Design a transactional data store with specific requirements:
- Required Columns: id (varchar, unique), data (text), tennant (varchar), timestamp (Timestamp)
- A transactional table with potentially millions of rows/documents.
- Queries could return hundreds of thousands of rows/documents.
- Typical query patterns:
- Filter by
tennantandtimestamprange. - Filter by
id.
- Filter by
Design a High-Level System Design for a music streaming application with the following features:
- Artist, user, song, album management.
- Functionalities: Upload music, Search, Stream a song, Queue a song.
Non-Functional Requirements:
- Close to 0 buffering.
- Low internet bandwidth availability support.
- Tolerance for no internet connectivity (offline playback).