I interviewed for an MTS (Server Technology) position at Oracle in August . I had a previous work experience of one year and was a recent graduate with a Master's degree. The interview process consisted of four rounds.
The first round was an online assessment which included four sections. The first section was a coding problem that was easy to medium in difficulty. The second section was a REST API problem where I had to make a GET request, fetch data, perform some calculations, and return the results. The third section was an SQL problem that involved joins, group by clause, and aggregate functions. The final section consisted of multiple-choice questions based on data structures and aptitude.
The second round was a technical interview focused on data structures and algorithms. The interviewer asked me to solve three coding problems. The first problem was to determine if a given string could be rearranged to form a palindrome. The second problem was to delete a node from a singly linked list given a pointer to that node. The third problem was to find the starting node of a cycle in a singly linked list. I was able to solve all three problems and test them on the HackerRank editor.
The third round was a technical interview that was more unstructured and involved a mix of project discussion, data structures and algorithms, and behavioral questions. The interviewer asked me about my previous work experience and how I managed challenges while learning new technologies. I discussed my projects and the tech stack used. He asked me about my understanding of socket programming, DBMS, algorithms, and OOPs concepts. I explained my project, the reason behind building it, and the problem it was solving. I also discussed the use of firebase as a backend as a service and the difference between relational and NoSQL databases. I explained the debt-simplification algorithm I implemented in my project and discussed different approaches to solve the problem. I also explained the max-heap data structure and implemented it partially. The interviewer then asked me to insert a node at its correct position in a sorted linked list.
The fourth round was a technical interview focused on database design and OOPs concepts. The interviewer asked me to explain the relationships between tables, the need for each table, foreign key and primary key relationships, and why the database design followed 3NF. I also discussed use case, class, sequence, and component diagrams. At the end of the interview, I asked the interviewer about his journey at Oracle and the different roles and verticals he worked in.
After the fourth round, I was informed that no further interviews were scheduled for me. I assumed I had been rejected. However, four hours later, I was informed that I was one of five candidates selected from my Master's program.
Key takeaways from this experience include the importance of consistency in practice, a diversified and justifiable resume, core subject knowledge and its practical usage, and being aware of the most recent interview process of any company. I practiced around 800+ DSA problems consistently in the past year on platforms like Leetcode, BinarySearch, and Codeforces. Although the questions asked during the interview were relatively easy, the preparation helped me perform well.