Interviewed for the position of MTS-1 at Nutanix.
Status: 1 YOE as SDE at an established start-up, BTech CS from decent uni
Position: MTS1 at Nutanix
Location: Bangalore
Date: July 2024
Applied online and recieved a call from HR after 2-3 days. Scheduled an OA.
Round -1: OA
Basic 2hr HackerRank challenge. Two questions based on heap and DFS. 1 Easy, 1 Medium. Passed all test cases.
HR Scheduled an on-site interview with 2 rounds after a couple of days.
Round - 2: DSA
Q1: Given a tree, multiply the value in each node with its inverted level order and return the sum of all these values.
Suggested a basic DFS approach where I would store each element of the same level in an array. Then later I would sum them up by traversing over the list of levels and multiplying them with their corresponding reverse level. Was asked to optimize space further, took a couple of minutes to arrive at storing sum of each level directly and then multiplying them with their reverse levels. Was asked to code and did a dry-run of few cases.
Q2: Given a dependency graph like (A -> B -> C), print an order of execution such that all dependancy items are executed first before the target items. Graph can have a cycle, and in case of cycle throw an error.
Went with straightforward DFS approach and implemented cycle detection as well. Interviewer seemed satisfied with both the answers.
Round - 3: Debugging and System Design
Debugging: Interviewer showed some Java/C++ pseudo-code for checking if a linked list is a palindrome. Code had a few logical errors and I succesfully pointed all of them out and dry-ran a few test cases as well. This took 20 mins and interviewer seemed satisfied.
System Design: Interviewer asked a very open ended question on designing a system where a lot of users are requesting for for some X data. Started off with basic API server, load balancer and database. Scaled each component horizontally. Scaled database up by suggesting partitions and replication. Further scaled the system up by suggesting caching. Went into a little depth about caching strategies like LRU, LFU for invalidation.
Interviewer asked for further speed up from DB perspective as this role was for DB development team. Suggested an integrated cache with the DB query engine (Ref. Uber's Cachefront). Further went into strategies for this such as cache-aside and read-through, discussed their tradeoffs etc.
We also walked through my resume and touched upon a few points.
Interviewer seemed satisfied and we still had 10 min left. I thought this round went better than the first.
Later got call from HR who told my first round was good but my second round was "so-and-so". Finally got a reject later and they were proceeding with other candidates. Can someone shed some light on how this conclusion was drawn when I thought these rounds went better than all the interviews I'd ever given?