I reached out to various hiring managers at Oracle OCI and personally contacted them on LinkedIn. One of them replied (after a month) and luckily, I happened to apply for the particular requisition through the careers page which is under her team.
Initial Phone Call:
This was initiated by the hiring manager where they briefed me about the role, interview process, went through my resume and explained how OCI is competing against AWS and Azure.
Phone Screen: 1hr
One of the members of the team interviewed me.
- The first 25 minutes were about my resume, projects, why Oracle OCI and some behavioral questions.
- For the next 35 minutes, he gave me a string question which I needed to compress. It was an easy question, which can be done by using HashMap and String Buffer. I explained the solution and coded with all corner cases within 20 minutes.
- Then he gave me a follow-up question where the string will have other special characters apart from English alphabets, for which I explained the approach. He did not want me to code though.
- The last 5 minutes he wanted me to ask whether I had any questions for him.
After 4 working days, I received an email stating that I had cleared my phone screen and would be moving for an onsite interview.
In comes COVID-19
I again received an email that Oracle is moving with virtual interviews and I had to reschedule my interview with new dates (but they did not provide any confirmation to previous dates I provided)
Then I finally gave my virtual onsite on March 20, which consisted of 5 rounds.
Virtual On-site: 5x60 minutes
Round 1 (Hiring Manager, 60 minutes):
- She introduced herself and her team and asked about my introduction (10 minutes).
- Then she asked me to explain a project which I am proud of and some cross-questioning (10 minutes).
- Design a URL shorten (only functional requirements). (10 minutes)
- All previous work experience and what all did you learn (10 minutes)
- Some behavior-based questions to see how I will fit in a team and how I will handle multiple tasks and conflicts at the workplace. (10 minutes)
- Then she informed me that Oracle OCI is on a hiring freeze.
- (This made me tense. It kinda made me non-enthusiastic about the coming rounds).
And then she left 5 minutes before to give me a small break.
Round 2 (Product Manager, 60 minutes):
It was a vague round. The PM was not associated with the team I was interviewing. There were no technical questions. It was all behavioral questions on what I performed at my previous and current workplaces.
This was a complete 60 minutes interview
Round 3 (Technical Round, 60 minutes):
This was taken by one of the Staff Engineers of the team (Took me sometime to understand her accent)
- Each other's Introduction (10 minutes).
- Explanation of one of my projects mentioned on my resume (10 minutes).
- A PriorityQueue (Top k frequent) based question. Since I already solved it on Leetcode, I knew the most optimal solution. I started explaining the brute force approach and slowly drove to the most optimized solution.
- Then she asked me to write different test cases to test my algorithm and create custom Exceptions for handling edge cases.
This interview was over in 50 minutes.
Round 4 (Technical Round, 60 minutes):
This was taken by one of the Senior Engineers of the team.
- Personal Introduction (5 minutes).
- Explanation of one of my projects mentioned on my resume (10 minutes).
- Again a PriorityQueue based question about finding max K elements in an array. Similar to the earlier interview, started from brute force to the most optimized solution (10 minutes)
- Coded and wrote all test cases (10 minutes)
This interview was over in 40 minutes.
Round 5 (Technical Round, 60 minutes):
This was taken by one of the Staff Engineers of a different team in OCI.
- Each other's Introduction (10 minutes).
- He picked one of the projects mentioned on my resume and asked me to explain it (5 minutes).
- Asks me about my project that I did during my summer internship (5 minutes)
- Again a PriorityQueue based question but this was related to logs in a file which was also easy. Explained him all the approaches involved, but he also asked me if I can do it using divide-conquer i.e. quick-select. Since, I knew a bit about it, I explained him whatever I knew about it and he was satisfied (10 minutes)
- Coded and wrote all test cases. (15 minutes).
- Then he gave me a test where I failed to maintain the relative order of elements with equal priority. I fixed the issue in my custom comparator and it worked like a charm. (5 minutes)
Later, he asked me if I had any questions for him.
I think I either got lucky or the team wasn't that much interested in interviewing because each question in each interview required the same data structure.
After a week, I get a call from the hiring manager saying that she has put me on hold, because of the hiring freeze at OCI and will extend the offer after the hiring freeze.
EDIT-1:(Updated on September 21):
I finally got the offer on September 4.