Nutanix | MTS | Bangalore | Jan 2020

nutanix logo
nutanix
member of technical staffbangalore, india1.5 yearsOngoing
January 31, 20200 reads

Summary

I had an interview experience with Nutanix for the Member of Technical Staff position in January 2020. The process involved a telephonic screening followed by multiple onsite technical rounds and a final managerial discussion, covering a wide range of data structures, algorithms, system design, and Python-specific concepts.

Full Experience

My interview journey for the Member of Technical Staff position at Nutanix, Bangalore, commenced in January 2020. I brought 1.5 years of experience to the table.

1st Telephonic Round

This round focused on fundamental data structures and Python concepts. I was asked to:

  • Construct a complete binary tree from a given array in level order fashion.
  • Answer questions regarding Python's threading module, classes, and objects.

2nd Onsite Round

The first onsite round delved deeper into algorithms and problem-solving:

  • I was challenged to rearrange positive and negative numbers within an array using constant extra space. I approached this with an O(N2) solution, though the interviewer was looking for an O(N log N) approach.
  • Another problem involved evaluating division queries given initial equations (e.g., a/b = 2.0, c/d = 3.0), with the expectation of O(1) query time through precomputations.
  • I also had to implement the lower bound using binary search to find the first occurrence of a query element in a sorted array with duplicates.

3rd Onsite Round

This round continued with more complex data structures and algorithms:

  • I successfully constructed a binary tree from its postorder and inorder traversals, providing a complete working code and explanation.
  • A problem on finding the minimum deletions required to make the frequency of each letter in a string unique was presented.
  • I solved the problem of finding the minimum number of bracket reversals needed to make an expression balanced, managing to do so without using any extra space.
  • Additionally, I tackled counting subarrays with a sum less than or equal to K. For positive K and array numbers, I used a cumulative sum array with binary search (O(N log N)). I extended this to handle negative K and array elements using a Binary Indexed Tree (BIT) with value shifting.

4th Onsite Round

The fourth onsite round covered concurrency and system design:

  • I was given a problem to print array elements using two threads, one for even-indexed elements and another for odd-indexed elements (assuming the original question's typo meant odd indices for the second thread).
  • A significant discussion point was sorting a very large file that couldn't fit into memory, with a focus on minimizing disk access. I proposed a merge sort-like solution involving batching during list merging.
  • Finally, there was a high-level system design discussion about implementing a views count feature for YouTube, covering topics like distributed servers, distributed caching, load balancing, and consistent hashing.

5th Onsite Managerial Round

The final round was managerial, focusing on technical leadership and architectural considerations:

  • Discussion revolved around handling threads within a server using ThreadPoolExecutor, maintaining states for incoming requests, and optimizing resource utilization.

Interview Questions (13)

Q1
Construct Complete Binary Tree from Level Order Array
Data Structures & Algorithms

Given an array, construct a complete binary tree from it, representing the elements in a level order fashion.

Q2
Python Threading, Classes, and Objects Concepts
Other

Discussion and questions related to Python's threading module, as well as fundamental concepts of classes and objects.

Q3
Rearrange Positive and Negative Numbers In-place
Data Structures & Algorithms

Rearrange an array such that positive and negative numbers are interleaved, using constant extra space. I solved it in O(N2), but the interviewer was looking for an O(N log N) solution without any extra space.

Q4
Evaluate Division Queries
Data Structures & Algorithms

Given equations like a/b = 2.0 and c/d = 3.0, represented as [['a','b'],['c','d']] = [ 2.0, 3.0 ], and a large number of queries like ['a','d'], calculate the value of a/d. The interviewer expected O(1) query time, suggesting precomputations.

Q5
Find First Occurrence in Sorted Array (Lower Bound)
Data Structures & Algorithms

Given a sorted array that may contain duplicate elements, find the index of the first occurrence of a queried element 'x'. This problem requires implementing the lower bound concept using binary search.

Q6
Construct Binary Tree from Postorder and Inorder Traversal
Data Structures & Algorithms

Construct a binary tree given its postorder and inorder traversals.

Q7
Minimum Deletions for Unique Letter Frequencies
Data Structures & Algorithms

Determine the minimum number of deletions required to make the frequency of each letter in a string unique.

Q8
Minimum Bracket Reversals for Balanced Expression
Data Structures & Algorithms

Find the minimum number of bracket reversals needed to make a given expression balanced.

Q9
Number of Subarrays with Sum Less Than or Equal to K
Data Structures & Algorithms

Find the number of subarrays where the sum of elements is less than or equal to K. This was initially for positive K and array numbers. I solved this in O(N log N) using a cumulative sum array and binary search. I also extended the solution to handle negative K and array numbers by employing a Binary Indexed Tree (BIT) and shifting values to accommodate negatives.

Q10
Concurrent Printing of Array Elements (Even/Odd)
Data Structures & Algorithms

Given an array, print its elements using two threads. One thread prints elements at even indices, and the other prints elements at odd indices. (Assuming this was the intent due to common problem patterns, as the original text had a typo 'even indexed elements' twice).

Q11
Sort Large File (External Sort)
System Design

Sort a very large file containing integers that cannot fit into memory, with an emphasis on optimal resource usage and minimizing disk access.

Q12
Design YouTube Views Count Feature
System DesignHard

High-level system design discussion for implementing a YouTube views count feature. This involved discussing distributed servers, distributed cache, load balancing, and consistent hashing.

Q13
Server Thread Management and Resource Optimization
Other

Discussion focused on managing threads within a server environment using ThreadPoolExecutor, maintaining states for incoming requests, and optimizing resource utilization.

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!