Experience: 4.5 yrs.
Position: Senior Software Developer at Oracle India.
Location: Bangalore, India
-
Online Assessment (~90mins)
HackerRank round
I don't remember the questions but they were LC Easy (String based) and LC Medium (Stack based)
-
Coderpad round(~60mins)
- Similar to question https://leetcode.com/problems/pascals-triangle-ii/ , only thing is instead of only rowIndex, colIndex was also provided. You need to return the value at particular (rowIndex, colIndex). Did the recursive solution.
- 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.
E.g.
Input: [{"Bob","87"}, {"Mike", "35"},
{"Bob", "52"}, {"Jason","35"},
{"Mike", "55"}, {"Jessica", "99"}]
Output: 99
Also I was asked to test different possible edge cases.
After one week they scheduled round 3-6 on a single day
-
Round - 3 (LLD, DSA)
- Low Level Design for Phone Directory/Contacts of your mobile phone.
- Implement the search functionality in Contacts. I was supposed to consider Contact name based search as well as Phone Number based search. Maintain both [Contact Name -> Phone Number] mappings and [Phone Number -> Contact Name] mappings. Implementing Trie data structure in this case is one of the solution.
- Check if a given Linked List is a palindrome or not. Resursive solution is required.
-
Round - 4 (LLD, Project Discussion)
- Low Level design of Cache Policy.
- Implementing different algorithms LRU, LFU.
- Discussion about existing project and how I can restructure/redesign my current project to make it better. Flaws and limitations in current design.
-
Round - 5 (HLD, DSA)
- High level design for one of their own existing transaction related service. They explained me their project and asked me to come up with high level design of it.
Scenario : They have thousands of transaction running on a dashboard in a span of 15 minutes. After each transaction execution they have a list of consumers taking up each transaction and have to execute set of mandatory new post processing tasks. Taks could be anything, either a DB update, a rest third party call, an update call or anything.
Discussion about message queues implementation for task processing.
- Scenario based question on DS. Auto Generating sequence number plates for vehicles. How I can generate special numbers for vehicle and manage collision with the auto generating sequence for normal number plates. Two methods to implement :-
public int getANumberPlate();
public boolean isSpecialNumberAvailable(int Number);
- https://leetcode.com/problems/median-of-two-sorted-arrays/
-
Round - 6 (Managerial)
- Discussion about projects.
- Innovative ideas in the current project.
- Innovation I have done in my old company's project.