Nutanix MTS

nutanix logo
nutanix
MTS I2 years
May 25, 20254 reads

Summary

I interviewed for the MTS role at Nutanix, which involved two technical rounds. Both rounds, focusing on a command-line archive utility and graph problems, went well and I received positive feedback, though the position is currently on hold.

Full Experience

Round 1: Command-Line Archive Utility Objective: Build an archive utility (like a basic tar) with the following features — without using any existing archive/compression libraries.

Requirements:

Archive a Folder: Recursively create an archive from a folder while preserving the directory structure. ./archive-tool create ./my-folder archive1

Extract an Archive: Reconstruct the original folder structure. ./archive-tool extract archive1 ./restored-folder

List Archive Contents: Show all file paths in the archive. ./archive-tool list archive1

Extract a Specific File: ./archive-tool extract-file archive1 file.txt ./restored-folder

Verbose Mode: Add --verbose for detailed logs during operations.

Constraints:

No usage of tools like zipfile, zlib, java.util.zip, etc.

Only use standard libraries.

Handle errors gracefully (e.g., invalid paths, corrupt archives).

This round was focused on file system traversal, binary file creation/reading, and designing your own archive format.

Round 2: Graph Construction + Longest Chain & Cycle Given several user-defined functions like: def a(): b(), c() def b(): ... def c(): ... Tasks:

Build an adjacency list from the function call dependencies. Example: a → [b, c]

Find the Longest Chain: Longest path from any function to the deepest nested call (like DFS longest path).

Find the Longest Cycle: If there's a cycle, return the longest one.

Focus was on parsing, graph building, DFS, and cycle detection.

Outcome: Both rounds went well and I received positive feedback. The recruiter later informed me that the position is currently on hold.

Interview Questions (2)

Q1
Command-Line Archive Utility
System DesignHard

Objective: Build an archive utility (like a basic tar) with the following features — without using any existing archive/compression libraries.

Requirements:

Archive a Folder: Recursively create an archive from a folder while preserving the directory structure. ./archive-tool create ./my-folder archive1

Extract an Archive: Reconstruct the original folder structure. ./archive-tool extract archive1 ./restored-folder

List Archive Contents: Show all file paths in the archive. ./archive-tool list archive1

Extract a Specific File: ./archive-tool extract-file archive1 file.txt ./restored-folder

Verbose Mode: Add --verbose for detailed logs during operations.

Constraints:

No usage of tools like zipfile, zlib, java.util.zip, etc.

Only use standard libraries.

Handle errors gracefully (e.g., invalid paths, corrupt archives).

This round was focused on file system traversal, binary file creation/reading, and designing your own archive format.

Q2
Function Call Graph: Longest Chain & Cycle
Data Structures & AlgorithmsMedium

Given several user-defined functions like: def a(): b(), c() def b(): ... def c(): ... Tasks:

Build an adjacency list from the function call dependencies. Example: a → [b, c]

Find the Longest Chain: Longest path from any function to the deepest nested call (like DFS longest path).

Find the Longest Cycle: If there's a cycle, return the longest one.

Focus was on parsing, graph building, DFS, and cycle detection.

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!