My background: Total 2 years 3 months experience
Got a referral for an Associate role. Received hackerrank test link a week later.
Don’t remember the questions but one was an easy level question and second was leetcode medium level. Was able to solve both of them.
The recruiter reached me and informed me that I would be considered for an Analyst profile as my years of experience are less than 3.
Question 1
https://leetcode.com/problems/fraction-to-recurring-decimal/description/
Question 2
https://leetcode.com/problems/trapping-rain-water/description/
I explained the approach for the first problem and jumped into implementing it. For the second question, I discussed the extra space approach first and then explained the constant space approach and implemented it. I had to execute my code for some test cases. After that the interviewer added some more test cases. I had to handle some corner cases in the first problem in order to pass them.
Two interviewers were present, one question asked by each of them.
Question 1
https://leetcode.com/problems/pairs-of-songs-with-total-durations-divisible-by-60/description/
Question 2
https://leetcode.com/problems/median-of-two-sorted-arrays/description/
Again the expectation here was to produce an optimized working solution that should pass the test cases. For the second question, I first gave the approach using extra space but surprisingly the interviewer asked me to code and execute that. And after executing all the test cases, he asked me to optimize the approach. I was able to explain to him the optimized approach and was able to write the code, but some tests were failing and we ran out of time.
Two interviewers were present. The first interviewer asked this question.
Question 1
https://leetcode.com/problems/sliding-window-maximum/description/
The remaining 30 mins were dedicated to some discussion around my resume, operating system and system design concepts.
The interviewer went in depth in one of my recent projects in my current company.
After that he started asking OS questions like:
The interviewer then asked how to handle concurrency in a theater booking system, focusing on how to make sure two users don’t book the same seat at the same time. I was also asked about handling cases where payment doesn't go through and how to release the seat if the user doesn’t complete the payment. The interviewer asked about what would be the best customer experience during the entire process. Additionally, the interviewer wanted to know how to identify and prevent payment failures before the user even goes to the payment page. We discussed using locking methods, setting time limits for holding seats, checking seat availability in real-time, and doing checks before sending users to the payment page.
Question 1
Given a 2-D String array of student-marks, find the student with the highest average and output his average score. If the average is in decimals, floor it down to the nearest integer.
Input: [{"Bob","87"}, {"Mike", "35"},{"Bob", "52"}, {"Jason","35"}, {"Mike", "55"}, {"Jessica", "99"}] Output: 99
Explanation: Since Jessica's average is greater than Bob's, Mike's and Jason's average.I explained the brute force as well as the optimized approach. Then was expected to code and execute the sample test cases. The interviewer then added some additional test cases for these. Some tests were failing due to negative scores. Fixed the cases.
The second interviewer asked me some Java related questions like:
I was asked how to design a system where employee records are sent from an upstream service to my service, which then updates the data in a downstream service. Handling the communication between services (Kafka / SNS-SQS (I had experience with SNS-SQS)). The same employee record with a different timestamp can arrive, we have to update the previous record based on timestamp. This timestamp is different from the current timestamp. (Records can come in any order of timestamps).
I clarified the requirements but felt that the time left was too low. Proposed the approach to the interviewer, he then asked me about the database choices (SQL / NOSQL) and was asked to write a schema for the employee record.
It was a quick 20-25 mins call. The HM asked some questions like
Verdict: Received offer 2 weeks later.
Compensation Details: https://leetcode.com/discuss/compensation/5921924/goldman-sachs-vs-flipkart-bengaluru/2678378