Hackerrank Online Assessment
3 Questions (Leetcody Easy to Medium level)
I got 100% test case passing in all questions
I got a call from the HR within a few days of the OA informing that I'd cleared and to schedule the next 2 rounds.
Technical Round 1 - DSA (1 hr)
We spent the first 5 minutes in introduction and then I was given two questions to solve.
First question was on LinkedList. I was able to solve it in 10-15 minutes but my solution wasn't space optimised so I was asked to improve and I coded another approach with best case time and space complexity. The interviewer was very helpful in dropping hints while I was trying to figure out the second approach.
Second question was on sliding window (with fixed window size). My first solution was already optimal so I didn't have to change anything.
I was told to execute both codes and test them for edge cases. I got one mistake in the second question and fixed it on the spot.
The last 5 minutes were reserved for asking questions which I utilized to ask about day to day work, resposibilities, team & culture.
After the interview, I was asked to send the code.
Technical Round 2 - DSA (1 hr)
First question was on Binary Search on rotated array. I had already solved this before but got confused during writing the nested if else condition. The interviewer pointed it out and guided me towards the right solution.
Second question was on Heaps. I'd solved a similar question for another interview and gave the heap approach right away. I was asked if I can improve the space complexity and I tweaked the existing code slightly.
Third question was more on LLD/OOPs. I was asked to write classes and associated function for a given use case.
Similar to the last round, I was given 5 mins for questions and shared the code with the interviewer.
I got a positive response from both rounds. If you get a positive response from either of the two DSA rounds, the next two rounds are scheduled on the same day.
Technical Round 3 - LLD
I had a few hours after my DSA resulte and before my LLD round which I spent watching Soumyajit Bhattacharyay's Youtube playlist. I was asked a generic LLD question which was already covered in the playlist so I was able to write the classes for it and explain SOLID principles and design patterns used. There was a lot of questioning on choice of why certain functions were written in appropriate classes and what would be the impact of them being written in another class. The interviewer also spent some time asking basic HLD questions on sharding, consistency, etc.
Hiring Manager Round
This was a techno managerial round. He made me write a DSA related function, which I coded in C++ as my other DSA rounds. Then he asked to code some Lambda functions in Java and write the format of REST APIs in Spring & Hibernate. This was specific to the role I was applying to and since my work experience was in the same tech stack, I was able to write it. He spent a lot of time asking about projects on my CV and finding out what I do outside of work, to test passion for technology. I had a couple of hackathons on my resume which helped. We spent about 10 minutes in the end discussing my questions and queries on the role, team and organization.
I got a call from the recruiter within a few days sharing that I've been selected and asking me about expected salary. I accepted the offer and negotiated after a month when I had counter offers.