Total yoe : 5
Job Location : Bangalore
Got a referral followed by HR call. He told me about interview process and it started pretty soon. This was for Oracle health. Actually somehow 2 different teams from Oracle health started interviewing me at the same time. So I had a total of 10 rounds with Oracle. All the interview had a hackerrank code editor associated for implementing tech questions.
Team 1:
R1:
Intro followed by some non-tech questions.
Tell me what excites about your work?
Tell me a time where you improved something in codebase?
Tell me a time when you did a mistake?
Tell me a time when you foresaw a bug and improved it?
DSA : Given an encoded string. Return a 26 length frequency array(array whose elements are count of each character from a-z) for that decoded string. 'a' was encoded as 1, b as 2,...,j as 10#, k as 11#,.., z as 26#. For multiple repeating character, we have count encoded in ( ). For e.g., 26#(2) is 'zz'.
R2:
This was with manager. Introduction followed by a lot of discussion around why you want to join Oracle again. Tricky iff and buts questions. Asked me to draw a HLD of my last project, loopholes if any in the system and how it can be improved. My contribution in the project and asked all nitty gritty details about it. Questions around API design.
R3:
Introduction followed by some non-tech questions.
Tell me a time when you reduced a project scope?
Tell me a time when you had knowledge gap and how did you improved it.
DSA : Given a undirected graph. Each node in the graph is a person. If 2 nodes are connected, it means they are friend. Given a graph with N users, you have to implement a friend recommendation system. The output should be a array of size N, each element will be the recommended friend for ith node. Now let's say we have 0-2,0-1,2-3,1-3,3-4,0-5,6-5 as a graph. For any node N, we have to skip it's immediate friend and start considering all next level friends and pick the one who has maximum common friends. In this case if we consider 0, we have 3 and 6 in it's next to next friend list. 0-3 have 2 common friend and 0-6 have 1, so for 0 3 is the answer. In cases where in we have multiple answers, choose the one with lowest index. Solved this with indegree, outdegree logic. Had around 25 mins to implement this. Although I couldn't pass all the test cases(7/15), still the interviewer was satisfied with the approach. A little improvement would have solved it fully.
R4:
Intro. Design a stock broker like NSE/BSE. Questions around how we can reduce system latency upto ms/ns?
R5:
Intro followed by non-tech questions similar to above. Was asked the same DSA of R1 but was asked to implement using another approach.
Team 2:
R1:
Intro followed by dsa and other questions. Given a json with nested keys and values similar to
[{
id: 1,
name: Alice,
addressDetails : [
{
cityId: 3,
city: Abc,
// other key value pairs
}
,{},{}
]
},{}]
Find all employees who lives in a given target city. A couple of java stream questions. Other than streams what all could be used(Jackson Json parser apis)
Microservices patterns, have you implemented any, which one and what was the use case?
Let's say you have an api /getAllUsers. How will you secure it?
How would you handle concurrency in your application. Questions around distributed lock. How it can be implemented?
How would you handle a file which is very big in size.
The interviewer pasted a buggy code. Had to add review comments in that.
Implement a BST.
What all steps can be taken to improve response time of APIs?
Design patterns, what is a builder design pattern?
Have you implemented resiliency?
Caching use cases in current project?
How do you maintain atomicity in transactions?
R2:
Introduction.
Implement a generic print function.
Given a sorted array. Implement lower bound.
LLD : Design Air Traffic Controller.
Classes, API, Design patterns. All sorts of extension that this could have was talked through.
You have 55 dogs and 8 poles. How can you tie all dogs with the poles. (You can't)
R3:
Intro.
Singleton class, how and where is it useful. Asked to implement.
DSA : Given a matix convert all rows in columns.
What is factory design pattern, how do you write unit test cases for it?
Given a db with 1M patient data records, you have to show all data on UI. Design a HLD(lazy loading and pagination was discussed). How does lazy loading works internally?
R4:
Intro. This was a round with director. Asked me why you wanted to join Oracle again? Wasn't convinced with my answer, advised me to not switch very frequently. Deep dived in company level HLD and wanted to know tech stack and flow of major services.
R5:
Intro. Asked project architecture. Fallback for a couple of loopholes. Asked a system design question for notification service. A service capable to deliver 10M daily notifications via different channels like emails, messages, push-notifications. Ended with why you want to join Oracle again.