Technical (1 hour):
A detailed discussion on Rest API protocols. The interviewer asked me things like why REST is considered stateless and what advantages it has over SOAP etc. Then we dived deep into the implementation details of various protocols.
Later, the interviewer asked me to design a singleton class.
Starting with a naive implementation, the interviewer asked me to design the same for a multi-threaded environment.
For the remaining time, he asked very basic questions on linked lists like finding the middle and reversing etc.
Technical (1 hour) :
The interviewer started this round with a discussion on my current project and my overall experience etc.
The first coding question was to reverse k nodes in a group.
I asked him a couple of follow up questions and then came up with a solution. I wrote the code and executed the same with various test cases.
After that I was asked to design a billing module for their system. The system specifications are as follows -
The application is hosted on AWS servers.
Users are allocated some cloud storage based on their subscription. Whenever the limit is exceeded we have to automatically allocate extra storage. User will be able to see the details during billing later.
Logs should be generated every 15 minutes and updated into the DB. The logs should contain details of the storage used by the user for the past 15 minutes.
The billling module should read these logs and parse them based on user ids and send this data to AWS billing.
I asked him a couple of other requirements and came up with a rough solution for the same.
Technical (1 hour) :
The interviewer wanted me to explain my current project with a detailed explantaion on each module and integration that I worked on. He asked me to share my screen and explain it on draw.io.
He kept asking me a lot of questions on how we implemented a particular solution etc. He then asked me about the security aspect of our application.
The first coding question was to print the top view of a binary tree. This is similar to vertical order traversal on leetcode but we don't have to print the internal nodes.
After this he asked me to think of an algorithm to generate permutations of a string, but instead of writing the code for the same he gave me a string and asked me to predict the output my algorithm would generate. It was different and a bit interesting too!
Later on a couple of other follow up questions on binary search trees etc. Pretty basic questions.
Manegerial (1 hour) :
This was with the product manager. I felt that by this round they've already considered me for the role as it went on with the manager asking me my experience with agile methodology and him explaining the details of how they work based on Agile Methodolgy in NetApp. He explained me the requirements they are looking for and told me that they're designing a new product and some other details that I don't clearly remember
Compensation details - Here