Oracle Applications Engineer Interview Experience
Summary
I interviewed for an Applications Engineer role at Oracle, which consisted of an OA, two technical rounds, and one HR+technical round. Despite solving a LeetCode medium problem and discussing complex system design challenges, I was ultimately rejected.
Full Experience
I participated in an on-campus interview experience for an Applications Engineer role at Oracle, which involved four distinct rounds, ultimately leading to a rejection.
Round 1: Online Assessment
The first round was an Online Assessment consisting of 20-30 MCQs and a single coding question. My coding question involved concepts from DSU (Disjoint Set Union) and mathematics, which I found to be of easy-medium difficulty, assuming a decent background in Competitive Programming/DSA.
Round 2: Technical Interview
This round began with my introduction. The interviewer then asked me to explain my Spring Boot application in depth. I was given two follow-up questions on how I would extend my project, which I answered by discussing potential changes to the underlying data structures while maintaining existing APIs. Following this, I was presented with a LeetCode medium question, Count Numbers with Unique Digits, which I solved using a DP approach, although I felt it might have been an overkill. I was also asked to rate my proficiency in Java and SQL, for which I gave myself ratings of 3.5 and 3 out of 5 respectively. The round concluded with several basic OOPS questions in Java, most of which I was able to answer.
Round 3: HR + Technical Interview
The third round was a combination of HR and technical questions. I was asked to briefly describe my three years of college and discuss the projects listed on my resume, including a formal LOP project on Blockchain+DL. I faced follow-up questions regarding my use of REST APIs, which I answered, though not with complete confidence. The interviewer also inquired about my post-college plans, my programming frequency, and when I started programming. Towards the end, I was challenged to design the direct chat and group chat features for WhatsApp. I responded by outlining functional and non-functional requirements and detailing the necessary data structures, such as map<int,pair<int,string> > for direct chat and map<int,pair<vector<int> , string>> for group chat.
Round 4: Technical Interview
This final technical round started unexpectedly with a question about whether I watch the Olympics. I was then asked to describe myself in terms of education, skills, and inspiration. The conversation quickly shifted to a complex, open-ended problem concerning a Lot Management System, providing a DB schema (Lot_ID, LotGrade, LotExpirationDate, LotStatus, Miscellaneous).
I was posed several questions based on this system:
- How to determine the industry a Lot belongs to by analyzing the 'Miscellaneous' column. I suggested using NLP techniques to extract strings, feeding them into an RNN network, and potentially clustering based on 'LotExpirationDate' or using another ANN layer for improved accuracy.
- How the organization could efficiently obtain a median 'LotExpirationDate' for all consumers, considering industry variations. Initially, I proposed extracting all expiration dates relative to the current time and finding the median, with a fallback to the mean if the median was too close to current or expiration dates. When the interviewer pointed out the database's large size, I adapted my solution, suggesting the use of NoSQL databases specifically for expiration times. I would create clusters based on expiration durations, then operate within these groups, applying ML heuristics to identify patterns, reasoning that industries like bakery and restaurant (both food) might have similar (LotExpirationDate - currentDate) values.
- How to implement a feature allowing customers full control over setting 'LotExpirationDate' and receiving automatic expiration notifications. I presented two approaches:
- If an existing customer database with previous records was available, I would use the 'Miscellaneous' attribute to guess the industry, retrieve its threshold duration from the database, and send it to the customer.
- If no existing database, I would conduct unit testing on a sample of customers to identify patterns and then extrapolate these insights to a wider audience.
The round concluded with me describing all three rounds and what I learned from each.
Ultimately, I received a rejection.
Interview Questions (5)
The interviewer asked me to describe how I would implement the direct chat and group chat features of WhatsApp. I discussed functional and non-functional requirements and proposed data structures for implementation.
Given a Lot Management System with a database schema including a 'Miscellaneous' column, how would one determine the industry a particular lot belongs to by analyzing this column?
In a Lot Management System, how would the organization efficiently calculate the median LotExpirationDate for all consumers, considering that this duration can vary significantly across different industries?
Design a feature for a Lot Management System where customers have complete control over setting the LotExpirationDate and receive automatic notifications when a lot is nearing its expiration.
Preparation Tips
The post did not explicitly detail my preparation strategy. However, for the Online Assessment, it was mentioned that a decent background in Competitive Programming (CP) and Data Structures & Algorithms (DSA) would be beneficial, implying a general focus on these areas.