Round 1: Telephonic Round (90 minutes)
It was a telephonic round. The interviewer started with brief discussion about my projects and technologies I know. Then he asked me following questions:
- Given an unsorted array – arr find a pair arr[i] & arr[j] such that arr[i]<arr[j] & i<j and (arr[i] + arr[j]) is maximum.
Expected time complexity – O(n)
Follow up question – extend this to finding triplet such that arr[i]<arr[j]<arr[k] & i<j<k and (arr[i] + arr[j] + arr[k]) is maximum.
- Given a snake & ladder board with only ladders and no snakes, find the minimum times one has to roll dice to reach the destination.
Follow up question – include snakes on the board and find the same.
After this round they called me for F2F interview.
Round 2: Machine Coding Round (90 minutes)..
This round one has to code to a give problem. I was asked to code a TextPad with following functionality:
- display() – to display the entire content
- display(n, m) – to display from line n to m
- insert(n, text) – to insert text at line n
- delete(n) – delete line n
- delete(n, m) – delete from line n to m
- copy(n, m) – copy contents from line n to m to clipboard
- paste(n) – paste contents from clipboard to line n
- undo() – undo last command
- redo() – redo last command
They expected the textpad to be in memory(not as file). They also expected to handle error gracefully and the program to be menu driven.
Round 3: F2F interview. (1 hour)
In this round they asked two questions:
- LRU cache implementation
- Stock-Span problem with also printing dates of stock purchased and sold.
Then he went through my current work and had a discussion over how I implemented certain scenarios and how I measured performance of the product. He was interested in knowing design/architecture of the solution we implemented.
Round 4: F2F interview (2 hour)
In this round he started with projects that I was part of in my current work and had a lengthy discussions on it.
He also asked me questions on what I would change if I had to redo my projects for a cloud environment.
He also asked questions on distributed systems, load balancer and concurrency.
Lots of questions around how to measure key metrics of the products.
Note : I had to code all of the problems.