I saw a job post on LinkedIn by a Splunk recruiter for 'Software Engineer - Fullstack' role. I applied directly on Splunk's career portal and got an email the very next day saying that my profile was shortlisted for initial screening, i.e. Karat Assessment. I was instructed to complete the test and attend the interview within 2 days. The structure of the Karat assessment was also provided in the recruiter's mail.
The Karat Assessment was split into two parts (Offline & Online):
I) Karat Qualify (Offline Test) - 15 mins
It was a 15 MCQ test where we had the choice to choose between topics such as Backend, General Coding Logic, and Algorithms & Data Structures.
Post passing this test, I got an invite instantly to schedule the interview.
II) Karat Core (Online Live Video Interview - Virtual) - 60 mins
Topics covered in this interview:
It was a 1-hour technical interview where we could schedule according to our comfort and availability. We also have a redo opportunity if we feel that the interview did not go our way. Hence, I scheduled the first interview attempt within a few hours so I could give a redo as soon as possible.
System Design (15 mins):
Q1. How can we reduce server farm costs for a mobile app that animates children's drawings and downloads interactive environments?
Q2. How can we reduce the impact of unreliable third-party APIs with frequent outages on a sports statistics web service?
Q3. What information is required to estimate next year's resource costs for a popular video-sharing app?
Coding Questions (45 mins):
Q1. A 2-D grid that consists of '0' and '+'. '+' means impassable and '0' means passable. Return the rows and columns indices that are completely passable (all 0's).
Q2. Modified version of Q1. You are now given a starting cell, which is on one corner of the grid. You can travel in all 4 directions of cells that are passable. You have to reach any other passable cell that is on the corner of the grid, which has the minimum distance from the starting cell. Return the coordinates of the destination cell. Return -1 if not possible.
System Design (15 mins):
Q1. How would you evaluate the advantages and disadvantages of using multiple servers versus a single dedicated server for hosting a music streaming application that supports various playlists for different activities?
Q2. What concerns might arise when designing a payment system for entertainment machines, where players use preloaded game cards and can recharge through cash or credit card, especially given plans to install the system on approximately 125,000 machines next year?
Coding Questions (45 mins):
Q1. You are playing a board game (1-D array) where the player moves by rolling a die with the number of sides given and is allowed to roll it once. You are also given a list of teleporters that move the player from one square to another. The starting and ending squares are given as well. Return a distinct list of positions where the player can potentially jump to.
Q2. Modified version of Q1. Players move by rolling a die as many times as they wish to, and the goal is to determine if they can reach the last square on the board from a given starting position.
Although I did my best in both attempts, I feel I did slightly better in attempt 2, as I was able to finish coding Q2 as well.
However, the recruited ghosted, and after a few weeks, I followed up to know that even after passing the screening round, they could not move ahead with my candidature as there were only few vacancies and the role had been filled.