Compass | SDE1 | Hyderabad | April 2022 | [Accepted]

compass logo
compass
SDE IHyderabadOffer
April 20, 20223 reads

Summary

I applied through LinkedIn and successfully navigated a total of 5 interview rounds for the SDE1 role at Compass in Hyderabad, ultimately receiving an offer.

Full Experience

Overview

My journey at Compass began after applying through LinkedIn. A few days later, a recruiter reached out and scheduled my interview rounds. There were a total of 5 rounds, encompassing coding, system design, technical deep-dive, and a hiring manager discussion.

Round 1: Karat Interview

This round was conducted by a third-party, Karat. The interviewer was very professional. I was given two coding questions. The first question required me to determine if a target string could be constructed from an array of given words; I had to write and execute the code on their IDE. The second question involved a 2D character array and a target string, where I needed to return a 2D vector containing the indices of all characters that form the string. A follow-up to this question specified that each character index could only be used once in a valid sequence. Although I had a good discussion, I couldn't come up with the optimal approach for the second problem. However, the interviewer acknowledged its difficulty and complimented my effort. Karat offers an option to reschedule if you're not satisfied, but I felt my interview went well.

First Technical Round

After receiving positive feedback from Karat, I advanced to the first technical round, which was taken by a Software Engineer with over 10 years of experience. The exact question asked was Valid Parenthesis String (LeetCode 678). I initially proposed an approach, but while writing the code, I identified edge cases where it would fail. I then iterated through 3-4 more approaches over 20 minutes, each time explaining their flaws. Finally, the interviewer suggested a recursive solution, which I implemented and, after a couple of tries, passed all his test cases. I was transparent about its complexity and that it wasn't the optimal greedy approach, thinking I might not clear this round.

Third Technical Round

This round happened on the same day and was led by a Senior Engineer with 13+ years of experience. He presented a problem involving flight availability between different cities and asked me to design an API to check reachability between any two cities. We discussed both DFS and BFS, and I designed and implemented my solution using DFS, which worked perfectly across his multiple test cases. A follow-up asked to find one route with 'x' number of stoppages, which I quickly adapted my code for. The final follow-up was to find all routes with 'x' stoppages; I explained my approach for this, discussing different scenarios. The key to success in this round was writing well-structured code and clearly explaining my thought process while coding.

Hiring Manager Round

After clearing both technical rounds, I proceeded to the Technical Deep Dive (TDD) and Hiring Manager (HM) rounds. The HM round was more of a conversational interview with my potential future manager. We discussed the team's work, their expectations, and my own career expectations and interests. He then posed a database design scenario for a login page and a subscription model, asking about my choice of database and its structure. We also touched upon web servers and my reasons for seeking a new role. It was a very frank and engaging discussion.

Technical Deep Dive (TDD) Round

This round was conducted by Nabarun Mondal, an undoubtedly knowledgeable individual about whom I found little information online. Initially, I felt overwhelmed, but I focused on listening attentively. He asked me to describe a problem I had solved that I was most proud of. I began discussing face verification, and he quickly delved into how I might have solved it and verified the results. He then presented a unique problem: given two distributions, how would I determine if they are similar or not? I clarified my understanding and started articulating my thoughts. The interviewer was incredibly supportive, providing hints and guiding me through the process whenever I got stuck. The primary focus of this interview seemed to be on understanding the problem, asking clarifying questions, and iteratively developing an approach, regardless of initial correctness. I was genuinely amazed to have solved such a unique problem by the end.

Outcome

Despite some self-doubt, especially after the TDD round, the HR provided exceptional clarity throughout the entire process. I received an email at 1:57 PM the next day, confirming that I had cleared all rounds and would receive an offer letter soon. The HR was incredibly supportive, always responding within minutes to my emails and calls. I also want to mention that I found compensation details available on LeetCode's compensation section.

Interview Questions (10)

Q1
Word Construction from Array of Strings
Data Structures & AlgorithmsMedium

Given an array of strings (words) and a target string, determine if the target string can be constructed by concatenating any of the words from the given array. The solution required writing code and executing it on their IDE with test cases.

Q2
Word Search in 2D Grid (All Indices)
Data Structures & AlgorithmsMedium

Given a 2D character array (grid) and a target string, return a 2D vector containing the indices of all characters in the grid that form the target string. This requires finding all possible paths where characters connect to form the string.

Q3
Word Search in 2D Grid (Unique Character Usage)
Data Structures & AlgorithmsHard

A follow-up to the 2D character array problem: The same character at a given index cannot be used more than once as part of a valid sequence forming the target string.

Q4
Valid Parenthesis String
Data Structures & AlgorithmsMedium

Given a string s containing only three types of characters: '(', ')', and '*', return true if s is valid. The * character can be treated as a single right parenthesis ')', a single left parenthesis '(', or an empty string.

Q5
Flight Reachability between Cities
Data Structures & AlgorithmsMedium

Given flight availability between different cities, design an API to determine if there is reachability between two given cities. The solution involved using DFS/BFS.

Q6
Flight Route with X Stoppages (One Route)
Data Structures & AlgorithmsMedium

A follow-up to the flight reachability problem: Find one route between two cities that has exactly 'x' number of stoppages, where 'x' is a user input. I quickly modified my existing code and explained the approach.

Q7
Flight Routes with X Stoppages (All Routes)
Data Structures & AlgorithmsHard

A further follow-up: Find all possible routes between two cities that have exactly 'x' number of stoppages. I explained the approach, discussing different possibilities with the interviewer.

Q8
Database Design for Login Page and Subscription Model
System Design

Design a database schema for a login page and a subscription model. This involved discussing the choice of database (e.g., SQL/NoSQL) and defining the structure for users, subscriptions, authentication details, etc.

Q9
Discuss a Challenging Project
Behavioral

The interviewer asked me to describe a problem I had solved that I was most proud of. I began discussing my experience with face verification, and he then conducted a deep dive into my approach and methods for verifying the results.

Q10
Compare Similarity of Two Distributions
OtherHard

Given two distributions, explain how you would find out if they are similar or not. This was a unique problem where the interviewer provided hints to guide me through the solution process. It primarily focused on understanding the problem and iteratively developing an approach.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!