To start with I would like to thank the leetcode community which has helped me a great deal in getting this job. I went through a lot of these discussions to find out first hand experiences from the users. Sometimes very similar questions being asked in the interviews. I had been preparing for interviews for almost 2 months before getting the offer.
Now coming to Interview questions:
1st Round (Hiring Manager):
Mostly these rounds are for hiring managers to check your technical skills at a higher level, but it wasn't the situation in my case, the manager had come with all guns blazing. We talked about my projects and then took a little dive distributed systems and my tech stack (Kafka, Spark, Hadoop). Then he asked me a very vague question which we had to discuss first and then code.
Merge two JSON Objects such that JSON value updates only when the types match and second json overrides the first json. The values can be of String, Integer or Object format. Came up with the data structure which is a simple Map<String, Object>. I missed an aspect where could be N levels of data in a JSON which have to merged recursively, coded the solution in time.
json1
{
a: 1,
b: c,
d:
{
e:1,
r:
{
t:1
}
}
}
json2
{
a: 2,
b: 3,
d:
{
e: 3,
r:
{
t:2,
y:y,
u:
{
x:1
}
}
}
}
Result:
{
a : 2,
b : 3,
d : {
e:3,
r:{
t:2,
y:y,
u:{
x:1
}
}
}
}2nd Round
Interview was of string storage background and had worked alot with kernel level devleopment, when she told me about her experience i was kind of scared what if she asks me some really unrealistic OS concepts which Nutanix is famous for. But anyway she asked me questions to check my Algorithmic and Distributed Systems together.
Q1 There are N number of clusters and on each day they send some telemetry and write it to a file in following format. We are given the key for each day is lexicographically sorted, device API's which can help you search and delete per cluster telemetry in an optimized fashion.
day1:
a:aaaa
b:bbbb
c:eeee
dd:rrrr
ef:yyyy
day2:
e:yyy
t:iiiiiii
oo:ppppQ2 Follow up there is a large stream of numbers which these clusters are sending and we want to calculate top K and bottom K elements from these streams. Come up with a solution and then optimise the solution.
(Hint: Min and Max Heap can be used + there can be 2 more optimizations that can be done to increase overall performance)
3rd Round:
Interviewer was quite nice and straigtaway asked a question. This time finally a question which i had done on leetcode but a long time back, explained him the approach and started coding struggled a bit with so many pointer(Note: It may happen alot of times where even if you have done a question before you might struggle in the interview because of the pressure, in that case just keep your mind calm and talk out loud).
Q1:
https://leetcode.com/problems/recover-binary-search-tree/
Q2: Design a ETL pipeline which is scalable and fault tolerant and caters to Petabyte scale data ingestion.
Next day talked to HR and asked if any more rounds are scheduled and he informed me that all interview feedbacks are positive so they will be moving ahead with the offer. Got an offer 1 week later.
Compensation Post here: https://leetcode.com/discuss/compensation/1308142/Nutanix-or-MTS-3-or-Pune