I interviewed for a Software Engineer position at Oracle in Seattle in February . I was a new graduate with a Master's degree in Computer Science.
The interview process started with a phone screen. The question was not a typical LeetCode question. It involved a list of words, a number K, and a list of characters. The goal was to return a string with K unique characters, either using whole words or not using any characters from a word. The interviewer was helpful in guiding me through the algorithm and coding it up. The phone interview was scheduled for one hour but extended to two hours. I was able to solve the problem and code it up in Coderpad.
I was surprised to receive a call back the next day for an onsite interview. I prepared for the onsite by practicing 85 Oracle-tagged LeetCode questions and studying Object-Oriented Design and System Design.
The onsite interview consisted of five rounds.
Round 1: The question was to convert a file structure into a tree. I was able to solve the problem within 40 minutes using a HashMap to store the child of each parent and then using recursion to convert it into an n-ary tree.
Round 2: The question was to determine if an array was skippable. I came up with a brute force recursive solution and then optimized it with memoization and dynamic programming. I was able to complete all three solutions within 40 minutes.
Round 3: This was a 90-minute lunch interview with the hiring manager. It was mostly behavioral questions.
Round 4: The same interviewer from the phone screen returned for this round. He brought a deck of cards and shuffled it, asking me to write code to simulate the shuffling process. I was able to write part of the code, but the interviewer was unable to extend the interview due to time constraints.
Round 5: This was a behavioral round with a different hiring manager. I felt this round went well.
Overall, I was confident that I would receive an offer after the interview process. However, I received an email from the hiring manager stating that I was not selected. The feedback was that I may need additional coaching from peers and that the team was looking for developers who could work independently.
I was disappointed with the feedback, especially since I had performed well in the onsite interviews. I was also surprised that they invited me for an onsite after the phone screen, considering my performance.
Despite the outcome, I found the interview process to be positive. All the interviewers were friendly and helpful. I was also happy to have solved problems that were not typical LeetCode questions.