Rippling L6 Interview Experience | Reject
Summary
I interviewed for an L6 position at Rippling, completing five challenging rounds including DSA and System Design, but ultimately received a rejection.
Full Experience
My interview journey for an L6 role at Rippling consisted of five distinct rounds, culminating in a rejection.
Round 1 - DSA
This round involved designing a Music Player similar to Spotify. The core methods to implement were addSong, playSong, and printMostPlayedSongs, which required tracking unique user plays. The follow-up extended this to retrieving the getLastThreeSongs played by a specific user. There was another follow-up mentioned by the recruiter post-interview, but I didn't get time to address it during the session.
Round 2 - Hiring Manager
This round focused entirely on general behavioral questions, assessing my fit and experience.
The next 3 rounds happened in the office.
Round 3 - DSA
The challenge here was to design a Key Value Store. I had to implement get, set, and deleteKey methods. The first follow-up introduced support for transactions (begin, commit, and rollback). I immediately clarified if nested transactions were required, and the interviewer confirmed they would be for a subsequent follow-up. I spent a considerable amount of time implementing the single-level transaction support. The second follow-up was to support nested transactions, but unfortunately, time ran out before I could tackle it.
Round 4 - DSA
This round focused on designing an Excel sheet. I needed to implement set (handling cell names like A1 and values including simple numbers or formulas like "=9+10"), reset, and print (showing both raw and computed values). The follow-up extended the set functionality to support values that referenced other cells, such as "=A1+10".
Round 5 - System Design
The final round was a system design interview where I was tasked with designing Google News.
Interview Questions (5)
Design a Music Player like Spotify with the following methods:
int addSong(string songTitle);// add a song to your music player with incremental song ids starting from 1void playSong(int songId, int userId);// user plays a song that is present in the music playervoid printMostPlayedSongs();// print song titles in decreasing order of number of unique users' plays
Follow up:
vector<int> getLastThreeSongs(int userId);// get last 3 unique songs played by a given user
This round focused on general behavioral questions.
Design a Key Value Store with the following methods:
string get(string key);void set(string key, string value);void deleteKey(string key);
Follow up 1: Support transactions - begin, commit, and rollback. I spent a lot of time coding for one level of transactions.
Follow up 2: Support nested transactions. No time was left to address this.
Design an excel sheet with the following methods:
void set(string cell, string value);// cell can be A1, B2. value can be like "10", "1" or even excel formulae like "=9+10" and "=-1+-10+2"void reset(string cell);// reset the cellvoid print();// print all the cells along with their raw and computed values
Follow up: Extend solution to support values like "=A1+10" where A1 is a cell name.
Design Google News.