NetApp | MTS 3 | Bengaluru | 23/11/2020 [Offer]

netapp logo
netapp
mts 3bengaluruOffer
November 30, 20200 reads

Summary

I interviewed for the MTS 3 role at NetApp in Bengaluru and successfully received an offer. The interview process spanned multiple technical rounds covering coding, system design, object-oriented concepts, and core data structures, followed by a managerial discussion.

Full Experience

Technical Round 1

This round began with a detailed discussion on REST API protocols. The interviewer asked me to explain why REST is considered stateless and its advantages over SOAP. We then delved into the implementation details of various protocols. Following this, I was asked to design a singleton class. I started with a naive implementation, and then the interviewer challenged me to design a thread-safe version for a multi-threaded environment. For the remaining time, we covered very basic questions on linked lists, such as finding the middle element and reversing a linked list.

Technical Round 2

This round started with a discussion about my current project and overall experience. The first coding question was Reverse Nodes in K-Group. I asked a couple of clarifying questions, then developed a solution, wrote the code, and tested it with various test cases. Afterward, I was tasked with designing a billing module for their system. The system specifications were: the application is hosted on AWS servers; users are allocated cloud storage based on their subscription, and if the limit is exceeded, extra storage should be automatically allocated, with users seeing details during billing. Logs must be generated every 15 minutes and updated into the DB, containing details of storage used by the user for the past 15 minutes. The billing module should read these logs, parse them based on user IDs, and send this data to AWS billing. I clarified a few more requirements and proposed a rough solution.

Technical Round 3

The interviewer wanted me to explain my current project in detail, including each module and its integration. I shared my screen and used Draw.io for the explanation, fielding many questions on our implementation choices and the security aspects of the application. The first coding question was to print the top view of a binary tree, which is similar to vertical order traversal on LeetCode but only requires printing the topmost nodes. Following this, I was asked to think of an algorithm to generate permutations of a string. Instead of writing code, I was given a string and asked to predict the output my algorithm would generate, which was quite an interesting twist! Later, we had a couple of basic follow-up questions on binary search trees.

Managerial Round

This final round was with the product manager. I felt that by this stage, they had already considered me for the role. The discussion focused on my experience with Agile methodology, and the manager explained how they operate within NetApp using Agile. He detailed the requirements they were looking for and mentioned they were designing a new product, though I don't clearly remember all the specific details.

Interview Questions (7)

Q1
Design Singleton Class (Thread-Safe)
Other

Design a singleton class. Start with a naive implementation and then adapt it for a multi-threaded environment.

Q2
Find Middle of Linked List
Data Structures & AlgorithmsEasy

Find the middle node of a given linked list.

Q3
Reverse Linked List
Data Structures & AlgorithmsEasy

Reverse a given linked list.

Q4
Reverse Nodes in K-Group
Data Structures & AlgorithmsHard

Reverse the nodes of a linked list k at a time, and return the modified list. If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is.

Q5
Design a Cloud Storage Billing Module
System DesignMedium

Design a billing module for a system hosted on AWS servers. Users are allocated cloud storage. When the limit is exceeded, extra storage should be automatically allocated. Users should see details during billing. Logs should be generated every 15 minutes, updated into a DB, containing storage used in the past 15 minutes. The billing module should read these logs, parse by user IDs, and send data to AWS billing.

Q6
Top View of Binary Tree
Data Structures & AlgorithmsMedium

Print the top view of a binary tree. This is similar to vertical order traversal but only the topmost nodes at each horizontal distance should be printed.

Q7
String Permutations (Algorithm Prediction)
Data Structures & AlgorithmsMedium

Think of an algorithm to generate permutations of a string. Instead of writing code, given a string, predict the output your algorithm would generate.

Preparation Tips

I diligently prepared for the interviews by practicing a wide range of common data structures and algorithms problems, with particular emphasis on linked lists, binary trees (including BSTs), and string manipulation. I also focused on strengthening my system design principles, covering distributed systems, cloud-based architectures, and fundamental object-oriented programming (OOP) concepts and design patterns like the singleton pattern. Additionally, I reviewed common behavioral questions and prepared to discuss my past projects in detail.

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!