Oracle Interview Experience | OAL | IC3 | Reject
Senior AI engineerOracle | IC4 | Interview Experience | Ghosted by HR
ic4Oracle ic4
Oracle Sep 2025 PMTS Screening Round | Poor experience
PMTSOracle On-Campus Interview Experience
intern + fte69 more experiences below
Summary
I applied for a Senior AI engineer role at Oracle's OAL team and went through an OA with machine learning and coding challenges. Despite solving the coding question optimally, I faced challenges in the interview round where I struggled with a backtracking question. However, I performed well on LRU cache and Top Kth Element problems. The puzzle about measuring 9 minutes with hourglasses was solved correctly. Overall, I didn't receive positive feedback and was rejected.
Full Experience
I applied for a Senior AI engineer role at Oracle's OAL team through Naukri. The OA included topics like Machine Learning, LLM, Prompt Engineering, Aptitude, and Problem Solving. There were 10 MCQs and one coding question where I had to find the index to remove from an array so that the sum of even and odd positions equals. I initially used a brute force approach but then optimized it to pass all test cases.
In the first interview round, there were two interviewers, one being the Hiring Manager. The HM asked a backtracking coding question about generating number strings where the sum of digits equals a lucky number K. I struggled with this and bombed it. The other interviewer asked questions about my resume and then moved on to two coding problems: LRU cache using a doubly linked list and Top Kth Element using a min heap. I answered these well. The HM also asked a puzzle about measuring 9 minutes with 7 and 4-minute hourglasses, which I solved in 5 minutes. However, the HR informed me I didn't get positive feedback and was rejected, likely due to the initial challenges.
Interview Questions (5)
Given an array of numbers, remove one number at any index such that the sum of values at even and odd positions becomes equal. Return the index of the array. If multiple indices are present, return the first one. If no such index exists, return -1.
Given a string length N and a lucky number K, return all number strings where the sum of digits equals K. For example, for N=4 and K=9, valid outputs include "0009" and "5742".
Implement an LRU cache using a doubly linked list.
Find the Kth largest element in an array using a min heap.
You have two hourglasses: one that measures 7 minutes and another that measures 4 minutes. You need to measure exactly 9 minutes.
Summary
I went through the interview process for Oracle's IC4 role at Oracle Health. The interviews were a mix of technical and behavioral rounds, but I was ultimately ghosted by HR and didn't receive any feedback.
Full Experience
I had recently interviewed with Oracle for the position of IC4 at Oracle Health. The process started with a screening round on October 30th, where I was asked basic OOPs concepts, string immutability, serialization, synchronization, and some data structure questions. I also had to implement reverse a string using recursion and discuss linked list operations.
The next round on November 10th was a DSA round with two LeetCode problems: maximum product of three numbers and search in rotated sorted array. I had to solve these on paper, which was a bit challenging.
The third round on November 12th was a HLD round, where I discussed technologies used, Java versions, AWS, and a parking lot HLD. The fourth round was a hiring manager round focusing on project discussions and behavioral questions. The final round was a bartender round, where I discussed projects and a hospital management HLD.
Despite the interviews being average to good, I was surprised to be asked for the HLD of a parking lot. After the interviews, I was ghosted by HR and didn't receive any feedback.
Interview Questions (2)
Summary
I recently went through a technical screen at Oracle for an IC4 role, which I unfortunately failed. The interview was heavily focused on system design and behavioral questions rather than traditional data structures and algorithms.
Full Experience
I recently experienced a technical screen at Oracle for an IC4 position, and unfortunately, it didn't go as planned, leading to me bombing it. This interview notably leaned more towards system design and behavioral aspects than the typical LeetCode-style DSA problems I might have expected.
The session kicked off with a series of STAR method behavioral questions. I was asked to describe a time when I made a significant mistake and how I went about fixing it. We also discussed the technologies and frameworks I typically use, with an emphasis on highlighting specific frameworks. Another behavioral question prompted me to recall a situation where I was working on something I initially didn't understand at all, and how I managed to overcome that challenge to complete the task.
The technical portion, administered via HackerRank, consisted of two main problems. The first task was to design a server scheduler. I was given a server and an end time for a task, and my implementation needed to return a signal indicating whether the job could or could not be run. The second question built directly on the first, extending the scenario to include multiple servers with dependencies. This problem was explicitly described as similar to the 'Course Scheduler' problem found on LeetCode, strongly suggesting a solution involving a directed graph and Depth-First Search (DFS).
Interview Questions (4)
Describe a time when you made a mistake and explain how you fixed it.
Describe a time where you were working on something you didn't understand anything, and how you managed to overcome that challenge.
Design a server scheduler. You are given a server and an end time for a task, and the system should return something to indicate whether the job can or cannot be run.
This problem built on the single server scheduler, extending it to a scenario with multiple servers and task dependencies. It was explicitly compared to the LeetCode 'Course Scheduler' problem, suggesting a solution using a directed graph and DFS.
Summary
I had a poor screening experience for a PMTS role at Oracle. Despite managing to code the Kth Largest element in a BST and discussing the LLD for a multilevel parking system, severe time constraints and technical issues on HackerRank led to a frustrating interview and ultimately, no offer.
Full Experience
My screening round for the PMTS role at Oracle was a truly poor experience. The interview began with two behavioral questions. Following this, I was given a coding challenge: Kth Largest element in BST. I was able to complete the code along with the necessary boilerplate, but I encountered a significant issue with HackerRank's compiler. This technical glitch wasted at least 7-8 minutes, during which the interviewer remained completely unhelpful, simply watching me struggle. Frustrated, I eventually had to ask him to compile the code on his own system to verify it.
Next, I was asked to perform a complete Low-Level Design (LLD) of a multilevel parking system. At this point, only 20 minutes were left for this entire section. I clarified with the recruiter what was expected given the severe time constraint, and he mentioned that a complete design with code was required. With such limited time, I could only define the Functional Requirements (FR) and Non-Functional Requirements (NFR), sketch out a class diagram, and briefly explain my approach for reserving and freeing parking slots, along with a high-level discussion of the API design. The expectation of a complete design and code in such a short period was extremely infuriating.
I tried to reach out to the recruiter multiple times regarding the issues I faced during the interview, but he informed me that he could not provide any assistance. My overall impression of Oracle's interview process, particularly their time management and the conduct of their interviewers, was very negative. If they intend to ask LLD questions in a screening round, they should allocate sufficient time or stick exclusively to LeetCode-style problems. Their attempt to emulate Amazon's approach of including behavioral questions in all rounds, but with such poor execution, truly sucks.
Thumbs down to their pathetic code of conduct.
Interview Questions (2)
Design a complete Low-Level Design for a multilevel parking system. This includes defining functional and non-functional requirements, creating a class diagram, and detailing the approach for reserving and freeing parking slots, along with API design.
Summary
I recently had the opportunity to interview with Oracle for an Intern + FTE role through their on-campus placement drive. The entire process consisted of an online assessment followed by four rounds of interviews: two technical, one managerial, and a final HR round, culminating in a successful offer.
Full Experience
My Oracle On-Campus Interview Experience
I recently participated in Oracle's on-campus placement drive, aiming for an Intern + FTE role. The selection process was comprehensive, starting with an Online Assessment, followed by four distinct interview rounds: two technical, one managerial, and a final HR round.
Round 1: Technical Round (45 mins)
This round was quite intense, focusing heavily on core Computer Science concepts, theoretical knowledge, and basic coding skills. We delved into various topics to assess my foundational understanding.
Round 2: Technical Round (45 mins)
The second technical round was a blend of Data Structures and Algorithms (DSA) and further CS fundamentals. This round involved solving specific coding problems and discussing more complex concepts.
Round 3: Managerial Round (30 mins)
This round was designed to test my problem-solving abilities beyond just technical skills, evaluating my behavioral aspects and how I handle pressure in challenging situations. It was more about my approach and thought process.
Round 4: HR Round (5 mins)
The final HR round was brief and focused on standard questions to assess cultural fit and logistical preferences, confirming my alignment with the company's expectations.
Ultimately, I received an offer for the Intern + FTE role, which I was very excited about!
Interview Questions (21)
Describe what TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are, highlighting their fundamental differences and characteristics.
When do we use TCP and when UDP? Provide examples of scenarios where each protocol is more suitable and explain the reasoning behind your choices.
Discuss the significance of HTTP Status Codes. Provide examples of common status codes and explain their meanings (e.g., 200, 404, 500).
An employee works for 7 days. The employer has a gold rod of 7 units. How does the employer pay the employee 1 unit at the end of each day? Maximum 2 cuts allowed.
Explain the different types of constructors found in object-oriented programming (e.g., default, parameterized, copy constructor), and when each type is typically used.
What is a Virtual Function? Explain its purpose, how it's implemented (e.g., in C++), and its role in achieving polymorphism.
Which data structure do you like more and why? Discuss your preferred data structure, its advantages, disadvantages, and common use cases.
Explain different types of Joins in SQL (e.g., INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN). Describe their functionality and provide examples of when to use each.
Write code to implement the Breadth-First Search (BFS) algorithm.
Design a Tic-Tac-Toe game. Consider the data structures needed to represent the board, the logic for making moves, and how to determine a winner.
Write a SQL query to find the Kth minimum salary from a table. Assume you have an 'employees' table with a 'salary' column.
What happens when you have same-named classes in a JAR file and you call that class? Explain the class loading mechanism in such a scenario.
You and I have a cake. I took some uneven part from it. Now your friend comes. How can you both share the remaining cake equally?
Tell me something not in your resume that defines who you are. This could be a hobby, a passion, or a characteristic not evident from your professional experience.
Your team has written 100K lines of code and delivered it to the client. The client faces an issue, and your entire team is on leave except you. How do you solve this situation?
Explain the working of a HashMap. Describe its internal structure, how elements are stored, collision resolution techniques, and its time complexity for common operations.
What is your preferred work location, and are you open to other locations?
Are you willing to relocate for this role?
Do you have any other job offers or are you currently interviewing with other companies?
Do you have any questions for us about the role, the team, or Oracle as a company?
Summary
I participated in Oracle's campus hiring for a Full-Time Software Developer role, successfully clearing all technical rounds but ultimately receiving a rejection after the HR and managerial interview.
Full Experience
Oracle visited our campus in September 2024, recruiting for Full-Time Software Developer roles across different teams. I went through their interview process which included an online assessment, two technical interviews, and a final HR/managerial round.
Round 1: HackerRank Online Assessment
This round comprised one coding question based on simple math/triangles and multiple-choice questions covering Aptitude, OS, CN, OOPs, and DBMS. I attempted all questions and felt confident about my performance, believing I scored around 80%.
Round 2: Technical Interview 1 (In-person)
This interview focused on Data Structures & Algorithms, my resume, and frontend concepts. I was asked to implement Merge Sort and traverse a linked list, demonstrating both brute-force and optimized approaches. We also discussed my project and tech stack from my resume, along with the detailed steps involved when entering a web page URL. Frontend questions touched upon HTML tags, React DOM, unit testing, semantic elements, and CSS basics. I felt very confident about this round and successfully cleared it.
Round 3: Technical Interview 2 (In-person)
The second technical interview delved deeper into DSA, Java, and OOPs. I implemented a solution to remove duplicates from a linked list, presenting both a brute-force and an optimized method. Java discussions included a simple multithreading implementation and some high-level concepts. For OOPs, I was asked about inheritance implementation and some tricky theoretical questions. This round also felt positive, and I moved to the final stage.
Round 4: HR + Managerial
This final round covered cultural fit questions, further discussion of my resume, and an explanation of the client-server flow and its steps. Honestly, I couldn’t quite gauge the interviewers' mood during this session.
Despite clearing all the technical rounds, I received a rejection. I had been hopeful, especially after feeling good about the HR round. It was my first in-person interview, and I genuinely felt I performed strongly on the technical aspects. While the rejection was disheartening, I knew I had given my best. I suspect less preparation for the managerial/behavioral questions and more spontaneous answers might have contributed to the outcome. I hope sharing my experience can be helpful for others preparing for interviews.
Interview Questions (5)
I was asked to implement the Merge Sort algorithm, demonstrating the code and explaining its working principle.
I needed to explain and implement ways to traverse a linked list, covering both brute-force and optimized approaches.
I was asked to describe the detailed sequence of events and steps that occur from the moment a user types a web page URL into a browser until the page is rendered.
I had to implement a solution to remove duplicate nodes from a linked list, presenting both a brute-force and an optimized method.
In the HR/Managerial round, I was asked to explain the client-server communication flow and outline its various steps.
Summary
I received an offer for the Principal MTS role at Oracle USA after a series of phone screen and onsite interviews, which I ultimately passed on due to competing staff-level offers.
Full Experience
I interviewed for the Principal MTS (PMTS) level at Oracle USA. The process involved a phone screen followed by a comprehensive onsite loop.
Phone Screen (60 mins)
- I faced 2 behavioral questions.
- There was 1 standard coding question on binary trees, which I completed quickly in about 5 minutes.
- The main focus was a system design problem centered on a metrics and logging system. This round lasted almost 35 minutes and involved extensive discussions on Kafka, Elastic Search DB, various design choices, and tradeoffs.
Onsite Interview Rounds
My onsite interviews included:
- System Design: This round began with 2 behavioral questions. The core technical part was to design a job scheduler system. Having studied this topic previously, the conversation flowed smoothly. The interviewer delved deep into indexes, specifically primary and sort keys of DynamoDB, Global Secondary Indexes (GSI), and the rationale behind using NoSQL for such a system.
- Hiring Manager: This 60-minute session was split into 30 minutes of behavioral questions and 30 minutes dedicated to system design. The design question was closely related to the hiring manager's team's work. They probed extensively into all my design choices, requiring me to propose alternatives and compare tradeoffs, and also discuss the design's flexibility in adapting to future requirement changes.
- Coding Round 1: After 2 behavioral questions, I received a big question prompt on Hackerrank. It involved flights data with dependencies (e.g., flight1 → flight2). The task was to return a sorted list of all delayed flight IDs, given an initial list of delayed flights. I recognized it as a simple DFS application, though I initially considered topological sort.
- Bar Raiser (Bar Tender): This 60-minute session was an in-depth conversation covering my background, most challenging project, design choices, my role and impact, collaboration with other teams, conflict resolution, situations where things went south, and how I mentored junior/mid-senior engineers. It was a lot of talking.
- Coding Round 2: Similar to the first coding round, this also started with 2 behavioral questions. The problem statement was explained verbally, without a prompt on Hackerrank, so I took notes. The question boiled down to finding the maximum length of a subarray with all unique IDs in a given list. A follow-up asked what if the subarray could contain at most 'k' distinct unique IDs. I knew these types of problems are common on LeetCode.
The recruiter contacted me within two days with positive feedback and an offer. However, I ultimately decided to pass on the offer as I had competing staff-level offers from other companies.
Overall, I found the conversations pleasant and the interviewers to be good.
Interview Questions (4)
Design a system for metrics collection and logging. Discuss core components, design choices, and tradeoffs. Specific areas of discussion included Kafka and ElasticSearch DB.
Design a job scheduler system. The discussion delved into details such as indexes, primary and sort keys for DynamoDB, Global Secondary Indexes (GSI), and the rationale for using a NoSQL database in this context.
Given flights data with dependencies (e.g., flight1 → flight2), and a list of flight IDs that are delayed, return a sorted list of all flight IDs that will be delayed due to these initial delays, considering the dependencies.
Given a list of IDs, find the maximum length of a subarray that contains all unique IDs. As a follow-up, consider a variant where the subarray can contain at most 'k' distinct unique IDs.
Summary
I interviewed with Oracle for an SDE 2 role and successfully received an offer. The interview process included a screening round, two technical rounds, a behavioral round, and a system design round, covering DSA, Java/Spring Boot, SQL, JavaScript, and system design principles.
Full Experience
I recently had the opportunity to interview with Oracle for an SDE 2 position and was delighted to receive an offer. My interview journey spanned several rounds, each designed to evaluate different aspects of my technical prowess and behavioral aptitude.
Screening Round:
The initial screening round presented me with a LeetCode medium-level problem that required the use of a priority queue. This was followed by questions specifically targeting Java and Spring Boot frameworks.
Loop Interviews:
Round 1: Technical Round (1 hour)
This round was heavily focused on Data Structures and Algorithms. I encountered two DSA problems: one involved a hashmap, which was relatively easy, and another tree-based problem that bore a strong resemblance to LeetCode's "Binary Tree Maximum Path Sum". Additionally, the interviewer delved into JavaScript topics, specifically questioning my understanding of page rendering/loading optimizations and the event loop.
Round 2: Technical Round (~1 hour)
The second technical round featured a LeetCode medium-level graph problem. Further discussions ensued around Java/Spring Boot, and I was also asked to write SQL queries for two distinct problems.
Round 3: Behavioral Round (45 minutes)
This round was dedicated to assessing my behavioral skills. I was presented with various situation-based questions designed to understand my approach to teamwork, problem-solving, and conflict resolution.
Round 4: System Design Round (~1.5 hours)
The system design challenge was to "Design BookMyShow". The interviewer's primary interest was in my approach to handling concurrency. I was explicitly asked to focus on the concurrency aspects and to bypass the detailed design of services or APIs. We also discussed multithreading in depth, and there were questions related to the projects I had mentioned in my resume.
Ultimately, I was selected, and I'm very pleased with the outcome.
Interview Questions (2)
A tree-based problem similar to LeetCode's 'Binary Tree Maximum Path Sum', which typically involves finding the maximum sum of a path between any two nodes in a binary tree.
Design a system like BookMyShow, focusing specifically on handling concurrency. The interviewer requested to concentrate on concurrency aspects rather than designing services or APIs.
Summary
I recently interviewed for an Application Developer IC-2 role at Oracle as a fresher from NIT Warangal. The process involved three rounds covering puzzles, SQL, coding, DBMS, DSA, OOPs, and HR questions. I was ultimately waitlisted for the position.
Full Experience
Round-1
My first round consisted of various technical questions. I was asked two puzzles:
- A classic puzzle about splitting 10 coins (some heads, some tails) into two groups while blindfolded such that both groups have an equal number of heads.
- Another puzzle asked for the number of equilateral triangles that can be formed using 6 matchsticks.
Following the puzzles, there were two SQL questions:
- One involved joining tables and finding the Nth highest salary, with a follow-up to discuss different ways to achieve this.
- The second SQL question required converting percentages into grades from a table. I initially suggested using a CASE statement, but a follow-up asked for an alternative approach without CASE, which I proposed could be done by creating a lookup table for percentage ranges and grades, then joining.
I also had a coding question:
- Write code to validate if a date given in "DDMMYYYY" format is correct.
DBMS questions were next:
- I was asked to explain ACID properties with examples.
- Normalization and its use cases were also discussed.
The round concluded with questions about my internship experience, project, and the four pillars of OOPs concepts and their use cases in my project.
Round-2
The second round was focused on Data Structures and Algorithms, with four questions asked:
- I was given an array and needed to find a subarray such that its minimum size is 'm' and the sum of its elements is 'k'. A follow-up question delved into using Dynamic Programming for this.
- A word problem was presented that clearly indicated the use of Dijkstra's algorithm, followed by Bellman-Ford (with a reminder to consider constraints).
- The final DSA question involved a binary tree with a mirror placed at the bottom. I needed to return all leaf nodes that "lead to the root," essentially requiring me to treat the tree as a graph problem.
Round-3
The final round was an HR discussion:
- I was asked about my academic branch and my motivation to switch into the IT industry.
- My minor degree was also a topic of discussion.
- We had an in-depth conversation about my internship experience at LinkedIn and my project. The interviewer probed into alternative approaches for specific problems within my project, questioning why certain ideas might not work and testing my confidence in having explored various solutions.
- I was asked to explain the SOLID principles of OOPs.
- They inquired about my understanding of Oracle's operations and why I believed I would be a good fit for the Application Developer role.
- Another question was about how I managed to balance core academics, learn technical skills, and maintain a good CGPA simultaneously.
- Finally, I was given the opportunity to ask questions.
Interview Questions (17)
Given 10 coins, some heads and some tails. You are blindfolded and need to split them into two groups such that both groups have an equal number of heads (or tails).
Determine the number of equilateral triangles that can be formed using exactly 6 matchsticks.
Given employee salary data across multiple tables, join them and find the Nth highest salary. Discuss different approaches to solve this problem.
Given a table with percentages, convert them into corresponding grades. Initially, a CASE statement approach was discussed. A follow-up asked to achieve this without using a CASE statement, for example, by creating a separate grades lookup table and joining.
Write code to validate if a given string in 'DDMMYYYY' format represents a correct and valid date.
Explain the ACID properties (Atomicity, Consistency, Isolation, Durability) in DBMS with suitable examples.
Explain database normalization and its practical use cases.
Explain the four pillars of Object-Oriented Programming (Encapsulation, Inheritance, Polymorphism, Abstraction) and discuss their use cases, especially in the context of my projects.
Given an array, find a subarray with a minimum size 'm' such that the sum of its elements is 'k'. Discuss a Dynamic Programming approach as a follow-up.
Solve a word problem that requires the application of Dijkstra's algorithm, followed by Bellman-Ford algorithm, keeping in mind specific constraints.
Given a binary tree and a mirror placed at the bottom, return all leaf nodes that 'lead to the root' in this setup. The problem essentially involves treating the tree as a graph.
Discuss your academic branch and explain your motivation for transitioning into the IT industry.
Discuss details about your minor degree.
Discuss your internship experience at LinkedIn and your project in detail. Be prepared to explain alternative approaches to specific problems within your project, why certain approaches might not work, and demonstrate confidence in having explored various solutions.
Explain the SOLID principles of Object-Oriented Design.
Demonstrate your understanding of Oracle's business and explain why you believe you are a good fit for this specific role.
Describe how you managed to balance core academic studies with learning technical skills while maintaining a good CGPA.
Summary
I recently completed a 5-round interview process at Oracle, which assessed my skills in Data Structures & Algorithms, System Design, and behavioral competencies. The experience covered various technical challenges and discussions.
Full Experience
My interview journey at Oracle consisted of five distinct rounds.
The first round was a DSA Online/Technical Coding Round on HackerRank/CodePair. I was given two medium-level problems, which involved concepts like arrays, hashmaps, and sliding window. The emphasis was on writing clean, optimized code and clearly articulating my approach.
Following that, I had a second DSA Technical Coding Round. The questions in this round were slightly more challenging, focusing on binary search, heaps, and dynamic programming. There were also follow-up questions centered on optimizing for both time and space complexity.
The third round was another DSA Technical Coding Round, which delved into problem-solving combined with data structure design. For instance, I was asked questions related to designing systems like an LRU Cache or a custom stack. This round also involved handling edge cases and performing dry runs with test cases.
Next up was the System Design Round. As this was for an experienced role, the discussion was more focused on low-level design. We talked about designing scalable systems, such as a URL shortener, a notification service, or a booking system. Key areas of discussion included choosing appropriate databases, designing APIs, managing concurrency, and understanding various trade-offs.
Finally, the fifth round was a Managerial + HR Round. This round primarily involved discussions about my previous projects, the challenges I've encountered, and my experiences working in team scenarios. I also faced a few behavioral questions, such as 'Tell me about a time you disagreed with your manager?' and 'How do you handle deadlines and pressure?'. There were also some light technical questions to gauge my overall understanding.
Interview Questions (7)
Design and implement a Least Recently Used (LRU) cache. The problem also included some edge case handling and test case dry runs.
Design and implement a custom stack. This involved problem-solving and data structure design, including edge case handling and test case dry runs.
Design a scalable system like a URL shortener. Focus on aspects such as database choice, APIs, concurrency, and trade-offs.
Design a scalable system like a notification service. Topics included database choice, APIs, concurrency, and trade-offs.
Design a scalable booking system. Topics included database choice, APIs, concurrency, and trade-offs.
Tell me about a time you disagreed with your manager.
How do you handle deadlines and pressure?
Summary
I interviewed for a Senior Member of Technical Staff (SMTS) role at Oracle OCI across multiple rounds, which included coding, system design, and behavioral questions. Although I performed well in most rounds, a challenging system design question in the final round led to my rejection for SMTS, though I was offered a Member of Technical Staff (MTS) role, which I declined.
Full Experience
I recently interviewed for the SMTS (Senior Member of Technical Staff) position at Oracle OCI. My current experience stands at 4.2 years at Informatica, a product-based company, with a compensation of around 32-34LPA CTC.
Interview Process
Screening Round
This round involved a coding question similar to 'Merge K sorted lists'. I was expected to provide a dry run and working code. We also discussed my projects, Apache Spark vs. Flink, and the concept of statelessness in REST APIs. I successfully cleared this round.
Loop Round 1 (Taken by SMTS)
In this coding round, I was asked to convert a prefix expression to a postfix expression (e.g., +ab to ab+). The second coding question was about designing an LRU Cache, including discussions on data structure choices, achieving constant-time operations, and making it thread-safe. I performed well and received a 'Strong Hire' rating.
Loop Round 2 (Bartender Round - Taken by PMTS)
This round focused heavily on my projects, with an in-depth discussion about the choices I made during development. I also faced questions about managing difficult stakeholders and several other behavioral scenarios. I received a 'Strong Hire' rating for this round as well.
Loop Round 3 (Taken by Hiring Manager)
This round was centered on High-Level Design (HLD). The problem involved designing a Concurrent Job Orchestrator that supports highly concurrent job executions, priority, license handling, and autoscalability. There were also some tricky behavioral questions. I was rated 'Hire/Strong Hire'.
Loop Round 4 (Taken by PMTS)
The final loop round began with an in-depth discussion about my projects, focusing specifically on the design decisions and reasoning behind using Apache Spark. The remaining 30 minutes were dedicated to a system design question:
Content Management System: A large multinational food company wanted a system to display in-store menu items for each of their locations. The system needed central management, the ability to show scheduled promotions, allow different prices per menu item at each location, and support breakfast, lunch, and dinner options.
I got really nervous during this design question and struggled to complete a comprehensive design within the 20-minute timeframe. This round did not go well, and I received a 'No Hire' rating.
Outcome
The recruiter eventually reached out. Due to my performance in the last round, the team could not offer me the SMTS position. Instead, they offered an MTS role, which I ultimately rejected.
Interview Questions (10)
A coding question similar to merging K sorted lists. Dry run and working code were expected.
Discussion about my projects, including a comparison between Apache Spark and Flink.
Conceptual question about statelessness in REST APIs.
Given a Prefix expression (e.g., +ab), convert it to a Postfix expression (ab+). Dry run and working code were expected.
Design an LRU Cache. Discussions involved data structure choices, achieving constant-time operations, and how to make the cache thread-safe (including suitable thread-safe data structures).
Detailed discussion about my projects and the rationale behind all choices made during development.
A behavioral question on how to manage difficult stakeholders, along with several other behavioral scenarios.
High-Level Design (HLD) for a Concurrent Job Orchestrator. The system needed to support highly concurrent job executions, prioritize tasks, handle licensing, and ensure autoscalability.
In-depth discussion about my projects, focusing specifically on the design decisions and reasonings related to Apache Spark, as my project included it.
Design a Content Management System (CMS) for a large multinational food company. The system must display in-store menu items for each location, be managed centrally, support scheduled promotions, allow different pricing for menu items at each location, and offer breakfast, lunch, and dinner options.
Summary
I completed a pre-screening round for an IC3 role at Oracle OCI, which focused on a data structures and algorithm problem involving processing a stock stream. I am currently awaiting the outcome, as the portal status remains 'Interview and Selection'.
Full Experience
In mid-September, I participated in a pre-screening round for an IC3 position at Oracle OCI. The interview primarily revolved around a single, complex data structures and algorithms problem. I am currently awaiting further communication regarding my application, and the status on the recruitment portal remains 'Interview and Selection'.
Interview Questions (1)
You are given a stream of Stocks with data points like (Stock_Name, Price, Time). Implement a function that will return the top K most expensive stocks observed within the last T minutes. Both K and T are not fixed and can vary with each function call. A key constraint is that if the same stock appears multiple times in the stream, its old price is invalidated, and only the latest price should be considered for the top K calculation.
Summary
I recently experienced an interview process with Oracle Health, which included multiple rounds covering data structures, algorithms, system design, and behavioral questions.
Full Experience
My interview journey with Oracle Health commenced with a screening round focused on Data Structures and Algorithms. I was given two DSA problems, one of which was the classic Coin Change problem, and the other was related to counting sort. After successfully clearing the screening, I moved on to Round 1.
Round 1 was a mixed bag, testing both my Java knowledge and problem-solving skills. We discussed the differences between Java's abstract classes and interfaces, a fundamental concept. Following that, I tackled the LeetCode Median of Two Sorted Arrays problem. The interviewer also delved into my understanding of microservices, their advantages, REST APIs, and specific CRUD operations using an employee records example. We touched upon various types of pagination and the distinction between forbidden and unauthorized status codes. Finally, I was asked about the Java Stream API and how to extract the first 3 minimum and 3 maximum elements using it.
Round 2 was dedicated to High-Level Design (HLD). My task was to design a Metric and Logging Platform, which involved outlining the architecture and key components.
The third round was a "Bartender" round, which was essentially a behavioral interview. I was asked to share experiences about my most challenging project, a time when I took a risk and failed, how I handled negative feedback from a manager, an instance where I went beyond my role definition for a customer, and a situation where I set a personal goal and achieved it.
Finally, Round 4 was with the Hiring Manager, primarily focusing on a detailed discussion about my previous projects and a high-level system design question related to a Hospital Management System.
Interview Questions (17)
Explain the key differences between abstract classes and interfaces in Java, including their use cases, multiple inheritance, and method implementations.
Explain what microservices architecture is and detail its advantages over monolithic architectures.
Explain what REST APIs are, their principles, and common use cases.
Describe the typical CRUD (Create, Read, Update, Delete) operations using REST APIs, providing a concrete example with employee records.
Discuss different types of pagination strategies used in web development and data retrieval.
Explain the distinction and appropriate use cases for HTTP status codes 401 Unauthorized and 403 Forbidden.
Explain the purpose and core concepts of the Java Stream API.
Demonstrate how to retrieve the first 3 minimum and 3 maximum elements from a collection using the Java Stream API.
Design a scalable and reliable high-level architecture for a metric and logging platform.
Describe your most challenging project, the obstacles you faced, and how you overcame them.
Share an experience where you took a significant risk that ultimately did not succeed. What did you learn from it?
Describe a situation where you received negative feedback from your manager and how you responded to it.
Share an instance where you went outside of your defined role to meet a customer's requirement or solve a customer's problem.
Describe a time when you set a significant goal for yourself and what steps you took to achieve it.
Design a high-level system for a Hospital Management System, outlining its key features and architectural considerations.
Summary
I recently had a screening round for an IC3 position at Oracle, which involved a profile discussion followed by two Data Structures and Algorithms questions.
Full Experience
My screening round for an IC3 role at Oracle began with a thirty-minute discussion about my professional profile. Following that, I was presented with two Data Structures and Algorithms problems. The first question was about merging overlapping intervals, and the second involved finding the longest non-repeating substring within a given string.
Interview Questions (2)
Given an array of intervals intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.
For example, given [[1,3],[2,6],[8,10],[15,18]], the output should be [[1,6],[8,10],[15,18]].
Given a string s, find the length of the longest substring without repeating characters.
For example, if s = "abcabcbb", the answer is 3 (for "abc"). If s = "bbbbb", the answer is 1 (for "b").
Summary
I recently had a screening round interview for the SMTS (IC3) role on the Workflow Team at Oracle OCI, which included an introduction, a behavioral question about my most challenging project, and a coding problem to design a video buffer data structure.
Full Experience
Hi Fam, I'm currently an SSE at Walmart with 6.3 years of experience. I recently appeared for a screening round for the SMTS (IC3) role on the Workflow Team at Oracle OCI. This round was taken by a fellow SMTS. The first 20 minutes were dedicated to an introduction and a discussion where I described the most challenging project I've worked on. Following that, I had a 40-minute coding session where I was given a problem to design a video buffer data structure. I'm currently waiting for further loop rounds to be scheduled.
Interview Questions (2)
Describe the most challenging project that you have worked on.
You're working on a video streaming project and you've been asked to design a video buffer data structure to store a limited number of items. The data structure should support four operations: 'add', 'delete', 'getFirst', and 'getEnd'.
- The 'add' operation should add an item, return True if it succeeds.
- The 'delete' operation should delete the oldest element, return True if it succeeds.
- The 'getFirst' operation should retrieve the oldest item in the data structure.
- The 'getEnd' operation should retrieve the newest item in the data structure.
Constraint: Not allowed to use Java Collections Framework.
Summary
I recently interviewed for a Staff Member of Technical Staff (SMTS) position (IC3) at Oracle OCI within their KMS team, undergoing a screening round that included both coding and theoretical questions. The outcome is currently ongoing.
Full Experience
I recently went through a screening round for an SMTS role (IC3) on the KMS team, which is part of the Security Products Group at Oracle OCI. The KMS team is identified as a Tier-0 Service. The interview was conducted by a fellow SMTS. The round focused on two coding problems followed by theoretical discussions for the remaining 15 minutes.
Interview Questions (5)
I was asked to solve the standard LeetCode problem, Jump Game 1.
Given an array, I needed to perform K operations. In each operation, I had to find the maximum element in the array and reduce it to half its value (floor). The goal was to find the sum of all elements in the array after K operations.
I was asked to explain how to scale a system's throughput from 1,000 transactions per second (TPS) to 1,000,000 TPS.
I had to explain the process and considerations involved in taking a system from development to production.
I was asked to discuss the differences and use cases between the Spring Framework and Spring Boot.
Summary
I participated in a Blitz Hiring event at Oracle. The initial coding round featured a unique problem about constructing word squares, followed by interviews on resume, system design, and behavioral questions.
Full Experience
I attended the Oracle Blitz Hiring event. The first part was a coding round where I was presented with a challenging problem. This coding challenge focused on creating word squares from a given set of four-letter words. Following the coding assessment, I proceeded to three additional interview rounds. These subsequent interviews primarily delved into my resume, system design capabilities, and questions related to Oracle's Leadership Principles (OHAI LP).
Interview Questions (1)
Let's define a thing called a word square. A word square consists of four 4-letter words (named top, bottom, left, and right) arranged into a square such that the corner characters are shared. Words go left-to-right or top-to-bottom, and not the other ways. Write a function that takes a set of 4-letter strings as input and prints all word squares that you can make using the words in the input set. A word cannot be used more than once in a word square.
For example:
top
A C I D
T A
O R right
M A R K
bot
Summary
I attended a screening round for an SSE role at Oracle, which involved a coding question, a system design problem, and an LLD discussion. I believe my performance was affected by lack of sleep, potentially leading to a rejection or ghosting.
Full Experience
My Oracle screening round for the SSE role consisted of three distinct parts. The first part involved an easy-medium coding question centered around a Priority Queue. The second part was a System Design challenge to generate Unique IDs. Finally, the third part focused on the Low-Level Design (LLD) of a Singleton class.
I must admit, I felt quite jittery before and during the interview, likely due to insufficient sleep the night prior. This impacted my performance, particularly in Part 1 where I took too long to solve the problem. Additionally, I believe I overlooked a crucial detail in the LLD of the Singleton class, which may have led to my potential rejection or ghosting.
Interview Questions (2)
Design a system that can generate unique identifiers efficiently and at scale.
Discuss or implement the Low-Level Design (LLD) of a Singleton class, including considerations for thread-safety and different implementation approaches.
Preparation Tips
My main tip is to ensure you get sufficient sleep the night before your interview. My lack of sleep made me feel jittery, which negatively impacted my performance and potentially led to me overlooking critical details in some parts of the interview.
Summary
I interviewed for a Senior Software Developer, IC3 role at Oracle Health in August 2025. Despite clearing most technical rounds and presenting viable solutions, I was ultimately rejected, with feedback that seemed to contradict the interview process itself, possibly due to a misalignment with my C++ background or role expectations.
Full Experience
Pre-screening Round
My interview journey with Oracle Health began in August 2025. After a recruiter reached out via email, we had a video conference where she detailed the Senior Software Developer profile, emphasizing it would be primarily backend work with some frontend.
This round covered various technical topics:
- Differences between exceptions and errors in Java.
- How to create an immutable class.
- Concepts related to deadlock.
- All SOLID principles with illustrative examples.
- Factory and Abstract Factory design patterns.
- Encapsulation versus Abstraction.
- Questions on Actuator and Dispatcher Servlet, which I admittedly didn't know.
- Discussion about my projects. I clarified that my professional experience was mainly in C++ but that I used Java extensively for DSA.
I left this round not expecting to proceed further, mainly due to my C++ background and my inability to answer the Spring Boot questions.
Loop Round 1 - Hiring Manager Round
This round started with introductions and a discussion about my current role. Surprisingly, the hiring manager mentioned they were looking for a frontend developer, which directly contradicted the recruiter's information about a backend-focused role. Despite this, the interview continued.
We discussed API query parameters, path variables, and request bodies. The main focus was a system design question for a BookMyShow-like service. The interviewer was primarily interested in requirements and API design, specifically asking for API request types, request bodies, and response bodies. We skipped database schema and estimations due to time constraints, and I concluded by creating an HLD diagram. The interviewer was friendly throughout.
Loop Round 2 - DSA
After a brief project discussion, I was asked to convert a number to a Roman numeral. My initial solution used a direct mapping for all combinations (e.g., 1000, 900, 500, 400). The interviewer then challenged me to use only base mappings (1000, 500, etc.) and make the solution "extensible." I provided a hardcoded solution for this, which wasn't satisfactory. He then hinted at a pattern where for 'even' values (like 1000), the next subtraction rule might be at index +2, and for 'odd' values (like 500), at index +1. I coded this, but I argued that this pattern itself wasn't truly "extensible" for Roman numerals, as they are fixed, and this arbitrary pattern wasn't a universal rule. I felt I had provided a correct solution, even if not meeting his specific "extensible" criteria for an inherently non-extensible system.
Loop Round 3 - Bartender Round
This round began with the interviewer introducing himself, followed by questions about my current work and projects, focusing on a specific feature I implemented. He tried to delve quite deeply into the feature, which I felt was beyond the scope of this round, especially since my C++ protocol development work was hard for him to grasp. Despite my use of analogies, I doubt he fully understood. We also discussed disagreements with seniors. The interviewer was neutral, neither friendly nor rude.
Loop Round 4 - DSA
This round involved a mix of DSA and core Java concepts:
- I had to implement a producer-consumer problem using two threads to count and print odd and even numbers alternately, using
wait/notify. - Questions on
Cloneable,Serializable, and thetransientkeyword. - Implementing an immutable class and the use of the
finalkeyword. - Creating a thread-safe singleton class.
- A DSA question to find a cycle in a linked list. I offered both the slow/fast pointer and HashSet approaches. He requested another approach, but I couldn't recall one.
- Another DSA question was about the sum of values of all leaf nodes in a binary tree. I provided a recursive solution, and when he clarified he wanted only the sum of leaf nodes at the deepest level, I quickly adapted my code. I performed dry runs for both DSA problems.
This interview went very well, and I felt I answered about 90% of the questions correctly. I couldn't answer some specific questions like the drawbacks of Cloning or the multiton pattern.
Verdict: Not Selected
The recruiter later provided feedback, which was quite conflicting:
- The hiring manager claimed I failed to implement the DB schema in the system design round, which was baffling because she explicitly told me to skip it and focus on API design.
- She also stated I couldn't make the system design, which I strongly disagree with. I provided a design, asked clarifying questions, and offered options when she gave no input, always confirming my choices.
- Another piece of feedback claimed I couldn't come up with a solution for one of the DSA rounds. This is also untrue; I provided correct solutions, even if one wasn't "extensible" in the way the interviewer preferred for an inappropriate problem context.
In conclusion, I'd advise caution with overly "friendly" interviewers. I suspect my rejection was more likely due to my C++ background or the initial confusion about the role's frontend/backend requirements, leading the hiring manager to fabricate feedback. This kind of experience can be quite disheartening for job seekers.
Interview Questions (15)
Explain the differences between exceptions and errors in Java, and how they are typically handled.
Describe the principles and steps to create an immutable class in Java. Provide a code example.
Explain what a deadlock is in concurrent programming, its necessary conditions, and common strategies for prevention or detection and recovery.
Elaborate on each of the five SOLID principles of object-oriented design and illustrate them with practical examples.
Differentiate between the Factory Method and Abstract Factory design patterns. Explain their use cases and provide examples for each.
Compare and contrast encapsulation and abstraction in object-oriented programming, highlighting their distinct purposes and how they are implemented.
Explain the roles and functionalities of Spring Boot Actuator and the Dispatcher Servlet in a Spring application context.
Design a system similar to BookMyShow for ticket booking. Focus on defining core requirements, API design (including request types, request bodies, and response bodies). You may skip detailed database schema and capacity estimations. Finally, provide a High-Level Design (HLD) diagram.
Convert an integer to its Roman numeral representation. The interviewer was particularly interested in an 'extensible' solution, suggesting that mappings should primarily be for base values (e.g., 1000, 500, 100) and that combinations (e.g., 900, 400) should be derived through a pattern, such as 'for even indexes, subtraction is at +2, and for odd, at +1'.
Implement a producer-consumer problem using two threads. One thread should produce odd numbers, and the other even numbers, ensuring they are printed alternately. Use Java's concurrency primitives like wait() and notify() for synchronization.
Explain the purpose and usage of the Cloneable and Serializable interfaces, and the transient keyword in Java. Discuss their implications and potential pitfalls.
Demonstrate how to implement an immutable class in Java. Discuss the various applications and implications of the final keyword when used with variables, methods, and classes.
Implement a thread-safe Singleton design pattern in Java, explaining the considerations for ensuring thread safety.
Given the head of a singly linked list, determine if it contains a cycle. Implement multiple approaches if possible.
Given the root of a binary tree, calculate the sum of values of all leaf nodes that are located at the deepest level of the tree.
Summary
I applied for an Oracle Software Developer role and went through a series of interviews. The first round was a medium-level DSA problem and resume-based questions. The subsequent loop interviews included a mix of coding, design, and behavioral questions. The final interview ended on a negative note due to the WFO policy discussion.
Full Experience
I am currently working in a top fintech company as a SDE-2. I had previously worked in one of Oracle's subsidiaries. I got the call from a recruiter one day. She scheduled the first eliminator round. I was asked a medium-level DSA problem and a lot of questions on my resume. I cleared the first eliminator round.
The recruiter then scheduled all my loop interviews on a day. Each round lasted one hour.
Loop Interview 1:
1. Write the python function which will be used to run a shell command in parallel on thousands of nodes. We need to optimize the code so that it does not overwhelm the machine where we run this code.
2. Design a volume as a service with inputs: size of volume, IOPS, mount path. Should adhere to general cloud service agreements like high availability.
The interviewer was very friendly. He said 'we' will solve this design problem. Gave a lot of hints. He also said you can browse the net if you are not sure of the syntax.
Loop Interview 2:
1. Find the longest palindromic substring in a string.
2. Follow up: If you can add a character to the substring at any place. What would be the longest palindromic substring?
I was able to code the brute force approach. Got stuck in the follow up question tho. Messed it up !!
Loop Interview 3:
1. Why you want to switch?
2. Current Compensation Details?
3. Can you work from office 5 days?
4. Write Merge Sort
I was turned off when he said the WFO policy and started asking current compensation. Also interviewer seemed really strict.
Interview Questions (3)
Write a Python function that runs a shell command in parallel on thousands of nodes. The code should be optimized to avoid overwhelming the machine where the code is executed.
Find the longest palindromic substring in a given string. Follow up: If you can add a character to the substring at any place, what would be the longest palindromic substring?
Implement the Merge Sort algorithm.
Summary
I recently had a screening round for an SMTS (IC3) role with the OpenSearch Team at Oracle OCI. The interview involved a system design whiteboard challenge, several technical questions covering APIs, data structures, and system concepts, and a discussion about my projects.
Full Experience
Hi Fam, I'm currently an SSE at Walmart with 6 years of experience. I recently appeared for a screening round for the OpenSearch Team at Oracle OCI for an SMTS (IC3) role.
The screening round was taken by the Hiring Manager. It consisted of three main parts:
1. Design Whiteboard (25 min)
The MVP requirement was to allow multiple users to edit texts concurrently. The design also needed to be flexible enough to include shapes in future phases.
2. Technical Questions
I was asked several technical questions covering various concepts:
- What is Stateful and Stateless APIs?
- What is reflection?
- I was quizzed around different HTTP error codes: 4xx, 5xx, 2xx.
- What is a multidimensional array? What are its real-life applications?
- What is a hashtable? How is it different from a HashMap? What are its real-life applications?
- What is a linked list? How is it different from an array? What are the real-life applications of a linked list? I also discussed time complexities for linked list traversal, etc.
- What is a circuit breaker? I had to explain its concept.
- How do you reverse a linked list?
3. Project-level discussion (15 min)
The discussion revolved around questions on Elasticsearch and streaming pipelines, based on my past projects.
Overall, it was a comprehensive screening round covering system design, core technical knowledge, and project-specific expertise.
Interview Questions (9)
Design a system that allows multiple users to concurrently edit texts. The design should also be extensible to include shapes in future phases.
Explain the concepts of Stateful and Stateless APIs.
Explain what reflection is in programming.
Explain different HTTP error codes, specifically 2xx, 4xx, and 5xx series.
What is a multidimensional array? Provide real-life applications.
What is a hashtable? How does it differ from a HashMap? Provide real-life applications for both.
What is a linked list? How is it different from an array? Provide real-life applications of linked lists and discuss time complexities for operations like traversal.
Explain the Circuit Breaker design pattern.
Explain or demonstrate how to reverse a linked list.
Summary
I recently interviewed at Oracle for an SMTS IC3 role where I was asked a specific algorithmic problem called 'Biological Hazards' which involved analyzing bacteria interactions.
Full Experience
I recently had an interview at Oracle for an SMTS IC3 position. The interview revolved around a single, specific algorithmic problem. The problem, titled 'Biological Hazards', challenged me to analyze interactions between bacteria samples arranged in a row. The core task was to identify contiguous intervals where all bacteria could coexist without any being poisonous to another within that segment.
Interview Questions (1)
A biological researcher is studying bacteria interactions where certain bacteria are poisonous to others. The samples are arranged consecutively in a row, numbered from 1 to n.
You are given two integer arrays allergic and poisonous of equal length m, where:
poisonous[i]is poisonous toallergic[i].
Your task is to determine the number of contiguous intervals [l, r] within the row such that all bacteria in that interval are capable of coexisting (i.e., no bacterium in the interval is poisonous to another bacterium in the same interval).
Example 1
Input:
n = 3
allergic = [2, 1, 3]
poisonous = [3, 3, 1]
Output:
4
Explanation:
The bacteria are arranged as [1, 2, 3].
All possible intervals are: (1), (2), (3), (1,2), (2,3), (1,2,3).
Valid intervals are (1), (2), (3), (1,2).
Total valid intervals = 4
Summary
I applied for the MTS 2 role at Oracle with 1.5 years of experience and was rejected after the first round, which involved extensive project discussion and a DSA question on anagrams.
Full Experience
I applied for the MTS 2 role at Oracle via their portal and received a callback after about 15-20 days, following numerous prior rejections. The recruiter explained the process, stating that the first round would be an eliminator, focusing on Data Structures and Algorithms, problem-solving, and a minor project discussion. I confirmed that Java or a similar language was acceptable.
My first round was with a principal engineer who had 11 years at Oracle. He immediately delved into a project discussion, grilling me intensely for 45 minutes on topics like Kubernetes, AWS, VPC, sidecar and init containers, microservices, connection protocols, and logging systems. He even challenged the architectural choices of my projects. In the remaining 10 minutes, he asked a simple DSA question: checking for anagrams, and insisted I use Java. Although I am familiar with Java, I hadn't practiced DSA extensively and struggled significantly. An unexpected electricity cut further compounded my panic, causing me to lose focus. After multiple trials and some assistance from hackerrank's autofill, I eventually completed the problem.
I was rejected straight off the bat!
Interview Questions (1)
Given two strings, determine if they are anagrams of each other. Anagrams are words or phrases formed by rearranging the letters of another, typically using all the original letters exactly once.
Summary
I interviewed for a front-end developer role at Oracle, covering DSA, technical discussions, and machine coding, including a specific question on Longest Common Substring, and am currently awaiting feedback.
Full Experience
Hi All,
I appeared for an interview at Oracle last week.
Experience: 5.5 years
Current Company: Service-based
Round 1: DSA + Technical Discussion (1.5 hrs)
- Problem-solving round involving the Longest Common Substring question
- Discussion on my project experience
- Concepts around memoization and lazy loading
- A few scenario-based questions
- Questions on design patterns
- React hooks fundamentals
- Core JavaScript topics were also covered
Round 2: Machine Coding + Deep Dive (1.5 hrs)
- Questions based on the technologies mentioned in my resume
- More discussion on design patterns
- Hands-on JavaScript coding (topics included higher-order functions, singleton pattern, closures)
- Questions related to the event loop
- Some output-based questions
- A few polyfill implementations
I haven't heard back after this round yet.
Note: A strong understanding of JavaScript fundamentals is also crucial for clearing these rounds.
Thank you!
Interview Questions (6)
A problem-solving round focused on finding the Longest Common Substring.
Hands-on JavaScript coding focusing on higher-order functions.
Hands-on JavaScript coding focusing on the singleton pattern.
Hands-on JavaScript coding focusing on closures.
Questions related to the event loop in JavaScript.
Hands-on coding involving a few polyfill implementations.
Preparation Tips
A strong understanding of JavaScript fundamentals is also crucial for clearing these rounds.
Summary
I successfully navigated multiple technical and behavioral rounds, including DSA, System Design, and Java-specific questions, ultimately receiving a selection for the Senior Member of Technical Staff (SMTS) role at Oracle OCI, Bangalore.
Full Experience
I saw a post by recruiter on LinkedIn and contacted him via InMail. The recruiter contacted within few days asking basic details. Then radio silence for 3 weeks and then got a call from scheduling team for scheduling interviews
Screening Round Taken by a Principle MTS. I was asked 1 DSA question: Q: https://leetcode.com/problems/divide-two-integers/description/ Solved fully
Got a call from recruiter within 2 days for scheduling LOOP rounds:
Technical Round 1 (Taken by SMTS):
Round started with basic Java QUestions:
- Polymorphism in Java, how to acheive
- Composition & Association
- Aggregation
- Aggregation vs Composition
Then I was asked a DSA question:
- Longest Subarray with 0 Sum - question from GFG
Lastly, I was told to draw the HLD for an ECommerce website like Amazon. Expectations:
- Functional Requirements
- Non Functional Requirements
- DB Schema
- DB resilient design
- Services
- Diagram
Bartender Round:
Taken by someone from different team. I was asked multiple behavioural questions. The round went almost 45 mins
Tecnical Round 2 (Taken by Director of Engineering):
Few behavioural Questions.
2 coding questions:
- Given a String s, build all possible subsequences, sort them and return as a List
- Create a Thread safe data structure and write 2 producer and 1 consumer for it.
Tecnical Round 3 (Taken by a Principle MTS):
- Questions from Resume
- 1 DSA question: Q: Remove duplicate sequence from linked list. Ex: Input: 1->2->2->2->5->4->4, output: 1->5 Input: 1->1->2->2->2->5->4->4, output: 5
Interview Questions (10)
Explain polymorphism in Java and how to achieve it.
Explain Composition & Association in Java.
Explain Aggregation in Java.
Discuss the differences between Aggregation and Composition.
Find the length of the longest subarray with a sum of 0.
Design a High-Level Architecture for an E-commerce website similar to Amazon. Discuss functional requirements, non-functional requirements, database schema, database resilient design, services, and provide a diagram.
Given a string s, generate all possible subsequences, sort them lexicographically, and return them as a list.
Design and implement a thread-safe data structure. Then, write code for two producer threads and one consumer thread that interact with this data structure.
Given the head of a singly linked list, remove all nodes that have duplicate consecutive numbers, leaving only distinct numbers. For example, if the input is 1->2->2->2->5->4->4, the output should be 1->5. If the input is 1->1->2->2->2->5->4->4, the output should be 5.
Summary
I appeared for a 1-hour screening round for an SMTS position at Oracle OCI (Security Products Group). The interview included a project discussion and two technical questions: one on dividing integers without the division operator and another on the differences between HashMap and ConcurrentHashMap. I felt the interviewer was not satisfied with my responses, and I anticipate a 'no hire' outcome.
Full Experience
Hi Fam,
Appeared for screening round for SMTS position today at OCI (Security Products Group).
YOE: 6
Currently SSE@Walmart
1hr round, Platform: Hackerrank
1. 5 min intro.
2. 10 min project discussion and cross examination
3. DSA question: Divide 2 positive integers without using / operator.
Gave naive approach of repeated subtraction.
Probed on time complexity.
Asked me to come up with optimal solution. I couldn't.
This went for 20 min i think.
4. Asked me difference between HashMap and ConcurrentHashMap.
Explained him about the thread safety, segment locking, ConcurrentModificationException etc.
Interview ended 15 min early as he was done judging.
Overall, Interviewer didnt seem satisfied with my answers and I wouldn't be surprised if this turns into a no hire call.
Interview Questions (2)
Divide two positive integers (dividend and divisor) without using the multiplication, division, or modulo operators. Focus on edge cases and time complexity.
Explain the key differences between Java's HashMap and ConcurrentHashMap. Discuss aspects like thread safety, internal implementation details, performance characteristics under concurrency, and common use cases.
Summary
I had an interview opportunity with Oracle for a Java Developer role in March 2025, which consisted of two rounds focusing on Java basics, DSA, and projects, but I was ultimately rejected.
Full Experience
I got this opportunity from Naukri. Recruiter mentioned it was a drive.
Round 1 - Basic Questions & DSA
Basic questions on java - difference between call by reference, call by value, oops concept , what is final, static keyword, all other basic questions which I don't remember.
1 DSA question - Minimum number of platforms.
Round 2 - HM
This was more around projects and I was given one DSA question which I was not able to solve this.
Verdict - Rejected
Interview Questions (5)
Explain the difference between call by reference and call by value in Java.
Discuss Object-Oriented Programming (OOP) concepts in Java.
Explain the purpose and usage of the 'final' keyword in Java.
Explain the purpose and usage of the 'static' keyword in Java.
Given arrival and departure times of all trains that reach a railway station, find the minimum number of platforms required for the railway station so that no train waits.
Summary
I interviewed for a PMTS role at Oracle in Bangalore and successfully received an offer. The interview process included several technical rounds focusing on Data Structures & Algorithms, system design discussions based on my resume, and specific coding challenges.
Full Experience
Phone Screening (VP Round)
Duration: ~15 minutes
The VP briefly reviewed my resume, focusing on my experience with notification services (a key requirement for the role).
Assessed my knowledge in relevant areas but did not dive deep.
Shortly after, I was scheduled for the technical rounds.
Technical Round 1 (DSA Focused)
Introduction: Brief discussion about my background.
Problem 1: https://leetcode.com/problems/merge-intervals/description/ (LeetCode)
Problem 2: Find the duplicate in an array of size n with elements in [0, n-1].
Expected solution: Efficient swapping approach (similar to https://leetcode.com/problems/find-the-duplicate-number/description/).
Technical Round 2 (Resume Deep Dive + DSA)
First 30 mins: In-depth discussion on my resume, covering:
- Redis Cache (eviction policies, clustering)
- Kafka (consumer groups, partitioning, offset management)
- REST API Security (OAuth 2.0, JWT, rate limiting)
High-level system design aspects of past projects.
DSA Problems:
Problem 1: Validate parentheses in a string (basic () case).
Follow-up: Extended to multiple types ((), [], {}).
Problem 2: Given an employee hierarchy (tree structure), find all reports under each manager.
Follow-up: Reverse lookup (find all managers for a given employee).
Technical Round 3 (Resume Grilling + Coding)
Resume Discussion: Focused on my experience with:
- Email Notification Service (SMTP, DLQ handling)
- Kafka (message retries, ordering guarantees)
- Blue-Green Deployment (strategies, advantages)
High availability, throughput, and latency optimizations.
Coding Problem: Multiply two very large integers represented as strings (e.g., "123456789" * "987654321").
Constraints: No use of BigInteger or language libraries—had to implement manual multiplication.
Final Discussion & Offer
After clearing all rounds, had a follow-up call with the VP within a day to discuss:
- Project alignment
- Salary expectations
- Background verification (BGV) process
Final Verdict: Hired!
Offer details: https://leetcode.com/discuss/post/6893969/oracle-pmts-bangalore-by-anonymous_user-j50z/
Interview Questions (5)
Validate if the parentheses in a string are balanced and correctly matched. Initially for basic '()' cases, then extended to multiple types: '()', '[]', '{}'.
Given an employee hierarchy represented as a tree structure:
- Find all direct and indirect reports under each manager.
- Implement a reverse lookup to find all managers (direct and indirect) for a given employee.
Implement a function to multiply two very large integers represented as strings (e.g., "123456789" * "987654321"). The solution must not use BigInteger or any language-specific large number libraries; manual multiplication logic is required.
Summary
I had a phone screening round for OCI which began with discussions about my current project, architecture, role, and responsibilities. This was followed by cloud-related questions (load balancers, caching, API gateways) and Java/Spring Boot topics. The remaining time was spent on an intense DSA problem involving a phone dictionary, for which I proposed and partially implemented a BST-based solution. Ultimately, I was ghosted.
Full Experience
Hi Everyone,
I recently gave Phone Screening round for OCI.
In the invite, it was supposed to be a DSA round, but ended up with lot of topics.
Started with current Project discussion, architecture, role and responsibilities. Then some Cloud related questions eg: how load balancers work, caching, API gateways etc. Some Java/Spring boot related questions as well. But this time almost 25 mins already passed.
After that an intense discssion on a DSA problem.
Given a phone dictionary. Implement 3 operations
- Add unique names to phone dictionary
- Return all names from dictionary
- Find all names starting b/w character range
For this problem i started with a simple HashMap to store unqiue names. And for finding names b/w range i proposed to use additional data-strucure to store character and name mapping(HashMap)
Later on improvement. I proposed a BST based solution. I was able to implement first 2 functionalities, for 3rd one i just gave the psuedo code.
May be I took a lot of time during the initial questions. That's why I got rejected/Ghosted.
Verdict - No response/Ghosted
Interview Questions (1)
Given a phone dictionary. Implement 3 operations
- Add unique names to phone dictionary
- Return all names from dictionary
- Find all names starting b/w character range
Summary
I recently experienced a phone screen for an L4 Software Engineer position at Oracle. The interview was intense and covered a wide range of topics, including my resume, OOP, REST API concepts, low-level design, a live coding problem, database discussions, AI/ML, and architecture. I answered most questions confidently but unfortunately did not receive any follow-up after the round.
Full Experience
Introduction
The interview began with a detailed walkthrough of my background, from my college days to my current role. The interviewer performed a deep dive into my resume, asking about every tool and technology I had mentioned. I also had to provide a high-level overview of my current project architecture and my specific responsibilities within it.
OOP & Design Principles
This section focused on core Object-Oriented Programming (OOP) and design principles. I was asked to explain each of the SOLID principles in depth. Following that, we discussed the differences between Abstract Classes and Interfaces, with a specific request to provide real-world, non-programming examples to illustrate my understanding.
REST API Concepts
The discussion moved to REST API concepts. I had to explain the differences between PUT, PATCH, and POST methods, including when and why each should be used. The interviewer then delved into the OPTIONS HTTP method, asking about its purpose and how it's used, particularly in scenarios like CORS preflight requests.
Low-Level Design & Patterns
I was challenged to design a system using Object-Oriented Design (OOD) principles and various design patterns. The expectation was to provide both code and a strong explanation, with a focus on clarity, modularity, and how the design mapped to real-world scenarios.
DSA Coding – Live Problem on HackerRank
This was the live coding section, where I had to solve a Data Structures & Algorithms (DSA) problem on HackerRank. The problem involved an array and 'k' operations, where in each operation, I could pick any number and divide it by 2. The goal was to perform up to 'k' operations to minimize the total array sum. I approached this using a max heap (priority queue) to continuously halve the largest number for 'k' times. I successfully implemented it and passed all test cases.
Database Design Discussion
We then discussed database design, specifically comparing SQL and NoSQL databases. I explained when to use each, their respective pros and cons, and touched upon the CAP theorem tradeoffs.
AI/ML Discussion
Briefly, I was asked if I had worked with AI/ML models or pipelines, and I shared any related experience I had.
Architecture Diagram
Finally, I was asked to verbally describe or sketch a high-level system architecture, with the focus on scalability, modularity, and deployment pipelines.
Final Thoughts
Overall, I felt I answered around 85–95% of the questions confidently. The interviewer was thorough, at times challenging even basic concepts deeply, but remained respectful throughout. Unfortunately, the recruiter never followed up after the round, despite my attempts to reach out.
Interview Questions (7)
Explain each of the SOLID principles in depth.
Discuss the differences between Abstract Classes and Interfaces, providing real-world, non-programming examples (e.g., appliances, contracts vs blueprints).
Explain the differences between PUT, PATCH, and POST methods, when and why to use each. Also, deep dive into the OPTIONS HTTP method, explaining why and how it's used (CORS preflight, etc.).
Design a system using Object-Oriented Design (OOD) principles and design patterns. Expected code and strong explanation focusing on clarity, modularity, and real-world mapping.
You’re given an array and k operations. In one operation, you can pick any number and divide it by 2. Perform up to k operations to minimize the total array sum.
Discuss the differences between SQL and NoSQL databases, when to use each, their pros and cons, and CAP theorem tradeoffs.
Verbally describe or sketch a high-level system architecture focusing on scalability, modularity, and deployment pipelines.
Summary
I interviewed for the Senior Application Engineer role at Oracle, Hyderabad, in April 2025, and received an offer after four rounds, which I ultimately declined for a better opportunity.
Full Experience
Round 1 (In-person)
- Given two arrays, sort without extra space
A = [10, 2, 20, -1]
B = [1, 5, 25]
Output:
A = [-1, 1, 2, 5]
B = [10, 20, 25] - https://leetcode.com/problems/regular-expression-matching/description/
- Implement Singleton class
- Follow up: How do you prevent creating clones of the singleton class object?
Round 2 (In-person)
- Given an array, reorder such that even numbers are pushed to the left side of the array and odd numbers to the right
- Given two tables - employee and department. Wite SQL query to find the name of employee with max salary
- Follow-up 1: Wite SQL query to find the name of employee with second max salary (covering corner cases like multiple employees have max and second max salary)
- Follow-up 2: Write SQL query to print the max salary of each department
Round 3 (In-person with the Hiring Manager)
- Write code to add given number of days to a given date in string format without using date functions. Should Handle leap year case as well
Round 4 (Online meeting with the Vice President)
- Given the table employee_salary(eid, salary_credited, month)
- Write SQL query to find employees with salary greater than 10,00,000
- Write SQL query to find employees with total salary received so far greater than 50,00,000
- Difference between where and having clause
- Difference between mysql and postgreSQL
- Design movie recommendation app. Write some code for user registration module
- Where do you see yourself in 5 years?
- Why are you leaving your current organization?
Verdict: Selected
However, I declined the offer as I got a better offer
Compensation details: https://leetcode.com/discuss/post/6833191/oracle-senior-application-engineer-hyder-wqdh/
Interview Questions (12)
Given two arrays, sort without extra space
A = [10, 2, 20, -1]
B = [1, 5, 25]
Output:
A = [-1, 1, 2, 5]
B = [10, 20, 25]
Implement Singleton class
Follow up: How do you prevent creating clones of the singleton class object?
Given an array, reorder such that even numbers are pushed to the left side of the array and odd numbers to the right
Given two tables - employee and department. Write SQL query to find the name of employee with max salary
Follow-up 1: Wite SQL query to find the name of employee with second max salary (covering corner cases like multiple employees have max and second max salary)
Follow-up 2: Write SQL query to print the max salary of each department
Write code to add given number of days to a given date in string format without using date functions. Should Handle leap year case as well
Given the table employee_salary(eid, salary_credited, month)
Write SQL query to find employees with salary greater than 10,00,000
Write SQL query to find employees with total salary received so far greater than 50,00,000
Difference between where and having clause
Difference between mysql and postgreSQL
Design movie recommendation app. Write some code for user registration module
Where do you see yourself in 5 years?
Why are you leaving your current organization?
Summary
I interviewed at Oracle for an SMTS role in the US, facing several System Design challenges across multiple rounds, including designing distributed LFU/LRU caches and a metrics/monitoring system. The outcome was a rejection.
Full Experience
Coding Rounds: Custom problems, not from leetcode, simple Round 1: Design Distributed LFU Cache Round 2: Design Distributed LRU Cache Round 3: Design Metrics and Monitoring System Behavioral Round
All these Design problems (Rounds 1,2,3) were System Design problems, like "design TinyURL". No they were not LeetCode coding problems. No they were not OOP design problems.
Interview Questions (3)
Design Distributed LFU Cache
Design Distributed LRU Cache
Design Metrics and Monitoring System
Summary
I had a 60-minute screening round for an IC3 role at Oracle OCI in EMEA, which I passed. The interview focused on a discussion of my past projects and current work, followed by a DSA question on LFU Cache, a dry run, and follow-up questions.
Full Experience
Screening Round, 60 minutes call.
Initial 15 minutes: Discussion about the team, past projects, current work etc.
Next 30 minutes: DSA question (LFU Cache) -> straightforward, no modification, did not expect it though. Who asks LC Hard for oracle, especially in a screening interview, which is elimination?
Next 10 minutes: Dry run, follow up about the question, follow up was basically just explaining how the LRU case will work in case of collisions
Final 5 minutes: My questions about the team and the work, etc.
Verdict: Got a reply from the recruiter 3 days after the interview that I passed this round.
Interviewer was very nice and friendly, however, was quite throughout when I was coding, so it was alarming.
Interview Questions (1)
Implement the LFU Cache data structure. The problem was straightforward with no modifications. A follow-up involved explaining how an LRU case would work in case of collisions.
Summary
I interviewed for a Senior Application Developer role at Oracle across multiple rounds, including technical, managerial, and techno-managerial discussions, and was ultimately selected.
Full Experience
Oracle Interview Experience - Senior Application Developer
The HR found the profile from Naukri. Received a call from HR for the onsite interviews.
Round 1 (onsite) -
1) Given a string, write a function to encode and decode it. The encode string should not be easily decoded by naked eyes.
2) Binary Tree Maximum Path Sum
Round 2 (onsite) -
1) Given a string of binary bits, find all the substrings which are repeating consecutively and the no of times its repeated. The repeating string length should be greater than 2.
eg:-
Given String - "010110111"
o/p -
101 -> 2
011 -> 2
2) Maximum Subarray
Round 3 (onsite) -
It more of a managerial round, the interviewer asked few questions related to my current work. He later gave me one question.
Given a date and the no of days, what will be the date after adding the given no of days. The days can be very large as well. He gave me days as 1000.
eg - 01/03/2025 , days = 20
o/p - 21/03/2025
Round 4 (virtual) -
This was a techno-managerial round.
He asked me questions related to my resume and few behavorial questions. He also asked 1 easy DSA question and 1 sql query.
DSA question -
Given the list of numbers, find the all possible combinations from given input which can have a target sum as 220.
SQL query -
Given a table:
(emp_id, date of salary, salary amount)
Find the employee who has until now received a total amount > 1000000
After couple of days received a call from HR and she confirmed that I am selected. Waiting for the offer letter :)
Interview Questions (7)
Given a string, write a function to encode and decode it. The encode string should not be easily decoded by naked eyes.
Given a string of binary bits, find all the substrings which are repeating consecutively and the no of times its repeated. The repeating string length should be greater than 2.
eg:-
Given String - "010110111"
o/p -
101 -> 2
011 -> 2
Given a date and the no of days, what will be the date after adding the given no of days. The days can be very large as well. He gave me days as 1000.
eg - 01/03/2025 , days = 20
o/p - 21/03/2025
Given the list of numbers, find the all possible combinations from given input which can have a target sum as 220.
Given a table:
(emp_id, date of salary, salary amount)
Find the employee who has until now received a total amount > 1000000
Summary
I had an interview experience at Oracle for an SDE-I role, where I encountered questions covering Java/OOP concepts, Data Structures & Algorithms including LeetCode problems, and a specific SQL query on manager hierarchy.
Full Experience
Interview Experience at Oracle
1. Brief Introduction
I started the interview with a quick introduction about myself, my background, and my experience working with Java and data structures and algorithms.
2. Java/OOP Questions
The interviewer asked several Java questions centered around the four pillars of Object-Oriented Programming:
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
3. Data Structures & Algorithms (DSA) Questions
- LeetCode 179: Largest Number
- Problem: Given a list of non-negative integers, arrange them such that they form the largest number.
- Link: LeetCode 179 – Largest Number
- Symmetric Tree Check
- Problem: Determine if a binary tree is symmetric in structure (ignoring node values).
- Subset Sum Equal To K
- Problem: Given a set of integers and a target sum K, determine if any subset of the integers sums to K.
- Link: Code360 – Subset Sum Equal To K
4. SQL Question
Problem Statement:
Given an Employee table with the following schema:
| Employee | Manager |
|---|---|
| E1 | E2 |
| E2 | E3 |
| E3 | E4 |
| E5 | E6 |
Write a SQL query that, for a given employee name, returns all managers in the reporting hierarchy.
- Example 1: Input:
E1→ Output:E2, E3, E4 - Example 2: Input:
E5→ Output:E6
Hint: You may need to use a recursive common table expression (CTE) to traverse the hierarchy.
WITH RECURSIVE ManagerHierarchy AS ( SELECT Employee, Manager FROM EmployeeTable WHERE Employee = 'E1' -- Replace 'E1' with the desired employeeUNION ALL
SELECT e.Employee, e.Manager FROM EmployeeTable e INNER JOIN ManagerHierarchy mh ON e.Employee = mh.Manager ) SELECT Manager FROM ManagerHierarchy;
These were the questions I encountered during my Oracle interview. Hope this helps others preparing for similar interviews!
Interview Questions (4)
Determine if a binary tree is symmetric in structure (ignoring node values).
Given an Employee table with the following schema:
| Employee | Manager |
|---|---|
| E1 | E2 |
| E2 | E3 |
| E3 | E4 |
| E5 | E6 |
Write a SQL query that, for a given employee name, returns all managers in the reporting hierarchy.
- Example 1: Input:
E1→ Output:E2, E3, E4 - Example 2: Input:
E5→ Output:E6
Hint: You may need to use a recursive common table expression (CTE) to traverse the hierarchy.
Summary
I interviewed for a Software Engineer (IC3|SDE 3) role at Oracle across five rounds, covering Data Structures & Algorithms, System Design, and project discussions. The experience included solving specific problems like 'Insert Delete GetRandom O(1)', a custom string encoding, and designing a healthcare recommendation system.
Full Experience
Oracle Interview Experience – Software Engineer Role Round 1: Screening
DSA Question: Solved the Insert Delete GetRandom O(1) problem, focusing on achieving all operations in average constant time using a combination of HashMap and ArrayList. Project Discussion: Brief discussion on the current project, architecture, and key contributions. Design Patterns: Definitions and real-world implementation of core design patterns like Singleton, Factory, Observer, and Strategy were discussed. After this they schedules loop rounds. Round 2: System Design
Project Deep Dive: Explained the architecture, tech stack, and challenges of the current/previous project. High-Level Design: Designed a Healthcare Medicine Recommendation System that suggests medications based on a patient’s disease and medical history. Covered components like data ingestion, rule engine for recommendations, caching strategies, database schema, and handling scalability. Round 3: Data Structures & Algorithms
Leaders in Array Variant: Solved a variation of the classic "Leaders in an Array" problem. String Encoding Question: Given input like 12(2)3(2)10#, decoded it into abbcccj. Focus was on parsing and converting numerical and symbolic patterns into their corresponding characters. Round 4: Data Structures & Algorithms
Integer to Roman Conversion: Implemented a highly optimized solution for converting integers to Roman numerals without hardcoding mappings, leveraging arrays and modular logic. Round 5: Advanced DSA + System Design
Balanced BST Implementation: Implemented a Binary Search Tree with logic to rebalance the tree after every insertion and deletion (e.g., using AVL or Red-Black Tree concepts). System Design (HLD + Scalability Concepts): Deep discussion on: Scalability techniques Apache Kafka for event-driven architecture Circuit Breaker Pattern for fault tolerance Saga Pattern for managing distributed transactions in microservices
Interview Questions (8)
Solved the Insert Delete GetRandom O(1) problem, focusing on achieving all operations in average constant time using a combination of HashMap and ArrayList.
Definitions and real-world implementation of core design patterns like Singleton, Factory, Observer, and Strategy were discussed.
Designed a Healthcare Medicine Recommendation System that suggests medications based on a patient’s disease and medical history. Covered components like data ingestion, rule engine for recommendations, caching strategies, database schema, and handling scalability.
Solved a variation of the classic "Leaders in an Array" problem.
Given input like 12(2)3(2)10#, decoded it into abbcccj. Focus was on parsing and converting numerical and symbolic patterns into their corresponding characters.
Implemented a highly optimized solution for converting integers to Roman numerals without hardcoding mappings, leveraging arrays and modular logic.
Implemented a Binary Search Tree with logic to rebalance the tree after every insertion and deletion (e.g., using AVL or Red-Black Tree concepts).
Deep discussion on: Scalability techniques, Apache Kafka for event-driven architecture, Circuit Breaker Pattern for fault tolerance, Saga Pattern for managing distributed transactions in microservices.
Summary
This post describes a system design interview experience at Oracle for a Senior Software Engineer role, where I was asked to design a hospital management system.
Full Experience
The interview focused on a system level design problem.
System Level Design
The hospital has multiple wards. Every ward has patients. Every ward is managed by a group of Nurses If a medicine is to be given to the patient, the nurse would do it. Doctors come to see patients check medicines, what new medicine to give, and cancel any existing medicine. Doctors use an app to place orders for medicine. Medicine A should 2 times a day to 3 patients (6 tasks) First day morning - evening
Nurse has a dashboard and see task that which medicine is to be given to the patient on time and mark the task as done.
There are 4 major parts we have in our system,
- Order management system responsible for searching, modifying and canceling order.
- An App to place, modify and regenerate orders.
- Task management system, show which task is created.
- Internal dashboard shows which task has done, yet to be done.
Scale: 10000 patients in one hospital There can be multiple hospitals as well in the city.
Design a High-Level System design supporting the below use case,
- Highly Scalable
- low latency
- Availability
- Fault Tolerant
- APIs Design
- Work-flow Design
Interview Questions (1)
System Level Design
The hospital has multiple wards. Every ward has patients. Every ward is managed by a group of Nurses If a medicine is to be given to the patient, the nurse would do it. Doctors come to see patients check medicines, what new medicine to give, and cancel any existing medicine. Doctors use an app to place orders for medicine. Medicine A should 2 times a day to 3 patients (6 tasks) First day morning - evening
Nurse has a dashboard and see task that which medicine is to be given to the patient on time and mark the task as done.
There are 4 major parts we have in our system,
- Order management system responsible for searching, modifying and canceling order.
- An App to place, modify and regenerate orders.
- Task management system, show which task is created.
- Internal dashboard shows which task has done, yet to be done.
Scale: 10000 patients in one hospital There can be multiple hospitals as well in the city.
Design a High-Level System design supporting the below use case,
- Highly Scalable
- low latency
- Availability
- Fault Tolerant
- APIs Design
- Work-flow Design
Summary
I interviewed for the Senior Member of Technical Staff (SMTS) role at Oracle with 3.10 YOE. The process involved a screening round with a coding test, three loop interviews covering DSA, System Design, and project deep dives, and I ultimately received an offer.
Full Experience
I recently interviewed for the SMTS (Senior Member of Technical Staff) role at Oracle. Here's a breakdown of the process:
📍 Screening Round
Duration: 1 Hour
Format: Online Coding Test (Peer Programming)
Questions was similar to this problem.
Content:
2 LeetCode Medium-level DSA problems
Focus was on problem-solving skills and optimal solutions
Standard topics like Graphs, HashMaps, and Two Pointers
🔁 Loop Interviews (3 Rounds)
Round 1: DSA-Focused Round
Duration: 1 Hour
Format: Live Coding
Content:
Solved 2 LeetCode Medium questions
Interviewer focused on writing clean code and explaining time/space complexities
Follow-ups involved optimizing initial approaches
Round 2: System Design + DSA
Duration: 1 Hour (45 min System Design + 15 min DSA)
Format: Virtual Whiteboard/Discussion
Content:
System Design: Design a healthcare system for doctors and patients
Covered components, data flow, entities, APIs, scalability, and data consistency
DSA: One short LeetCode-style problem (more of a warm-up to wrap up the round)
Round 3: Director Round (Tech Deep Dive)
Duration: 1 Hour
Content:
In-depth discussion on current/past projects
Walked through architecture decisions, design trade-offs, scalability, and tech stack choices
Questions like "Why did you choose this design?", "How would you improve it?", "What challenges did you face?"
Interview Questions (3)
Design a healthcare system for doctors and patients. The discussion covered various components, data flow, entities, APIs, scalability, and data consistency.
An in-depth discussion on current/past projects, focusing on architecture decisions, design trade-offs, scalability, and technology stack choices. Questions included: "Why did you choose this design?", "How would you improve it?", and "What challenges did you face?"
Summary
I recently interviewed for the SMTS role at Oracle, received an offer, and summarized the process which included a screening round, three loop interviews focusing on DSA and System Design, and a director round discussing my projects.
Full Experience
Company: Oracle
Role: SMTS (Senior Member of Technical Staff)
Experience: 3.10 YOE
Status: ✅ Offer Received
I recently interviewed for the SMTS (Senior Member of Technical Staff) role at Oracle. Here's a breakdown of the process:
📍 Screening Round
Duration: 1 Hour
Format: Online Coding Test (Peer Programming)
Questions was similar to this problem.
Content:
- 2 LeetCode Medium-level DSA problems
- Focus was on problem-solving skills and optimal solutions
- Standard topics like Graphs, HashMaps, and Two Pointers
🔁 Loop Interviews (3 Rounds)
Round 1: DSA-Focused Round
Duration: 1 Hour
Format: Live Coding
Content:
- Solved 2 LeetCode Medium questions
- Interviewer focused on writing clean code and explaining time/space complexities
- Follow-ups involved optimizing initial approaches
Round 2: System Design + DSA
Duration: 1 Hour (45 min System Design + 15 min DSA)
Format: Virtual Whiteboard/Discussion
Content:
- System Design: Design a healthcare system for doctors and patients
- Covered components, data flow, entities, APIs, scalability, and data consistency
- DSA: One short LeetCode-style problem (more of a warm-up to wrap up the round)
Round 3: Director Round (Tech Deep Dive)
Duration: 1 Hour
Content:
- In-depth discussion on current/past projects
- Walked through architecture decisions, design trade-offs, scalability, and tech stack choices
- Questions like "Why did you choose this design?", "How would you improve it?", "What challenges did you face?"
✅ Final Outcome
I’m happy to share that I received the offer 🎉
Here's the Offer Breakup for anyone interested in the compensation details.
Interview Questions (3)
Question similar to LeetCode's Number of Islands problem.
Design a healthcare system for doctors and patients. The discussion covered components, data flow, entities, APIs, scalability, and data consistency.
In-depth discussion on current/past projects. Questions included: "Why did you choose this design?", "How would you improve it?", "What challenges did you face?" Discussion covered architecture decisions, design trade-offs, scalability, and tech stack choices.
Preparation Tips
- Be strong with core DSA, especially medium-level LeetCode problems
- Practice System Design, even for mid-level roles
- Be ready to deep dive into your projects — know the why, how, and impact
- Communication matters a lot, especially in the Director round
Summary
An experienced professional with 3.5 years of experience interviewed for an Application Developer 3 role at Oracle in Hyderabad, completing two technical rounds before being rejected. The interview focused on data structures, algorithms, and some behavioral aspects.
Full Experience
Status: Experienced professional with 3.5 years in software development
Interview Process
First Round (Technical Zoom Call, 1 hour):
Assignment Questions:
One day before they provided a google doc with some SQL and Java implementation problem. So First 15 minutes was discussed on the solution of those problems
Logical Problem:
Problem: Find Top K Frequent Elements of an array
I solved this question and provided the optimized code
Second Round (Technical Zoom Call, 1 hour):
Behavioral Questions:
Asked about my current work role. A few general technical question based on my resume. Logical Problem:
Problem:
- Find missing number in consecutive array of n+1 elements Solved Using Math Formula
- Reverse a String Preserving space Solved with brute force
- Queue Using 2 stacks Provided the approach--Not solved becuase time is over.
Verdict: Rejected After Second Round.
Interview Questions (4)
Find Top K Frequent Elements of an array
Find missing number in consecutive array of n+1 elements
Reverse a String Preserving space
Queue Using 2 stacks
Preparation Tips
One day before the first round, they provided a google doc with some SQL and Java implementation problems to solve.
Summary
I recently interviewed with Oracle for a software role, and it was a great learning experience where I encountered several coding questions testing my problem-solving skills, data structures, and algorithmic thinking.
Full Experience
I recently had the opportunity to interview with Oracle for a software role, and it was a great learning experience! Here are some of the coding questions I encountered during the process:
1️⃣ Remove the minimum number of parentheses for a valid string
Given a string containing parentheses, the goal is to remove the minimum number of invalid parentheses to make the string valid. Hint:-The solution requires efficient use of stacks or DFS.
2️⃣ Stock Price Tracker
You are given a stream of records about a particular stock. Each record contains a timestamp and the corresponding price of the stock at that timestamp. You need to implement the Stock Price class that supports the following operations:
Update the price of the stock at a given timestamp.
Retrieve the latest stock price (price at the latest timestamp recorded).
Retrieve the maximum stock price recorded so far.
Retrieve the minimum stock price recorded so far.
Hint:-This problem can be efficiently solved using a combination of hash maps and priority queues.
3️⃣ Maximum Path Sum in a Binary Tree
Given a binary tree, find the path with the maximum sum. The path can start and end at any node.
Hint:- The solution involves a depth-first search (DFS) traversal while keeping track of the maximum sum encountered.
These questions tested my problem-solving skills, data structures, and algorithmic thinking. Overall, it was a great experience!
If you’re preparing for coding interviews, I highly recommend practicing these types of questions. Feel free to drop a comment if you have any thoughts or if you’ve faced similar challenges in your interviews!
#Oracle #InterviewExperience #CodingInterview #DataStructures #Algorithms #SoftwareEngineering
Interview Questions (3)
Given a string containing parentheses, the goal is to remove the minimum number of invalid parentheses to make the string valid. Hint:-The solution requires efficient use of stacks or DFS.
You are given a stream of records about a particular stock. Each record contains a timestamp and the corresponding price of the stock at that timestamp. You need to implement the Stock Price class that supports the following operations:
Update the price of the stock at a given timestamp.
Retrieve the latest stock price (price at the latest timestamp recorded).
Retrieve the maximum stock price recorded so far.
Retrieve the minimum stock price recorded so far.
Hint:-This problem can be efficiently solved using a combination of hash maps and priority queues.
Given a binary tree, find the path with the maximum sum. The path can start and end at any node. Hint:- The solution involves a depth-first search (DFS) traversal while keeping track of the maximum sum encountered.
Summary
I interviewed for an IC2 role at Oracle. Despite strong DSA skills, my design skills were deemed weak, leading to a referral for another team requiring a complete re-interview process.
Full Experience
Years of Experience (YOE): 2.9 years
Round 1: Screening Round
Question 1: A prefix nums[0..i] is sequential if, for all 1 <= j <= i, nums[j] = nums[j - 1] + 1. In particular, the prefix consisting only of nums[0] is sequential. Return the smallest integer x missing from nums such that x is greater than or equal to the sum of the longest sequential prefix.
Input: nums = [1,2,3,2,5] Output: 6 Explanation: The longest sequential prefix of nums is [1,2,3] with a sum of 6. 6 is not in the array, therefore 6 is the smallest missing integer greater than or equal to the sum of the longest sequential prefix.
Input: nums = [3,4,5,1,12,14,13] Output: 15 Explanation: The longest sequential prefix of nums is [3,4,5] with a sum of 12. 12, 13, and 14 belong to the array while 15 does not. Therefore 15 is the smallest missing integer greater than or equal to the sum of the longest sequential prefix.
Question 2: https://leetcode.com/problems/asteroid-collision/description/
Round 2
Question 1: Median of Two Sorted Arrays – I was able to provide a solution using extra space. The interviewer was looking for a more optimal solution (without extra space), but he was okay with my approach and moved on to the next problem.
Question 2: https://leetcode.com/problems/palindrome-partitioning/description/ Was able to solve this completely
Round 3
This was supposed to be an LLD/Java round. The interviewer asked me to create a Spring Boot project with a proper folder and file structure. He asked me to create one for a BookMyShow app. Since I didn’t have much experience with Spring Boot, I couldn't create a very detailed app.
He was mainly interested in understanding the data flow and how it happens. Then, he moved on to API discussions and also discussed the same for my previous projects.
Round 4 (HM)
Started off with an introduction, followed by a resume-based discussion. Later, I was asked a few Java-related questions (Lambda, Streams, etc.).
At the end, he asked me one coding problem: Problem: Reverse each word in a sentence.
- I was asked to write the solution in Java.
- I coded it but took some time and required a few hints. Since I primarily do DSA in C++, I faced some syntax-related issues.
I reached out to the recruiter regarding feedback. She mentioned that my DSA/problem-solving skills were strong, but my design skills were weak. The team I was interviewing for was looking for more experienced candidates. However, the recruiter told me that she would refer me to another team, and I would have to go through the complete interview loop again for that team.
Interview Questions (6)
A prefix nums[0..i] is sequential if, for all 1 <= j <= i, nums[j] = nums[j - 1] + 1. In particular, the prefix consisting only of nums[0] is sequential. Return the smallest integer x missing from nums such that x is greater than or equal to the sum of the longest sequential prefix.
Input: nums = [1,2,3,2,5] Output: 6 Explanation: The longest sequential prefix of nums is [1,2,3] with a sum of 6. 6 is not in the array, therefore 6 is the smallest missing integer greater than or equal to the sum of the longest sequential prefix.
Input: nums = [3,4,5,1,12,14,13] Output: 15 Explanation: The longest sequential prefix of nums is [3,4,5] with a sum of 12. 12, 13, and 14 belong to the array while 15 does not. Therefore 15 is the smallest missing integer greater than or equal to the sum of the longest sequential prefix.
Median of Two Sorted Arrays – I was able to provide a solution using extra space. The interviewer was looking for a more optimal solution (without extra space), but he was okay with my approach and moved on to the next problem.
The interviewer asked me to create a Spring Boot project with a proper folder and file structure. He asked me to create one for a BookMyShow app. Since I didn’t have much experience with Spring Boot, I couldn't create a very detailed app. He was mainly interested in understanding the data flow and how it happens. Then, he moved on to API discussions and also discussed the same for my previous projects.
Problem: Reverse each word in a sentence. - I was asked to write the solution in Java.
Summary
I interviewed for an IC2 role at Oracle OCI, progressing through multiple rounds that included coding, system design, and behavioral questions. Although I received an offer, I eventually did not accept it as the hiring manager decided to move on with another candidate after I tried to negotiate for higher compensation.
Full Experience
I had an interview experience for an IC2 position at Oracle OCI with 1.8 years of experience. The process involved multiple rounds, starting with a screening round that covered both coding and fundamental computer science concepts. This was followed by four 'Loop Rounds', which included technical discussions, system design, behavioral questions, and more coding challenges. I specifically remember being asked about my projects and on-call responsibilities in almost every round. In the end, I received an initial offer of 40LPA (27+13), but after I tried to negotiate for a higher compensation, the hiring manager decided to proceed with another candidate and withdrew the offer.
Interview Questions (23)
Explain the key differences between mutexes and semaphores, including their typical use cases and synchronization mechanisms.
Elaborate on the distinctions between Thread.sleep() and Object.wait() in Java, specifically concerning thread states, monitor locks, and their respective use in concurrent programming.
Discuss the principles of optimistic and pessimistic locking strategies in database systems or concurrent programming, outlining their advantages, disadvantages, and scenarios where each is preferred.
Describe what Apache Tomcat is, its role as a web server and servlet container, and its primary functionalities.
Explain the concepts and operational differences between Local Secondary Indexes (LSI) and Global Secondary Indexes (GSI) in Amazon DynamoDB, and when to use each.
Discuss the reasons for using Protocol Buffers (Protobuf) for data serialization, highlighting its benefits over other serialization formats like JSON or XML.
Regarding a specific project, identify the communication protocols utilized and justify the selection of these protocols.
Detail the end-to-end process of how HTTPS works, covering aspects like TLS/SSL handshake, encryption, digital certificates, and secure communication.
Describe a significant project you have worked on in detail, explaining its architecture and design decisions. Be prepared to illustrate with diagrams.
Recount a significant professional mistake you've made, what transpired, and the key lessons or insights you gained from that experience.
Share an example of your most impactful work or contribution in your career, detailing your role, the challenges, and the positive outcomes.
Reflect on systems or architectures you've worked with and discuss potential problems, bottlenecks, or areas for improvement you identify within them.
Describe a project in depth, focusing on how you would approach scaling it to handle increased load or data, and elaborate on the methodologies and strategies used for testing its features.
Discuss your practical experience with on-call issues, including incident response and resolution. Explain your involvement in deployment processes and how you've worked with load balancers.
Walk through the entire lifecycle of a web page being loaded in a browser, starting from typing the URL and covering DNS resolution, TCP/IP handshake, HTTP request/response, rendering, and potential optimizations.
Explain the fundamental principles of how a Virtual Private Network (VPN) operates, including concepts like tunneling, encryption, and how it might interact with private DNS servers.
Describe and provide a solution for the Josephus Problem: given n people standing in a circle and counting off every kth person to be eliminated, determine the position of the last surviving person. The interviewer specifically asked not to worry about optimization.
Detail a specific on-call incident you've handled, outlining the nature of the problem, the steps you took to diagnose and resolve it, and the ultimate outcome.
Summary
I recently had my first round interview with Oracle for a Software Engineer role in their ERP team, covering data structures, algorithms, Java concepts, SQL, and system design.
Full Experience
I recently had my first round (R1) interview for a Software Engineer (SE) role within the ERP team at Oracle. The interview covered a broad range of topics, including data structures and algorithms, core Java concepts, database queries, and system design principles. I was presented with several questions covering these areas during the round.
Interview Questions (8)
Given an array of strings, return all the strings whose frequency of occurrence in the array is greater than a specified target value.
Find the Kth largest element in an unsorted array.
Given a list of Student objects, where each object has attributes Name, RollNo, and marks, write a function to print the list of objects sorted based on their marks in ascending order.
Explain the difference between Comparator and Comparable interfaces in Java. Provide use cases for each.
Explain what internally happens when a static variable is used in Java, including its memory allocation and lifecycle.
Given two tables: Employee (columns: EmpID, Name, DeptID, Salary) and Department (columns: DeptID, DeptName). Write an SQL query to find the average salary for each department.
Discuss the different design patterns you have worked on and describe your experience with them.
Discuss the differences, advantages, and disadvantages of Monolithic versus Microservices architecture.
Summary
I interviewed for a Senior Application Developer position at Oracle in March 2025. My interview process included three technical rounds covering data structures, algorithms, system design, and project discussions. Although I received positive feedback from the interviewers, I was ultimately not selected for the role.
Full Experience
I recently had an on-site interview for a Senior Application Developer role at Oracle. The process consisted of three distinct rounds, each focusing on different aspects of my technical and problem-solving skills.
Round 1: Data Structures & Algorithms
The first round was primarily focused on core data structures and algorithms. I was presented with several coding challenges:- One problem was a classic dynamic programming problem, Kadane's Algorithm, asking for the maximum subarray sum.
- Another involved finding the longest sequence of ones in a binary string.
- I also had to determine the number of possible paths from the top-left to the bottom-right corner of an
n*mgrid, restricted to moving only right or down. - There was a two-pointer question related to finding the minimum subarray size, but I can't recall the exact details of that one.
- Additionally, the interviewer asked several in-depth questions about my past projects and drilled into my resume.
Round 2: Problem Solving & System Design
The second round delved into more complex problem-solving and system design.- I was challenged with a scheduling question, specifically devising an intuition for scheduling classes for a school. This involved considering teacher availability, a fixed number of classes per day, and a total number of days, along with a variation if an additional section was added.
- A classic water jug puzzle was also posed: how to fill exactly 4 liters using 3-liter and 5-liter jugs.
- The round also included a system design question, where I needed to outline how I would design a multiplayer Snakes and Ladders game.
Round 3: Algorithms & Problem Solving
The final round continued with algorithmic challenges.- One problem was described as a 'flight scheduling problem', though I don't remember the specifics.
- The other was the well-known Merging Intervals problem, where I needed to combine overlapping time intervals.
Overall, I felt I performed well and received positive feedback from my interviewers. However, despite this, I was ultimately not selected for the position.
Interview Questions (7)
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
Find the length of the longest contiguous subsegment of ones in a binary string (string of zeros and ones).
Given a grid of size n*m, find the number of unique paths from the top-left corner (0,0) to the bottom-right corner (n-1, m-1). You can only move right or down.
Given teacher availability (e.g., 4 4 3 3 3 3 representing available slots for subjects ma so sc en l1 l2), with 4 classes allowed per day and a total of 5 days, design a schedule for each day. Also, consider a variation with an added section and how that would impact the scheduling.
You have a 3-liter jug, a 5-liter jug, and an empty jug. The goal is to measure exactly 4 liters of water using these jugs.
Design a multiplayer Snakes and Ladders game. Consider aspects like game state, player turns, dice rolls, special squares (snakes/ladders), and multiplayer synchronization.
Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.
Summary
I successfully navigated a rigorous 5-round interview process at Oracle for a Java Developer position, demonstrating proficiency in data structures, algorithms, core Java concepts, and system design, ultimately leading to an offer for an Applications Engineer role.
Full Experience
My interview journey with Oracle for a Java Developer position spanned 10 days, with each round serving as an elimination stage. A recruiter initially contacted me via Naukri.
Round 1: Online Assessment
This round featured two questions. I had to solve a coding problem and also demonstrate my ability to make a REST API call using Java, parsing the JSON response.
Round 2: F2F Interview (1 hour)
After two days, I received a call for the onsite interviews. For all these rounds, I had to write code on paper and explain my approach. This round covered:
- Coding: Printing all subsets with a given sum.
- Java Concepts: Exceptional Hierarchy, questions on strings (code snippets,
string intern()method), and the differences betweenFinal,Finally, andFinalize. - One conceptual question: Can a
tryblock be used without acatchblock?
Round 3: F2F Interview (1 hour, same day)
This round was also focused on coding and some technical concepts:
- Coding: Adding two numbers represented by linked lists.
- Database: Finding the nth highest employee salary from a table, and finding the name of an employee with the Nth highest salary from a list.
- Front-end: What is AJAX?
- Coding: Identifying all leaders in an array of integers (an element is a leader if it's greater than all its right elements).
Round 4: F2F Interview (1.5 hours, same day)
This round delved deeper into design principles and advanced coding problems:
- Object-Oriented Programming: I explained all OOPs concepts with practical examples from my projects.
- Software Design: I explained SOLID principles with practical examples from my projects.
- Java Concepts: Exceptional hierarchy in detail (Error vs Exception, Checked vs Unchecked).
- Coding: Sorting two arrays (names and cities) based on names, then by city if names are equal.
- Coding: Printing array elements in an alternating high-low order (first highest, first smallest, second highest, second smallest, and so on).
- System Design: I explained steps involved from request to response.
- Database: How to optimize database performance.
Round 5: F2F Interview (2 hours)
After a two-day wait, I had my final and most extensive interview:
- Design Patterns: I explained and wrote code for design patterns I had worked with.
- Java Concepts: Exceptional hierarchy (again), questions on code snippets, constructors, serialization/deserialization in depth,
StringvsStringBuffervsStringBuilder, functional interfaces, marker interfaces. - Coding: Finding combinations of digits for a 3-digit integer that sum to a given value.
- Project Discussion: Several questions about my projects.
- Memory Management: Discussed memory management.
- Java Concepts: Abstract classes and interfaces in depth, including whether an abstract class must have at least one abstract method.
The verdict came after three days: I was selected! Oracle offered me the role of Applications Engineer with a fixed salary of 19 LPA, without bonuses or stocks. My previous experience was with TCS as a Java Spring Boot Developer with 2 years and 1 month of experience.
Interview Questions (31)
Given a string s, find the length of the longest substring without repeating characters.
Given a URI, write Java code to make a REST API call, fetch the JSON response, and process its contents.
Given a set of numbers and a target sum, print all subsets of the set whose elements sum up to the target.
Explain the Java Exception Hierarchy, including Throwable, Error, Exception, RuntimeException, and their relationships.
Explain the purpose and behavior of the String.intern() method in Java.
Differentiate between the final keyword, the finally block, and the finalize() method in Java, providing use cases for each.
Can a try block be used without a catch block in Java? If yes, how and why?
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list.
Write a SQL query to find the Nth highest employee salary from an Employees table.
Given a list of employee objects, each with a name and salary, find the name of the employee who has the Nth highest salary.
Explain what AJAX (Asynchronous JavaScript and XML) is, its purpose, and how it works in front-end web development.
Given an array of integers, find all 'leaders' in the array. A leader is an element that is greater than all the elements to its right. The leaders should be returned in the order they appear.
Explain core Object-Oriented Programming (OOPs) concepts such as Encapsulation, Inheritance, Polymorphism, and Abstraction, providing practical examples of how they were applied in your projects.
Explain each of the SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) and demonstrate their application with practical examples from your projects.
Elaborate on the Java exception hierarchy, providing a detailed comparison between Error and Exception, and explaining the distinction between checked and unchecked exceptions.
Given two arrays, one for employee names (names[]) and one for their corresponding cities (cities[]), sort the data primarily by name. If names are identical, then sort by city.
Given an array of integers, print its elements in the following order: the highest element, then the smallest, then the second highest, then the second smallest, and so on.
Explain the end-to-end steps involved in a typical web request-response cycle, from a client making a request to receiving a response from a server.
Discuss various techniques and strategies to optimize database performance.
Explain specific design patterns you have experience with (e.g., Singleton, Factory, Observer) and demonstrate their implementation with code examples relevant to your projects.
Explain the Java Exception Hierarchy, including Throwable, Error, Exception, RuntimeException, and their relationships.
Discuss Java constructors in depth, including constructor overloading, default constructors, and constructor chaining.
Explain the concepts of serialization and deserialization in Java, including how to implement them, common issues, and use cases.
Compare and contrast String, StringBuffer, and StringBuilder in Java, focusing on their immutability, thread-safety, and performance characteristics.
Explain what functional interfaces are in Java, their purpose, and how they are used with lambda expressions.
Explain what marker interfaces are in Java and provide examples of their use.
Explain the concept of String pooling in Java and how String concatenation works, including performance considerations.
Given a target sum, find all combinations of single-digit numbers (0-9) that add up to the target sum.
Discuss Java memory management, including JVM memory areas (Heap, Stack, Method Area), garbage collection, and best practices.
Explain Java abstract classes and interfaces in depth, comparing their features, use cases, and how they achieve abstraction and polymorphism.
Is it mandatory for an abstract class in Java to have at least one abstract method? Explain.
Preparation Tips
I diligently prepared by focusing on core Java concepts, object-oriented programming principles, and a wide range of data structures and algorithms. For system design, I reviewed common architectural patterns and best practices. My practical experience from various projects was crucial, as many interview questions involved explaining concepts with real-world examples and writing code on paper. I also revisited database optimization techniques and front-end fundamentals like AJAX.
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.
Summary
I recently interviewed for a Full-Time Engineer role in Server Technology at Oracle and successfully received an offer after three challenging rounds covering technical skills, system design, and behavioral aspects.
Full Experience
I went through a total of three interview rounds for the Full-Time Engineer position at Oracle in their Server Technology division.
Technical Round 1
The first technical round started with a self-introduction, followed by questions about my internship and the specific tech stack I used there. We then moved on to discussing my projects, which the interviewer seemed quite interested in. We had an extensive discussion about my project work. Towards the end, I was asked to describe a challenging coding problem I had solved in the past and felt accomplished about. The interviewer's main interest was in my ability to explain the problem statement clearly rather than just the solution itself.Technical Round 2
In the second technical round, the interviewer began by asking about my transition from ECE to software engineering. They then presented me with an RC circuit and a sine wave input, asking me to describe the circuit's output. I correctly identified it as a Low Pass Filter (LPF). Following this, we moved on to coding questions. I was given a variation of the Max Consecutive Ones III problem, where I had to return the indices of the zeros I would flip. I also had to partition a string into non-empty palindrome substrings using a backtracking approach and was asked the Sort Colors problem. Finally, I was asked to explain the Merge Sort algorithm in detail.Technical + HR Round
The final round started with some basic math and aptitude puzzles. We then discussed my internship in more detail. After that, the interviewer delved into core computer science questions covering operating systems, DBMS, and object-oriented programming (OOPs). A significant part of this round involved a system design challenge where I was asked to draw a system design for a URL encoder website. The round concluded with several behavioral questions.Outcome
I am pleased to say that I was selected for the role.Interview Questions (6)
The interviewer presented an RC circuit with a sine wave input and asked me to determine the output for the circuit. I identified it as a Low Pass Filter (LPF).
The problem asked me to partition a given string into non-empty substrings such that each substring is a palindrome. This problem typically involves backtracking.
I was asked to explain the Merge Sort algorithm in detail, including its time and space complexity, and how it works.
I was asked to draw a system design for a URL encoder website. This would typically involve discussing components like API gateways, short URL generation logic, databases for mapping long to short URLs, scalability, etc.
Summary
I interviewed for an IC2 role at Oracle OCI, completing five rounds covering technical, system design, and managerial skills. Despite receiving a verbal offer and discussing compensation, the position was unexpectedly put on hold, possibly due to my long notice period.
Full Experience
I recently appeared for an IC2 role at Oracle OCI. With 2.5 years of experience at a product-based MNC, I applied through their career portal and went through a total of five, one-hour rounds: one screening, two technical, and two managerial.
Screening Round: Technical
Two interviewers started with introductions and discussed the projects I had worked on, focusing on schema and API exposures. They then gave me a coding question, which was a variation of Group Anagrams, requiring me to handle any symbols. I presented my solution, which seemed to convince the interviewer.
A week later, I received positive feedback and was scheduled for four more interview rounds. I took 1.5 days off from my current organization for this.
First Round: Technical
This round was with an interviewer who had 10 years of experience. It began with an introduction and deep dive into my projects. He gave me a coding question: Next Greater Element I. I asked if we should discuss it first or if I should just write code, and when he suggested he could ask another question if I knew this one, I truthfully replied I didn't. I first proposed an O(n^2) approach and then refined it to a stack-based approach.
He then asked some general questions:
- How do you handle production issues?
- How do you ensure production issues don't impact clients for a prolonged time?
With time remaining, he asked another coding question: Search a 2D Matrix II. I knew the optimized solution. I started by explaining the O(m*n) approach, then O(n log m), and was about to present the most optimized solution when he asked to move on, given the time. I regret not pushing for a few more minutes, as I was confident in my knowledge, but he seemed convinced. The interview ended early, and I had a chance to ask my questions.
Second Round: Technical
The interviewer was very supportive. We started with introductions, and he mentioned that 30 minutes would be for a coding challenge and the remaining 30 minutes for system design. The coding question was Shortest Path in Binary Matrix. For system design, he asked for an LLD of Cricbuzz, mainly focusing on the schema.
Third Round: Managerial
This round was with a manager. We started with introductions and then a thorough discussion of my projects. She then asked a lot of scenario-based questions:
- Is there any colleague who inspires you?
- Can you describe a significant technical challenge you faced?
- Can you recall a scenario when your boss changed, and how you handled it?
- Have you ever missed a deadline? How did you handle it?
- How do you handle changes in work priorities?
- Why are you switching jobs?
She also gave a coding question, which was a variation of Merge Intervals. I first provided a brute-force solution and then moved to the most optimized approach.
At the end, I asked a question about the stage of Oracle Cloud, to which she seemed slightly taken aback and suggested I could Google it, confirming it was fully fledged with many clients. I realize now I should have phrased my question better.
Fourth Round: Managerial
This round involved introductions and an in-depth grilling of my resume. Again, there were many scenario-based questions. I was asked to write code for merge sort and also to replicate a deadlock using threads.
At the end, I asked for feedback. He mentioned I was good at coding but needed to learn beyond day-to-day work, such as DevOps. He was from a DevOps team, and my lack of extensive DevOps knowledge might have been a factor.
After a long time, this was a comprehensive interview process, and I made a few mistakes. However, completing all rounds, I felt a sense of self-worth and capability.
A week later, I heard positive feedback, and HR discussed salary, location, and other details, stating it would take 10-12 days to release an offer letter after email approval. Unfortunately, I later learned the position was put on hold, possibly due to my 90-day notice period. I will update this post if I hear back.
Interview Questions (16)
Scenario-based question on how I would handle production issues.
Question on strategies to ensure production issues do not impact clients for extended periods.
Design the low-level architecture of a service like Cricbuzz, with a primary focus on database schema design.
Behavioral question asking about a colleague who inspires me.
Behavioral question about a significant technical challenge I faced and how I overcame it.
Behavioral question on how I handled a situation where my boss changed.
Behavioral question on a scenario where I missed a deadline and what I did.
Behavioral question on how I manage changes in work priorities.
Behavioral question asking about my motivations for seeking a new job.
Implement the Merge Sort algorithm.
Write code to demonstrate or replicate a deadlock scenario using multiple threads.
Preparation Tips
Based on my experience, here are some tips:
- Always ensure to ask relevant questions at the end of the interview or general questions about work culture.
- Practice starting with a brute-force solution and then gradually moving towards the optimized solution. Sometimes, we "genius Leetcoders" tend to jump straight to the optimized solution, but a step-by-step approach can be beneficial.
- Maintain confidence throughout the interview process.
Summary
I recently interviewed for an IC3 Software Engineer role at Oracle and successfully received an offer. The interview process spanned several rounds, including technical screenings, deep dives into my projects, behavioral assessments, and a system design discussion.
Full Experience
My interview journey with Oracle began after receiving a call from a recruiter. I have about 5 years of experience, working as an SDE2 at a multi-national company. The recruiter informed me that the initial technical screening would be an elimination round, and passing it would lead to a full onsite loop of five additional rounds.
1st Round: Tech Screening
After initial introductions, the interviewer presented a dynamic programming question that was conceptually similar to the subset sum problem. It wasn't a direct copy, so I had to identify the underlying pattern to devise a solution. I managed to solve it completely, working through a few base case issues. Following that, a behavioral question was posed, and then we moved into system design, where I was asked to suggest improvements for a system the interviewer described.
Onsite Loop Interviews:
Round 1 (Technical)
The first question in this round was a warm-up, an easy LeetCode-level problem related to tree traversals. After that, another behavioral question was asked. The final technical question was to search in a rotated sorted array. I successfully solved both of these questions.
Round 2 (Hiring Manager)
I had anticipated this to be a system design round, but it turned out to be with a hiring manager. This round focused heavily on behavioral questions. We had an in-depth discussion about my past projects, my specific contributions, and various situational questions. I was also asked to draw out the system design for my current project and later suggest an improvement or change to a system.
Bar Tender Round (Senior Director)
This round, taken by a Senior Director, was a very pleasant experience. We had a good discussion about my work portfolio as detailed in my resume. Again, many behavioral questions were asked, and we discussed my current project and my contributions in detail.
System Design Round
After brief introductions and a few questions about my current project, I was tasked with designing a payment system at a high level. The interviewer also wanted to know what changes I would implement in the system to handle high traffic.
A few days later, the recruiter informed me that the debrief outcome was positive, and they would proceed with the offer rollout process.
Interview Questions (2)
Given a sorted array that has been rotated at some pivot unknown to you beforehand, search for a given target element. For example, [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2].
Design a high-level payment system. Discuss considerations for handling high traffic and ensuring scalability, reliability, and security.
Summary
During my interview for an Application Software Developer position at Oracle, I was asked to solve a problem involving finding the longest consecutive sequence in an unsorted array.
Full Experience
My interview experience for the Application Software Developer role at Oracle primarily focused on a technical question. The problem presented to me involved analyzing an unsorted array to determine the longest consecutive sequence within it, with specific constraints regarding sorting and duplicate handling.
Interview Questions (1)
Given an unsorted array, we have to find the length of the longest consecutive sequence.
Note: The solution should not sort the array or use any data structure which inherently sorts the array. The array may also contain duplicates, so each unique value should be counted only once.
Example:
Input: {100, 98, -1, 0, 99, 1, 3, 4, 2, 5, 67}
In this, the sequence -1, 0, 1, 2, 3, 4, 5 is the longest consecutive sequence. The count is 7, so the output is 7.
Summary
I interviewed for the IC2 Applications Engineer role at Oracle and received an offer. The process involved a HackerRank online assessment, an onsite technical round, and a hiring manager discussion, covering data structures, algorithms, system design, and SQL.
Full Experience
My interview journey for the Applications Engineer IC2 position at Oracle began with a HackerRank Online Assessment. This round, lasting about an hour, included one medium difficulty DSA problem, several questions on trees, and some aptitude questions.
The second round was an onsite interview at Oracle's Bangalore office, which lasted approximately two hours. This round started with an in-depth discussion about my projects and previous experience. The interviewer then delved into a variety of technical questions, including the famous LeetCode problem 'Binary Tree Cameras,' how to implement authentication between two microservices, tricky SQL questions, understanding the 'merge' statement, database triggers, explaining sharding and partitioning, locking in SQL, and the 'with' clause. Since I mentioned JavaScript in my experience, there was also a JavaScript-based question. A medium-difficulty puzzle from GeeksforGeeks was also part of this round. Additionally, there were standard Spring Boot questions, covering different types of annotations, and questions about Tomcat and JVM.
Finally, I had the third round, which was with the Hiring Manager, conducted via a Zoom call for about an hour. This round focused heavily on project-based discussions. Questions related to Kafka and Redis were asked because I had mentioned them on my resume. There were also questions on basic encryption/decryption techniques and the differences between SSL and TLS. This round involved more project-related grilling. I was ultimately SELECTED for the role.
Interview Questions (11)
Explain and describe how to implement authentication between two microservices.
What is the MERGE statement in SQL and how is it used?
What is a database trigger and what are its applications?
Explain the concepts of sharding and partitioning in databases, including their differences and use cases.
Explain different types of locking mechanisms in SQL databases.
What is the WITH clause (Common Table Expression) in SQL and how is it used?
Explain what Apache Tomcat is and its role in web application deployment.
Explain what the Java Virtual Machine (JVM) is and its key components.
Explain basic encryption and decryption techniques.
Explain the differences between SSL and TLS protocols.
Summary
I recently interviewed for an IC3 role at Oracle-OCI in the USA. The interview process consisted of several rounds, including object-oriented design, behavioral discussions, and two LeetCode medium problems. I have not yet received an offer.
Full Experience
I applied for a position on the Oracle portal, and a recruiter reached out to me. The scheduling process was smooth, but I didn't receive much information about what to expect in the interviews.
My first round was focused on Object-Oriented Programming (OOP). I was asked to write code to design a game and its player characters. The interviewer was primarily interested in my approach to designing classes, subclasses, and methods, rather than the specific game logic itself.
Following that, I had a series of onsite virtual loops:
- Round 1 (IC4 from another team): This was a 1-hour technical round. I spent about 50 minutes on a LeetCode medium problem, which was related to arrays and stacks. The remaining 10 minutes were for Q&A.
- Round 2 (Sr. PM from another team): This 1-hour round was entirely behavioral, focusing on my working style and past experiences.
- Round 3 (Hiring Manager): A shorter 35-minute session with the Hiring Manager. We discussed team fit for about 20 minutes, followed by 15 minutes for my questions.
- Round 4 (IC5): Another 1-hour technical round. I spent about 40 minutes on a LeetCode medium problem involving a tree structure. The first 10 minutes were for intro and behavioral questions, and the last 10 minutes for Q&A.
- Round 5 (IC4): This was a 1 hour and 10 minutes round. After a 5-minute introduction, I spent 55 minutes on a specific LeetCode medium problem, Minimum Area Rectangle. The remaining 10 minutes were for Q&A.
I noticed that the LeetCode questions I encountered were not from the commonly tagged Oracle list on LeetCode.
Interview Questions (2)
I was asked to write code to design a game and its player characters. The interviewer's focus was on assessing my ability to design classes, subclasses, and methods using object-oriented principles, rather than the specific game logic.
Summary
I interviewed for a Project Intern role at Oracle OFSS through an on-campus drive and was selected. The process included an online assessment, a technical round focused on CS fundamentals and my projects, and a final HR round.
Full Experience
My interview journey for the Project Intern position at Oracle OFSS began with an Online Assessment hosted on Hackerrank. This round consisted of 20 multiple-choice questions covering aptitude and reasoning, along with one easy-medium LeetCode problem and an API problem similar to those found on Hackerrank.
The first Technical Round started with my self-introduction. The interviewer then delved into Java, asking about my knowledge and why it's a popular language. We also covered standard Computer Science concepts such as Object-Oriented Programming (OOP), with specific questions on explaining Encapsulation with an example, Polymorphism, and exception handling. A significant portion of this round was dedicated to discussing the projects listed on my resume, which meant I wasn't asked to solve any data structures and algorithms problems directly. However, I know a friend was asked an easy LeetCode problem in this same round.
Finally, the second HR Round again involved discussions about my projects. I was asked classic behavioral questions like "Why do you want to work at Oracle?", "What are your strengths and weaknesses?", and "Why should we hire you?". Additionally, some basic ECE (Electronics and Communication Engineering) related questions were posed.
The verdict was positive: I was selected! Out of more than 450 students who took the Online Assessment, only 6 were shortlisted for interviews, and I was the sole candidate selected.
Interview Questions (7)
Describe your understanding of the Java programming language and elaborate on the factors contributing to its widespread popularity.
Explain the fundamental principles and concepts of Object-Oriented Programming (OOP).
Define Encapsulation within the context of object-oriented programming and provide a clear, illustrative example.
Explain the concepts of Polymorphism and Exception Handling in programming, detailing their significance and how they are used.
Express your motivation and specific reasons for wanting to work at Oracle, highlighting what attracts you to the company.
Discuss your key professional strengths and honestly identify areas you consider weaknesses, perhaps also mentioning how you are working to improve them.
Articulate why you believe you are the ideal candidate for this particular role and why Oracle should choose to hire you.
Summary
I received an offer for an IC3 Senior Member of Technical Staff position at Oracle Cloud Infrastructure (OCI) in Bangalore. My interview experience was rigorous, covering Data Structures, Compiler Design, and C++ specific questions, leading to a compensation package of ~42 LPA CTC.
Full Experience
I recently interviewed with Oracle Cloud Infrastructure (OCI) for an IC3 (Senior Member of Technical Staff) position in Bangalore. As a 2020 CSE graduate, I found the interview experience rigorous yet enjoyable. I went through multiple rounds, which primarily focused on Data Structures, Compiler Design, and C++ specific topics. The offer I received includes a CTC of approximately 42 LPA, 17 Lacs in yearly stocks, and a 12 Lacs joining bonus. I am currently weighing this offer against my existing role at a startup and considering the work environment at OCI.
Interview Questions (4)
The interviewer presented a problem requiring the implementation or discussion of a common ancestor algorithm in a tree structure. Specifics on the tree type or constraints were not detailed.
I was asked to implement a string reversal algorithm where all characters are reversed, but the original positions of spaces within the string must be maintained.
The interview delved into theoretical computer science, specifically asking to prove if a given language is regular and to discuss the Pumping Lemma in detail.
I was tasked with implementing a thread-safe singleton pattern in C++, including considerations for synchronization mechanisms like mutexes.
Summary
I applied through LinkedIn and received an offer for the Senior Software Engineer (IC2) role at Oracle in Bangalore after successfully navigating multiple technical, debugging, system design, and behavioral interviews in August 2023.
Full Experience
I applied for a Senior Software Engineer (IC2) position at Oracle through LinkedIn and quickly received a callback from a recruiter. We discussed my background, current compensation, and expectations, leading to the scheduling of my interviews.
First Technical Round (1 hour)
This round began with standard introductory questions. Then, I was asked to solve three coding problems:
- Roman Numbers to Integer
- Convert a number to string, without using inbuilt functions
- Traverse a 2D matrix in spiral format
I found the questions pretty easy and came up with solutions quickly. However, explaining my thought process and solutions took a bit longer, as one of the interviewers seemed distracted and required me to repeat explanations. Despite this, the recruiter provided positive feedback and scheduled the next round.
Second Technical Round (1 hour)
To my surprise, I had the same two interviewers from the first round, joined by two shadow interviewers. This was a debugging round where they shared a web page with errors and asked me to find and fix them using browser tools.
- Bug 1: A list of components was partially missing on the page. I quickly identified that the loop traversing the component collection was faulty, incrementing the iterator twice, which caused components to be skipped. Debugging and explaining this took about 10-12 minutes, again with some difficulty due to one interviewer's behavior, but I was more accustomed to it by then.
- Bug 2: Clicking a component and performing an action was supposed to trigger an alert, but it wasn't happening. I found that a comparison for a boolean value was being performed, but the variable's value was a string. I initially suggested changing the comparison to match the string format to avoid regression, but the interviewer insisted on changing the variable's type to boolean, so I agreed.
Once again, the recruiter reached out on the same day to inform me that the feedback was positive and mentioned that I was the only candidate to have cleared up to this stage, which was quite motivating.
Third Technical Interview (System Design)
This round focused on system design, where they wanted to discuss overall concepts and my approach to common problems. The 'annoying' interviewer returned with the actual team manager. The manager started by asking vague questions like how I would conduct a Root Cause Analysis (RCA) for customer data problems, how to improve system performance, and what to do if a problem is rare and affects only a few customers. When the other interviewer joined late, he started asking the same questions, but the manager kindly interrupted and asked him to pose different ones.
He then asked me about Authorization and Authentication, including how OAuth and SSO work. I didn't know the exact details but had a rough idea. I asked for permission to guess, but he refused. Afterward, there were a few more questions related to databases and indexing, which I answered satisfactorily.
The recruiter informed me that the feedback was average, but they still wanted to schedule another round with someone from Chile. However, this round was later cancelled, and they proceeded straight to salary discussion.
Behavioral Questions & Salary Discussion
Another call was scheduled with the manager and the other interviewer, where they asked a few behavioral questions:
- How do I handle huge workloads?
- Why am I leaving my current position? If I get bored with work within three years, what guarantees I won't get bored with their work and leave soon too?
- What are my thoughts on staying late or coming in on weekends when there is a specific need?
They then asked me to state my salary expectations, which surprised me as I usually discuss this with recruiters. I provided my number anyway. Following this, they came back with a significantly low offer. I was extremely disappointed, especially after so many rounds and stating my expectations early on. After negotiation with the recruiter, I managed to get it to a somewhat decent amount, though I still consider it a lowball.
Interview Questions (9)
Given a Roman numeral, convert it to an integer. The input is guaranteed to be within the range from 1 to 3999.
Implement a function to convert an integer to its string representation without using any built-in functions for direct conversion (e.g., String.valueOf() in Java, toString() in JavaScript/Python).
Given an m x n matrix, return all elements of the matrix in spiral order.
On a web page, a list of components was being displayed, but some of the components were consistently missing. Using browser debugging tools, identify the root cause of this issue. The problem was that the loop used to traverse the collection of components was faulty, specifically, the iterator was being incremented twice in the code.
On a web page, clicking a specific component and performing an action was intended to trigger an alert, but the alert was not being received. Using browser debugging tools, find the bug. The issue was that a comparison for a boolean value was performed, but the variable's value was a string instead of a boolean.
Discuss the fundamental concepts of Authorization and Authentication. Explain the working principles and differences between them. Furthermore, describe how OAuth (Open Authorization) and Single Sign-On (SSO) mechanisms work, including their use cases and architectural components.
How do you approach and manage situations involving huge workloads or high-pressure periods in your professional role?
Explain your reasons for seeking a new position and leaving your current company. Furthermore, if you have experienced boredom or a desire for change in previous roles within a relatively short period (e.g., 3 years), what assurances can you give that you will remain engaged and committed to this role at our company for the long term?
What are your thoughts and stance on staying late or coming in on weekends when there is a specific, urgent need or critical project deadline?
Summary
I recently interviewed for the PDO role at Oracle through an on-campus drive in 2023. The selection process involved an online assessment, two rigorous technical rounds focusing on Data Structures & Algorithms and database concepts, followed by a final HR interview. I successfully navigated these stages and was among the 5 students selected for the position.
Full Experience
My interview journey for the Oracle PDO role began with an Online Assessment on August 26, 2023. This round lasted 100 minutes and comprised a single coding question, 20 MCQs, and one API question. The coding question was an easy-to-medium problem related to strings and subsequences, specifically finding the lexicographically largest subsequence containing all distinct characters only once. The MCQs covered aptitude, reasoning, and verbal abilities. For the API question, I had to extract data from a given URL and return a sorted list based on two specific keys; I could choose to implement this in Python, C++, or Node.js. Out of the participants, 28 were shortlisted for the subsequent rounds.
The offline interviews commenced with a brief talk from Oracle about the company and the job role.
Round 2: Technical Interview 1 (August 29, 2023)
This round focused on easy-to-medium DSA questions. I was provided with pen and paper to write down my thought process and pseudocode. A crucial tip given by the interviewer was to always explain my thought process rather than blindly jumping to a solution, as my approach was scored heavily.
- Question 1: I was given an array of arrays, where each sub-array had two elements representing a source and a destination city (e.g.,
{'BLR','CHN'}). The task was to find the longest path connecting these cities. For instance, with input{{'BLR','CHN'},{'DEL','BOM'},{'CHN','DEL'}}, the expected output was{'BLR','CHN','DEL','BOM'}. My approach involved using a map to identify the starting city—the one that never appears as a destination. I first counted frequencies of source cities, then decremented them for destination cities; the city with a remaining frequency was the start. Then, I used another map to store source-destination pairs and built the path by iteratively finding destinations. I always tried to start with a brute-force explanation before moving to an optimized solution, as advised by the interviewer. - Question 2: As I had mentioned MySQL and DBMS on my resume, I was asked to design table relations with appropriate cardinalities and keys for a college database. This was a straightforward question where common sense application was key.
- Question 3: The final question in this round involved arrays. Given an array of integers (e.g.,
{2,5,1,4,5,7,9,1,3,5}) and an integerk(e.g.,k=5), I had to find the frequency ofk. My initial approach was to sort the array and then use a linear search to findkand count its occurrences. The interviewer then asked if I could solve it in O(logN) if the array was already sorted, to which I responded by proposing two binary searches: one to find the first occurrence ofkand another for the last occurrence, then calculating the length between them.
Out of the 28 candidates, approximately 15 were shortlisted for the next technical round.
Round 3: Technical Interview 2
In this round, the interviewer posed two DSA questions.
- Question 1: I was asked to find the square root of an integer up to three decimal places. I initially solved this using a brute-force method. When prompted to optimize, I attempted to use binary search to find the integer part of the square root but couldn't quite figure out how to extend it to determine the decimal precision effectively.
- Question 2: This was the classic Snakes and Ladders problem. Given a 6x6 board, I needed to find the minimum number of rolls to reach the end. The input specified that if a snake or ladder was present, the cell's value indicated the destination cell, while normal cells had a value of -1. My approach was recursive: I created a map where each cell was mapped to its destination (either -1 for no special move or the snake/ladder destination). At each cell, I simulated rolling a die 1 to 6, updating my position, checking for snakes/ladders, and then recursively calling the function. I used a temporary variable to store and track the least count of rolls. I explained my solution using a recursion tree, which satisfied the interviewer.
Following this round, 8 candidates were selected out of the roughly 15.
Round 4: HR Interview
The final round was a standard HR interview, focusing on non-technical aspects. The interviewer asked a range of questions, including:
- "How would you explain one of your projects to someone with no technical understanding?"
- "Narrate an experience where you felt your work was not recognized."
- "Explain some co-curricular activities you did in college."
- "What is one regret you have about joining your college?"
- "Why Oracle?"
- "What is your career ambition?"
- "Where do you see yourself in further years?"
The results were announced two hours later, and I was among the 5 students who were selected.
Interview Questions (7)
This question involved extracting data from a given URL and returning a list with specific conditions. The task was to sort the extracted data based on two given keys. I could attempt this in Python, C++, Node.js, etc.
Given an array of arrays, where each sub-array has two elements (source and destination, e.g., {'BLR','CHN'}), the task was to find the longest path one can take by connecting cities.
Input: {{'BLR','CHN'},{'DEL','BOM'},{'CHN','DEL'}}
Expected Output: {'BLR','CHN','DEL','BOM'}
Given a college database scenario, I was asked to design table relations with appropriate cardinalities and keys. This was based on my resume mentioning MySQL and DBMS.
Given a Snakes and Ladders board (a 6x6 Matrix), find the least number of rolls required to reach the end. If a snake or ladder was present on a particular cell, its value indicated the cell it would lead to (e.g., cell 26 had value 15 for a snake from 26 to 15, cell 15 had value -1). Normal cells had a value of -1, and I couldn't jump multiple blocks from them.
Preparation Tips
My preparation largely revolved around Data Structures and Algorithms, covering a range of topics from strings and subsequences to array manipulations, graph problems (like finding paths and classic BFS/DFS scenarios), and numerical algorithms. I also brushed up on database management concepts, specifically MySQL and DBMS, as these were relevant to my resume. Additionally, I focused on clearly articulating my thought process, starting with brute-force solutions, and then optimizing them, as this was explicitly valued in the technical rounds. For the HR round, I practiced explaining my projects in simple terms and preparing answers to common behavioral questions, reflecting on my experiences and aspirations.
General tips I found useful and would recommend: maintaining composure, thoroughly explaining your thought process when stuck, and ensuring that only skills you are genuinely confident in are listed on your resume.
Summary
I interviewed with Oracle on campus for an Associate Software Engineer (FTE - ASE) role in 2024. The selection process included an Online Assessment and three technical interview rounds, after which I was selected for the position.
Full Experience
Oracle On-Campus Interview Experience | 2024 Batch
I am a B. Tech student from a Tier 1 National Institute, and my interviews were conducted offline except for the Online Assessment.
Round 1: Online Assessment
The first round was an Online Assessment on the HackerRank platform, lasting 100 minutes. It comprised 10 Aptitude Questions, 10 English Verbal Reasoning Questions, 1 Coding Question which was 'Lexicographically Largest Subsequence', and 1 Rest API Question related to 'Maximum Transfer' similar to those on HackerRank. I found this round to be easy and straightforward.
Interviews
Technical Round 1 (40 mins)
In the first technical round, the interviewer started by asking me to explain GitHub and its various commands. We then discussed different types of Version Control Systems (VCS) and what actions should be taken when merge conflicts occur in GitHub. Following this, I was given an HTML/CSS problem: given three overlapping boxes, when the mouse pointer moves over one box, that particular box should come to the forefront, and on moving out, it should return to its original place. A significant part of the round was a Data Structures and Algorithms (DSA) question, which was LeetCode 42 Hard - Trapping Rain Water. I was also asked to explain various sorting techniques, with a specific focus on Heap sort, where I had to write the code and perform a detailed dry run. Finally, we discussed different ways to store a Tree. I concluded the interview by asking two questions to the interviewer.
Technical Round 2 (70 mins)
The second technical round began with the interviewer reviewing my resume and asking me to explain each of my projects in detail. Questions about Machine Learning/Data Science concepts were asked thoroughly, specifically related to my projects, including dataset-based SQL questions. We covered terms like Precision, Recall, MSE, CNN, KNN, and Clustering, and I provided real-world examples for each. I was also asked about the electives I had taken (Data Mining and Cryptography) and faced questions related to those subjects. After about 45 minutes, the discussion shifted. I was asked about my plans for higher studies and why I hadn't completed any internships. The interviewer then asked me to explain different possible time complexities, how they are calculated, and provided scenarios where different complexities occur. I was presented with two SQL queries: one using Joins and another using 3 nested subqueries. The interviewer also inquired about my adaptability skills and requested a real-life situation to demonstrate it. I ended this round by asking three questions.
Technical Round 3 (45 mins)
The final technical round started with an introduction about myself, covering both my technical and non-technical aspects. I was asked to explain the different DDL, DML, and DQL commands. I solved a DSA question which was a variation of Find the Index of the First Occurrence in a String. We discussed Database Normalization and its purpose, with a detailed explanation of 2NF and BCNF. I was asked to explain all 7 OSI Layers along with their associated protocols. Multithreading in Java was a topic of discussion, and I provided code examples for both Thread and Runnable Interfaces. We also covered Deadlocks, how to detect them, and the concept of Semaphores. The round concluded with questions on Triggers and PL/SQL. I asked one question at the end of this interview. Although for most people this was an HR round, it remained a technical round for me.
Verdict: Selected
I was successfully selected for the position.
Interview Questions (16)
I was given a coding question to find the lexicographically largest subsequence of a given string.
The interviewer asked me to explain GitHub and its commands, different types of Version Control Systems (VCS), list and explain all Git commands, and what should be done when merge conflicts occur in GitHub.
Given three overlapping boxes, I was asked to describe how to implement a functionality where on moving the mouse pointer over one box, that particular box should come above, and on moving out, it should go back to the original place, using HTML/CSS.
I was asked to explain different sorting techniques, specifically Heap sort, by writing the code and doing a detailed dry run on it.
I was asked to discuss different ways to store a Tree.
The interviewer reviewed my resume and asked me to explain each of my projects. Questions about Machine Learning/Data Science concepts were asked in detail related to my projects, including dataset based SQL questions. Terms like Precision, Recall, MSE, CNN, KNN, and Clustering, along with real-world examples, were discussed. I was also asked about my electives (Data Mining and Cryptography) and questions related to them.
I was asked to explain different possible time complexities, how they are calculated, and provided scenarios where different time complexities occur.
I was presented with two SQL queries: one using Joins and one using 3 nested subqueries. I was expected to analyze or answer questions related to them.
The interviewer asked me about my adaptability skills and requested a real-life situation showing it.
I was asked to explain the different DDL, DML, and DQL commands.
I discussed Normalization and its purpose, followed by a detailed explanation of 2NF and BCNF.
I was asked to explain all 7 OSI Layers along with associated protocols.
I explained Multithreading in Java, including codes for Thread and Runnable Interface. I also discussed Deadlocks and how to detect them, and what Semaphores are.
I was asked to explain Triggers and PL/SQL.
Summary
I interviewed for an Application Developer role at Oracle as a fresher and went through three technical rounds covering DSA, CS fundamentals, system design, and puzzles. Despite performing well in most rounds, I ultimately received a rejection.
Full Experience
My journey at Oracle for the Application Developer role started with an online assessment. This round featured a mix of aptitude questions, two easy Data Structures and Algorithms (DSA) problems, and a question focused on REST APIs, all conducted on the HackerRank platform.
Technical Interview - Round 1
I began by introducing myself, even sharing my interest in web series, which unexpectedly led to a brief discussion about a HBO documentary on the Chernobyl nuclear disaster. Following that, the interviewer shifted to core technical topics. We delved into inheritance, particularly the challenges posed by the 'diamond problem,' and explored the implications of inheriting base classes using private, protected, and public modes. I was also presented with a puzzle similar to the "Camel and Banana Puzzle." The discussion then moved to Java's design choice regarding multiple inheritance. When prompted for questions, I inquired about how Oracle handles synchronization in distributed databases, and the interviewer thoroughly explained the intricate system behind their sophisticated cloud platform.
Technical Interview - Round 2
This was a particularly engaging and long round for me. After my introduction, the interviewer asked several questions about my projects, including a scenario-based question: "What steps would you take if your webpage doesn't load properly?" The technical questions covered various areas such as REST APIs, different IP protocols, the OSI Model, the specific utility of the Transport Layer, the necessity of Normalisation in databases, and an explanation of various types of SQL joins. I also faced some questions related to Virtual Memory and the Software Development Life Cycle (SDLC). While I couldn't answer the SDLC question perfectly, I later understood its relevance, as his team focused on DevSecOps, which involves continuous development, deployment, and monitoring with an emphasis on security. At the end, I asked what a fresher could expect to work on given Oracle's involvement in innovations like IoT, ML, and AI. He responded that if selected, I would likely be assigned to the DevSecOps team.
Technical Interview - Round 3 (Vice President Round)
The final round was conducted by the Vice President of Oracle himself, who was very sensible and approachable. After my general introduction, he posed the famous "Monty Hall Problem" puzzle. For Data Structures and Algorithms, he asked how to detect a loop in a tree (implying a graph context), and I explained a general Depth First Search (DFS) approach. He then requested the pseudo-code for both DFS and Breadth First Search (BFS). Lastly, we discussed the need for database normalization and the circumstances under which denormalization might be required. My interview concluded around 3 PM, but unfortunately, I received the news of my rejection around 8:30 PM.
Interview Questions (14)
Discussion on object-oriented programming concepts, specifically inheritance and how the 'diamond problem' arises in multiple inheritance scenarios.
Explain the differences and implications of inheriting base classes using private, protected, and public access modes.
Discuss the reasons behind Java's design choice not to support multiple inheritance of classes and how it addresses related concerns (e.g., through interfaces).
Describe the diagnostic steps and potential solutions if a webpage fails to load correctly, covering client-side and server-side aspects.
Explain the layers of the OSI model and their functions.
Discuss the primary functions and importance of the Transport Layer in the OSI or TCP/IP model.
Explain why database normalization is necessary and its benefits.
Describe and differentiate between various types of SQL joins (e.g., INNER, LEFT, RIGHT, FULL OUTER).
Explain the Software Development Life Cycle (SDLC) and its different phases/models.
Suppose you're on a game show, and you're given the choice of three doors: Behind one door is a car; behind the others, goats. You pick a door, say No. 1, and the host, who knows what's behind the doors, opens another door, say No. 3, which has a goat. He then says to you, 'Do you want to switch to door No. 2?' Is it to your advantage to switch your choice?
Given a graph (or tree with potential cycles), describe an algorithm to detect if a cycle exists. If a cycle exists, explain how to find it.
Provide the pseudo-code for Depth First Search (DFS) and Breadth First Search (BFS) graph traversal algorithms.
Discuss the reasons for database normalization, its benefits, and also explain scenarios where denormalization might be considered beneficial or necessary, along with its trade-offs.
Preparation Tips
My main takeaway from this interview experience is the critical importance of not underestimating HR questions. They can significantly influence the selection process, even if the technical rounds feel manageable.
Summary
I interviewed for a Project Intern - Member Technical Staff role at Oracle in Bangalore and was successfully selected after a comprehensive process that included an online assessment, multiple technical rounds focusing on DSA, core computer science concepts, and project discussions, followed by an HR interview.
Full Experience
My Interview Experience at Oracle for Project Intern
I recently interviewed for the Project Intern-Member Technical Staff for Server Technology role at Oracle for Summer 2024. The entire process was quite structured, starting with an online assessment followed by multiple technical rounds and a final HR discussion.
Online Assessment
The online assessment lasted 90 minutes and consisted of 10 English questions, 10 Mental Ability questions, and 2 DSA questions. The DSA questions varied among candidates but were generally on the easier side.
Technical Rounds (Offline)
Round 1
This round primarily focused on Data Structures and Algorithms. I was asked two standard DSA questions and some questions on core topics like Operating Systems (OS) and Database Management Systems (DBMS).
Round 2
This round delved into some basic coding concepts related to OS. The interviewer was particularly interested in multithreading, asking me to code a multithreaded sorting algorithm and fielding several questions on thread safety. We also discussed my projects in detail.
Round 3
This round was mostly a discussion about my projects. It was a straightforward and simple interaction.
HR Round
The HR round covered standard questions, nothing out of the ordinary. Everyone who reached this stage was selected.
Verdict
I was selected for the role!
Interview Questions (5)
Given an array arr of size n. We need to find the number of pairs i, j such that arr[i] XOR arr[j] >= arr[i] AND arr[j]. Constraints: 2 <= n <= 2e5, 1 <= arr[i] <= 2^31.
You are given an array routes where routes[i] is a bus route that the i-th bus repeats forever. For example, if routes[0] = [1, 5, 7], this means the first bus travels in the sequence 1 -> 5 -> 7 -> 1 -> 5 -> 7 -> ... forever. You are also given a source and a target stop. Initially, you are at the source stop. You can only get on a bus at a bus stop that it serves. You can transfer between buses at any bus stop they both serve. Return the minimum number of buses you must take to travel from source to target. Return -1 if it is impossible to reach the target.
I was asked to code a multithreaded sorting algorithm and address questions related to thread safety during its implementation.
Preparation Tips
My Preparation Strategy
My preparation largely focused on sharpening my Data Structures and Algorithms skills, primarily through solving problems similar to those found on LeetCode. I also ensured a strong grasp of core computer science fundamentals, specifically Operating Systems (OS) and Database Management Systems (DBMS), which were frequently tested. Given the focus on multithreading in one of my technical rounds, I dedicated time to understanding concurrency concepts and thread safety. Additionally, I meticulously prepared to discuss my past projects, anticipating questions about their design, implementation, and challenges encountered.
Summary
I successfully interviewed for the MTS position at Oracle (OCI) in Bangalore, India, and received an offer. The interview process was extensive, spanning five rounds covering data structures, algorithms, system design, and behavioral questions, reflecting my 2 years of experience.
Full Experience
My interview journey for the MTS role at Oracle (OCI) in Bangalore, India, began with a Screening round. This round focused on my prior experience, specifically cross-questioning me on AWS compute choices like Lambda, Fargate ECS, and EC2-based ECS from my previous projects. I also tackled a challenging N-ary tree problem where I needed to find the maximum reward from a connected component after removing any number of edges, aiming for an O(N) solution.
The First Round also started with an introduction and a deep dive into the design aspects of my previous projects. Following this, I was given an array problem: perform at most 'k' operations (multiplying an element by 2) to maximize the bitwise OR value of the entire array.
In the Second Round, I encountered two classic LeetCode problems. First, the Sliding Window Maximum, which I solved with an O(N) deque approach. Second, I had to divide two integers without using multiplication, division, or modulo operators, aiming for a logarithmic time complexity.
The Third Round presented two dynamic programming problems. One was to find the length of the maximum alternating (positive and negative numbers) sequence starting from every index in an array, solvable using 1D DP in O(N). The other was a common DP on Grid problem: finding the maximum gold path in a 2D matrix from {1,1} to {n,m}, solvable in O(N^2).
The Fourth Round, labeled as the Bar Tender round, involved further cross-questioning on the design of my past projects and standard behavioral questions. We also discussed theoretical concepts such as why adjacency lists are preferred over adjacency matrices and the Builder Design Pattern, including reasons for its static nature and private access specifiers, and its use for parameter validation.
Finally, the Fifth Round was with the Hiring Manager. This round also included an introduction, a thorough discussion on the design aspects of my previous projects, and more behavioral questions. For a coding challenge, I tackled the Maximum Number of Non-overlapping Palindrome Substrings problem, providing an O(N^2) solution by identifying valid palindrome intervals, sorting them, and then applying 1D Dynamic Programming. I'm pleased to share that I received an offer!
Interview Questions (15)
I discussed and was cross-questioned on compute choices for previous projects, specifically comparing Lambda, Fargate ECS, and EC2 based ECS in AWS.
I was given an N-ary tree where each vertex has an integer reward. The goal was to return the maximum reward obtainable from a connected component in the tree, with the option to remove any number of edges. Rewards could also be negative. I aimed for an O(N) solution.
I had an introduction followed by cross-questioning on the design aspects of my previous projects.
Given an array of integers and an integer k, I could perform an operation at most k times: choose any index in the array and multiply the number at that index by 2. The objective was to find the maximum possible bitwise OR value of all elements in the array after performing these operations.
I was asked to solve the Sliding Window Maximum problem, aiming for an O(N) solution using a deque.
The problem was to divide two integers without using multiplication, division, or modulo operators, aiming for a logarithmic time complexity.
I needed to find the length of the maximum alternating sequence (alternating positive and negative numbers) that could initiate from every index in an array of integers. This problem was solvable using 1D Dynamic Programming in O(N).
I was given a 2D matrix and asked to find the maximum gold path from cell {1,1} to {n,m}. This is a common DP on Grid problem, solvable in O(N^2).
Similar to previous rounds, I started with an introduction and then faced cross-questioning on design aspects of my past projects.
I was asked several behavioral questions during this round.
I was asked to explain why adjacency lists are generally preferred over adjacency matrices for graph representation.
I discussed the Builder Design Pattern, including reasons for a builder class often being static with a private access specifier, and its typical usage, such as validating parameters prior to object creation.
The hiring manager round also began with an introduction and deep dive into the design aspects of my previous projects.
Further behavioral questions were asked by the hiring manager.
I was presented with the Maximum Number of Non-overlapping Palindrome Substrings problem. I proposed an O(N^2) solution that involved finding all valid palindrome intervals, sorting them, and then applying 1D Dynamic Programming.
Summary
I interviewed for the MTS (Server Technology) role at Oracle in August 2022 as a new grad with one year of experience and received an offer. The process included an online assessment, followed by three technical interviews covering data structures, algorithms, project discussions, system design, and OOPs.
Full Experience
My interview journey for the MTS (Server Technology) role at Oracle in August 2022 began with an Online Assessment. It was 90 minutes long, which was more than sufficient. The OA had four sections: one easy-medium coding problem, one REST API problem (GET requests, data fetching, calculations), one SQL problem (joins, group by, aggregate functions), and 6-8 MCQs on data structures and aptitude.
Next, I had Technical Interview 1, which was 45 minutes and DSA-oriented. The interviewer started by making me comfortable, asking about my day. After introductions, I was given a Hackerrank link. My first coding problem was to determine if any permutation of a given string could be a palindrome. I discussed a brute-force approach, then moved to an efficient hashmap-based solution, which I solved and dry-ran. This led to questions about hashmaps: why unordered_map, differences between map and unordered_map, internal implementation, chaining, and linear probing. The second problem was to delete a node from a singly linked list given a pointer to it, and whether the last node could be deleted. My third problem was to find the starting node of a cycle in a singly linked list. I solved all three problems and tested them on the editor.
Technical Interview 2, lasting 1 hour 10 minutes, was a mix of project discussion, DSA, and behavioral questions. It felt somewhat unstructured. The interviewer asked about my previous interview and my performance. I then introduced myself and talked about my interesting academic and corporate experiences, particularly my work at my previous organization, managing challenges with new technology (Mendix), and projects where I was part of the first team using it. I was asked to compare academic vs. corporate life, my motivation for pursuing a master's, and my favorite subjects. Given my project's use of sockets, I was asked about socket programming and alternatives for real-time communication. He then probed into my use of DBMS, algorithms, and OOPs in my projects. We discussed my choice of Firebase (NoSQL), comparing it with relational databases. Questions on Firebase authentication, JWT tokens, and alternative authentication mechanisms like session authentication followed. I also discussed a debt-simplification algorithm I implemented, which used a heap. I explained min-heap and max-heap, including push, pop, and heapify operations, and started implementing max-heap quickly before being interrupted. Finally, I was given a linked list problem: insert a node into a sorted singly linked list at its correct position.
My final round was Technical Interview 3, lasting 50 minutes, focusing on database design and OOPs concepts. I had expected an HR round, but this was a mix of behavioral and technical questions from a very senior Director of Engineering. He initially checked my attentiveness by asking about previous interviewers and questions. I could only recall the first interviewer's name. We then delved into 'Why Oracle?', comparing it with my previous work experience and contrasting it with other companies. A Hackerrank link was shared for a complex SQL problem: retrieving 1st, 2nd, and 3rd place finishers per category from a university competition, along with student details. I discussed table relationships, foreign/primary keys, and 3NF, then drafted a SELECT statement. I initially missed the LIMIT keyword due to exhaustion. Lastly, he asked about use case, class, sequence, and component diagrams, and their importance, which I explained with examples from my M.Tech studies. I asked him about his journey at Oracle and his various roles.
I was informed no further interviews were scheduled and left the meeting, assuming rejection as there was no HR round. However, after four hours, the results were out, and I was among the five M.Tech candidates selected, receiving an offer.
Interview Questions (15)
Consider two arrays a and b where each consists of n integers. In one operation: Select two indices i and j (0 <= i,j < n). Swap integers a[i] and b[j]. This operation can be performed at most k times. Find the maximum number of distinct elements that can be achieved in array a after at most k operations.
The problem was related to joins and group by clause with some aggregate functions.
You are given a string ‘s’, return true or false if there exists any permutation of the given string ‘s’ which is palindrome.
Given a singly linked list and a pointer of any node, delete that node from the singly linked list. Also, is it possible to delete the last node from the singly linked list?
Find the starting node of the cycle in a singly linked list.
Tell me about yourself and what are the interesting things you have done in your academics and corporate life?
How do you compare academic life vs corporate life? and why are you pursuing masters? What are the subjects you like most and why?
You have used sockets in your project, are you aware of socket programming? Explain what sockets are and discuss alternatives available for real-time communication.
Discuss how you used concepts like DBMS, algorithms, and OOPs in your projects, providing examples. Specifically, explain your choice of Firebase (NoSQL) as a backend, compare relational vs. NoSQL databases, and elaborate on Firebase authentication, how JWT tokens work, and alternative authentication approaches like session-based.
Discuss multiple approaches for a debt-simplification algorithm, focusing on the most optimal one. This involved using a heap data structure. Explain min-heap and max-heap, including push, pop, and heapify operations on a max-heap. Implement the max-heap quickly.
Given a sorted singly linked list, insert a node at its correct position.
Why do you want to work at Oracle? You can join any of the many companies visiting your campus. Justify your choice.
A university conducted a competition where students from different colleges participated. The categories were Drawing, Singing, Debate, Science Fair and SpellBee. Students participated in one or more categories and were scored out of 100. Write a query that returns the 1st, 2nd, and 3rd place finishers in each category in that order. The columns to show are category, studentid, name, collegename, and score order by category (ascending) and collegename (ascending).
Explain use case, class, sequence, and component diagrams. Discuss their importance one by one.
Preparation Tips
My success was primarily due to consistency; I practiced over 800 DSA problems on LeetCode, BinarySearch, and Codeforces over a year, though the interview questions themselves were relatively easy. I ensured my resume was diversified and justifiable. I also focused on having strong core subject knowledge, particularly its practical application. I made sure to research the latest online assessment processes for companies; for Oracle, the OA had recently changed to include coding, API, SQL, and MCQs, instead of just MCQs, which I was aware of.
Summary
I successfully interviewed for a MTS New Grad role at Oracle's Bangalore office through an on-campus selection process in August 2022, ultimately receiving an offer for a full-time position.
Full Experience
Hiring Process
The hiring process consisted of an Online Assessment followed by three interview rounds: a Project + DSA round, a dedicated DSA round, and finally an HR round. All interview rounds took place on the same day.
Round 1: Online Assessment (90 minutes)
This round had a coding problem, a SQL problem, an API implementation problem, and six MCQs. The coding problem was a LeetCode medium, the SQL problem was easy, and the API implementation was fairly basic. The MCQs were very easy. I managed to complete this round in about an hour. After this assessment, selected candidates were invited for the interview rounds.
Round 2: Project + DSA Interview 1 (30-40 minutes)
This round began with a basic introduction. The interviewer immediately started discussing my projects. We delved into topics like authentication, NodeJS, REST APIs, PassportJS, and the differences between SQL and NoSQL databases. I was asked to write code for connecting to MongoDB. I honestly told him that I usually copy such code from documentation, and he laughed and skipped the question. Afterwards, I was given a problem which was a variation of string matching. I mentioned algorithms like KMP and Rabin Karp, but the interviewer asked me to write only the brute force solution. I felt this round went pretty well for me.
Round 3: DSA Round 2 (30-40 minutes)
This round also started with an introduction. The interviewer quickly opened HackerRank and presented a problem involving a priority queue. I came up with the brute force solution within a minute and optimized it in another minute. I then coded and ran the solution very quickly. The interviewer asked if I had any questions for him, and when I asked if this was the end of the round, he confirmed it. This round concluded within a surprisingly short five minutes!
Round 4: HR Round (40-50 minutes)
This was definitely the highlight of my day. The HR interviewer was incredibly friendly and highly interactive. This round didn't focus on CS fundamentals or DSA; instead, it involved scenario-based questioning designed to understand my thinking process. I was asked many situation-based questions, and I recall making up a lot of stories on the spot to answer them. The interviewer seemed very pleased with my responses, and we shared many laughs, almost like we were old friends. I never imagined an interview could be this enjoyable and easy.
Result
I was selected for a full-time role as a Member of Technical Staff (MTS) in the server technology team.
Interview Questions (2)
The interviewer asked me to write code for connecting to MongoDB. I explained that I typically copy such boilerplate code from documentation, which prompted the interviewer to skip the question.
I was presented with a problem that was described as a variation of a string matching problem. Although I was familiar with algorithms like KMP and Rabin Karp for string matching, the interviewer specifically requested a brute force implementation.
Summary
I interviewed with Oracle for an Associate Software Engineer role, which involved aptitude, technical DSA, fundamental CS, and scenario-based rounds, ultimately leading to an offer for an Internship + Full Time role.
Full Experience
I've been an active member of the LeetCode community for over three years, and I'm sharing my experience to give back. This interview was part of an on-campus selection at my college. I was a fresher, graduating in 2023, with a two-month FinTech internship. The process typically includes an aptitude test, an optional online coding round (which was skipped for on-campus), and three technical interview rounds.
My journey began with Round 1: Aptitude which lasted two hours. It covered a broad range of topics including logical reasoning, statistics, data analysis, CS fundamentals, and English. I remember struggling with some CS fundamental questions related to AVL and Red Black Trees. This test was conducted on Oracle's 'proaptitude' platform, with each section having timed subsections.
After clearing the aptitude test, I was invited to the interview rounds, all held on the same day.
Round 2: Technical Interview 1 (30-40 minutes) started with introductions. The interviewer quickly moved to a DSA question, which was very similar to Maximum Subarray Sum. After I finished, we discussed Computer Networks and Operating Systems concepts like Semaphores, Multithreading, and Multiprocessing. Since I had Python experience, I was also asked about the Global Interpreter Lock (GIL), Deep Copy, and Shallow Copy in Python. Another DSA question followed, similar to Diameter of Binary Tree. The interviewer seemed satisfied with my approach to these problems.
Round 3: Technical Interview 2 (30-40 minutes) also began with introductions. The interviewer asked about my C++ experience, but I honestly stated my primary experience was with Java, C, and Python. Surprisingly, he mentioned not knowing much about Java. He then questioned me on C fundamentals, including memory handling (Stacks and Heaps) and the differences between structs and unions. We then shifted to Computer Networks and Operating Systems, covering Piggybacking, TCP vs. UDP examples, IPC, and how pipes function. He also asked about my academic projects, specifically those built using C, and delved into topics like sockets and the SIGABRT signal. Finally, I was asked to write a SQL query to find the second largest salary from an employee table. Overall, this round was a bit challenging as I fumbled on some C fundamentals.
Round 4: Technical Interview 3 (30-40 minutes) was the highlight. The interviewer was very friendly and interactive. This round focused less on CS fundamentals or DSA and more on scenario-based questions to understand my thinking process. It started with a standard HR question: "Tell me about a time where you improved the performance of your project or anything that you were working on." I shared an experience from my internship, which he found satisfactory. He then inquired about my hands-on experience with cloud services like AWS or GCP. A significant part of the round involved a scenario about processing Big Data. He explained what Big Data entails and asked me to propose solutions, emphasizing that he was looking for my thought process. I suggested using Hadoop clusters and, for real-time data, Spark, which he was satisfied with. Given my resume, he also asked about MATLAB and Image Processing. Later, he questioned me about Java Spring and asked for a scenario where microservices would be beneficial. The final scenario involved improving the read and write performance of a database. I immediately thought of indexing and sharding. When he prompted for write improvements, I also mentioned caching, and he further explained its benefits in this context.
The interviews concluded, and I was offered an Internship + Full Time role by midnight.
Interview Questions (7)
Write a SQL query that returns the second largest salary from an employee table.
Tell me about a time where you improved the performance of your project or anything that you were working on.
Given a scenario with a large amount of data needing to be processed, what technologies would you use and why? The interviewer was interested in my thought process rather than a 'right' answer.
Provide a scenario where microservices would be beneficial, especially in the context of Java Spring.
How would you improve the read and write performance of a database? The interviewer initially focused on general improvements, then prompted for write-specific optimizations and explained caching.
Preparation Tips
The key takeaway from my interview process was the importance of being prepared for a wide range of questions; I hadn't anticipated questions on Cloud technologies, expecting more on OOPS and Design Principles. For beginners, it's crucial to verbalize your thought process when solving DSA problems, starting with a brute-force approach before moving to the optimal solution. A strong grasp of OOPS, Operating Systems, Computer Networks, and DBMS is vital, as any topic from these subjects can be tested. Solving frequently asked Oracle DSA questions can also give you a significant edge. Ultimately, maintaining confidence and thinking out loud are the most important aspects.
Summary
I successfully navigated a rigorous five-round interview process for the Application Developer 3 role at Oracle in March 2022, securing an offer. The interviews covered a broad spectrum, including Data Structures and Algorithms, SQL, System Design, and behavioral aspects, where I demonstrated my problem-solving and design capabilities.
Full Experience
Interview Round 1
This round was conducted by a Senior Application Developer from Oracle SCM Cloud. He began by asking about my experience and current tech stack. Following this, he presented two DSA questions and some SQL queries.
- Largest Sum Contiguous Subarray: I was asked to find the contiguous subarray with the largest sum. I initially proposed an O(n^2) solution, and upon his request for a more efficient approach, I presented a sliding window solution. I then coded it in my preferred language, dry-ran it with a test case, and explained each step.
- Climbing Stairs: The second DSA question involved calculating the distinct ways to climb n steps, where I could climb 1 or 2 steps at a time. I initially struggled but, after explaining brute-force combinations for n=4 and n=5, I realized it was a Fibonacci series. I wrote the recursive solution, explained its complexity, and then presented a more improved approach, discussing the advantages and disadvantages of both.
- Basic SQL Queries: Lastly, he asked me to write example SQL queries for ascending/descending order and for using GROUP BY with aggregate functions.
The first round lasted about 30 minutes. Later that evening, I received a call informing me that the next interview was scheduled for the very next day.
Interview Round 2
A Senior Principal Applications Engineer from Oracle conducted this round. He directly presented two DSA questions.
- Vague Set Problem: I don't recall the exact problem, but it involved a list of sets of size 4 and finding two sets with a 'same property.' I proposed an O(n log n) solution and defended its optimality when asked about further optimization, stating sorting was unavoidable. When a hash function was assumed, I discussed how to approach it and the advantages/disadvantages compared to the first method, including scenarios where the first approach would be preferred. I then wrote the code for my initial approach.
- Mirror Binary Tree: I was asked to write code to convert a binary tree into its mirror image. I provided a recursive solution. When asked about other ways, I explained the iterative approach. I confirmed my solution was top-down and briefly described how to achieve it using a bottom-up technique. Finally, I addressed how my solution handled corner cases like nodes with only one child.
This interview was about 45-50 minutes long. He intended to ask SQL questions but had to end early due to an urgent call. Again, on the same day evening, I was informed about the third interview scheduled for the next day.
Interview Round 3
This round was with a Group Manager from Oracle Inventory Management. We discussed SQL and DSA problems.
- Find Teacher Teaching English and Maths: Given a table of teachers and subjects, I needed to write a query to find teachers who teach both English and Maths. I provided a correct solution using an inner join on the same table. After a hint about set operations, I presented an alternative solution.
- Largest Number from Array: I was given an array of numbers and asked to arrange them to form the largest possible value (e.g., {54, 546, 548, 60} -> 6054854654). I discussed an O(n^2) solution and an optimized O(n log n) solution using sorting. I then wrote the O(n^2) code and dry-ran it with the provided example.
- Job Sequencing with Deadlines: The task was to find the job sequence that yields maximum profit given jobs with deadlines and profits. I presented an O(n log n) solution, wrote the code, and dry-ran it with the given example and another test case, explaining my approach.
This round also lasted around 45 minutes. The same evening, I was notified about a fourth interview, to be held after two days.
Interview Round 4
This round was conducted by a Director of Inventory Management from Oracle SCM Cloud. He focused on a single system design question.
- OTT Platform Package Upgrade Feature: I was asked to design an end-to-end feature for an OTT platform allowing users to upgrade their yearly packages. The design needed to cover calculation of remaining payment for the upgrade, database design, backend code, and suitable tech stacks. I initially started with the calculation, but the interviewer redirected me to provide a complete, from-scratch solution. We had a thorough discussion on my proposed approach. After this, he asked about my current project, my motivation for switching jobs, and what I expected to gain from Oracle.
This interview took approximately 40 minutes. Four days later, I received a call scheduling the final interview for the next day.
Interview Round 5
The last round was with a Senior Director of Oracle Inventory Management. This was a mix of project deep-dive, behavioral, and system design questions.
- Current Project Deep Dive & Behavioral: He started by diving deep into my current project, asking about features I worked on, the most challenging ones, and specific details about a feature that piqued his interest. He also asked standard HR questions like my strengths, weaknesses, and how I manage them.
- Practical Applications of Searching and Sorting: He asked about searching and sorting, their purpose, and practical real-world examples where sorting is crucial. I gave examples like phone directories and dictionaries. He then challenged me to think of a different example and discussed a scenario of running a medical shop without any sorting, exploring the challenges and potential solutions.
- Train Booking System Seat Availability: The second system design question involved designing a database table schema and data storage strategy for a train booking system to find available seats. The complexity was in handling bookings between any intermediate stations on a route (e.g., A to D, C to E). I presented a table design which he seemed pleased with.
Towards the end, he asked about my job change motivations, how Oracle could enhance my skills, how my expertise fits, and my career aspirations within Oracle. He then explained the types of projects and work developers do there. He concluded by informing me that all interview rounds were completed and I would hear back within a week.
Two days later, Oracle called to confirm I had cleared all rounds and offered me the Application Developer 3 role. I received the offer letter a week after that call.
Interview Questions (10)
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. A subarray is a contiguous part of an array.
Example 1: Input: nums = [-2,1,-3,4,-1,2,1,-5,4] Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.
Example 2: Input: nums = [1] Output: 1
Example 3: Input: nums = [5,4,-1,7,8] Output: 23
Constraints:
1 <= nums.length <= 105
-104 <= nums[i] <= 104
You are climbing a staircase. It takes n steps to reach the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
Example 1: Input: n = 2 Output: 2
Explanation: There are two ways to climb to the top.
Example 2: Input: n = 3 Output: 3
Explanation: There are three ways to climb to the top.
Constraints:
1 <= n <= 45
Write examples of some SQL queries:
1. Ascending and descending order
2. Group by and aggregate function
Write a code for converting binary tree into its mirror tree. Also, discuss iterative approach, top-down vs bottom-up techniques, and handle corner cases like nodes with one child.
Given a table:
Teacher Subject A English B Science C Maths A Maths D EVS B EVSWrite a query to find the teacher which teaches English and Maths. Like in this example answer will be A (in row 1 and 4).
Given an array of numbers, arrange them in a way that yields the largest value. For example, if the given numbers are {54, 546, 548, 60}, the arrangement 6054854654 gives the largest value. And if the given numbers are {1, 34, 3, 98, 9, 76, 45, 4}, then the arrangement 998764543431 gives the largest value.
Find the job sequence of maximum profit.
Input: Five Jobs with following deadlines and profits
JobID Deadline Profit a 2 100 b 1 19 c 2 27 d 1 25 e 3 15Output: Following is maximum profit sequence of jobs c, a, e.
Design and develop an upgrade program for an OTT platform from current package type to all possible higher package types, by calculating the difference amount for the 'remaining part of the year' (end date doesn’t change).
Details include Subscriber Id, Subscriber Name, Subscriber Address, Registered Mobile Number(RMN), Registered email, Current Package (Rs299/-, Rs599/-, Rs799/-, Rs1499/- All are yearly packages), Start Date of the package, End Date of the Package (365 days).
Example Scenario:
Start Date: 16-Jun-2021. End Date: 15-Jun-2022. Current Package : Rs 299/- (assume changed to 799/- for example). Current Date : 1–Apr-2022.
SMS Output:
Deal Offer of the day Your Current package details : <799/-> Your End Date of current package: <<15-Jun-2022>> Grab Upgrade deals: 599/-: <> 799/-: <> 1499/- : <>The requirement is to design this complete end-to-end feature, from database design to backend code, including tech stack recommendations.
Explain what searching and sorting are, why they are used, and provide practical real-world examples where sorting is essential. Discuss challenges of operating without sorting (e.g., in a medical shop context).
Design the database table schema and data storage approach for a train booking system to find available seats. Consider a train route with multiple stations (e.g., A, B, C, D, E) where tickets can be bought between any intermediate stations (e.g., A to D, C to E, A to E).
Summary
I successfully navigated through five rigorous interview rounds for an IC2 position at Oracle OCI in Bangalore in March 2022, ultimately receiving an offer.
Full Experience
My interview process for the IC2 role at Oracle OCI consisted of five rounds. The first round was a screening test, and clearing it led to the subsequent four rounds. In the initial screening, I encountered problems such as 'Intersection of two arrays', 'Valid Parentheses', 'Merge K Sorted Linked Lists', and some general questions related to operating systems. The second round focused on algorithmic problems, specifically 'Edit Distance' and determining if a 'Binary Tree is a Mirror'. The third round challenged me with finding the 'K most occurring elements in an array'. For the fourth round, I had a Low-Level Design (LLD) problem where I was asked to 'Design an API Rate Limiter'. The final, fifth round was with the Hiring Manager, which involved discussing my previous projects, performing a High-Level Design (HLD) of one of them, and then writing a program to solve a 'Crossword Puzzle'. I received a message from the Hiring Manager confirming my selection for the role.
Interview Questions (8)
Given two integer arrays, return an array of their intersection. The result should contain unique elements.
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
Merge k sorted linked lists into one sorted linked list.
Given two strings word1 and word2, return the minimum number of operations required to convert word1 to word2.
Check whether a binary tree is a mirror of itself (i.e., symmetric around its center).
Given an integer array and an integer k, return the k most frequent elements.
Design a system for API rate limiting, focusing on Low-Level Design (LLD).
Write a program to solve a crossword puzzle, given a grid and a list of words to place.
Summary
I successfully received an offer for an SDE 2 position at Oracle OCI in Bangalore after completing 6 intensive interview rounds, covering data structures, algorithms, system design, and behavioral aspects.
Full Experience
I interviewed for an SDE 2 position at Oracle OCI in Bangalore, with a total of 6 rounds. The process started with a phone screen, followed by two dedicated Data Structures and Algorithms rounds. Next, I faced a System Design round and a Bar Raiser (Bar Tender) round, culminating in a discussion with the Hiring Manager. Each round typically included general introductions and behavioral questions centered on OCI's core values, in addition to specific technical challenges. I was pleased to receive an offer after successfully navigating all the rounds.
Interview Questions (8)
Design a system that receives a long URL and returns a short URL. When the short URL is accessed, it should redirect to the original long URL. Consider aspects like scalability, availability, data storage, and collision handling.
Given an m x n grid of characters board and a string word, return true if word exists in the grid. The word can be constructed from letters of sequentially adjacent cells, where adjacent cells are horizontally, vertically, or diagonally neighboring. Unlike the standard problem, the word must follow a single direction (horizontal, vertical, or diagonal) for its entire length, not a combination of them.
Summary
I underwent an interview process with Oracle OCI US that consisted of multiple technical and behavioral rounds. Although I did not receive an offer, I consider it a valuable learning experience.
Full Experience
My interview process for Oracle OCI US started with a technical round. Following that, I moved on to a virtual onsite that featured several rounds, including data structures and algorithms, system design, and behavioral questions. I found the experience comprehensive and insightful, despite the outcome.
Interview Questions (6)
Design a distributed online phone dictionary.
Given an array of strings, find cipher matches. For example:tail -> lost are cipher matches.
The mapping is as follows:t <-> la <-> oi <-> st <-> l
A standard behavioral round conducted by a manager, covering typical questions about past experiences, teamwork, and problem-solving approaches.
A discussion with a Senior TPM focusing on REST API constraints, usage of cookies, and caching strategies.
Summary
I interviewed with Oracle for a Member of Technical Staff (MTS) position as a New Grad in India in December 2020. I successfully navigated through online tests and two interview rounds, securing an offer for the role.
Full Experience
Oracle visited my campus for three profiles, and their recruitment process was standard, starting with an online test and followed by 1-3 rounds of interviews.
The online test was unique, consisting solely of MCQ questions across sections like Aptitude, Coding, and Computer Science (including OS, DBMS, OOPs). Some coding questions involved choosing the correct code for a given output or analyzing flowchart logic. The time constraints were very tight, and I couldn't navigate back to previous questions.
When I was called for the interview, I felt a bit nervous because many others had completed multiple rounds, and I hadn't performed well in a previous interview. However, I managed to regain my confidence. I only had two rounds.
In Round 1 (1hr 10mins), there were two panelists. It began with the standard 'Tell me about yourself,' followed by a discussion on my internship project. The interviewer then delved into OS, asking me to list all types of Scheduling Algorithms and the cons of Round Robin (RR) Scheduling. I wasn't entirely sure about the latter but offered plausible ideas. Next, I was tasked with finding the smallest positive number missing from an unsorted array. I initially proposed a naive approach, after which the interviewer increased the number range and challenged me to solve it in O(n) time and O(1) space. The solution didn't immediately strike me, so he moved on. We then discussed heaps and their internal workings, followed by a detailed conversation on hashmaps, collisions, and collision handling techniques. After these discussions, he returned to the coding question. To my surprise, I managed to come up with the optimized solution, which seemed to impress him. The other interviewer then asked me a very simple Binary Tree question, which I coded on Coderpad. He tried to confuse me with cross-questioning, but I steadily answered. The round concluded with a puzzle, for which I unfortunately gave the wrong answer, realizing it immediately afterward. Finally, I was asked if I had any questions for them.
I was somewhat skeptical about a second call after Round 1, but fortunately, I was called for Round 2 (HR, 10 mins). I believe this round was shortened due to time constraints. The interviewer mentioned having feedback from my previous rounds and asked if I had any questions for him, which were the same ones I asked in the technical round. I was still uncertain about my selection since other candidates had more technical rounds, but I was lucky enough to be selected.
Interview Questions (6)
The interviewer asked me to name all the types of Scheduling Algorithms and explain the disadvantages of the Round Robin (RR) Scheduling Algorithm.
I was asked to find the smallest positive number missing from an unsorted array. Initially, I gave a naive approach, but the interviewer increased the range of numbers and asked me to solve it in O(n) time and O(1) space complexity.
We had a discussion about what heaps are and how they work.
I was asked about the internal working of hashmaps, how collisions occur, and various methods to handle them. We had a good discussion on these topics.
I was given a very simple question on Binary Trees and asked to code the solution on Coderpad. The interviewer tried to confuse me with cross-questioning about my code, but I steadily answered.
I was asked a puzzle at the end of the interview.
Preparation Tips
My preparation involved several key strategies. I made sure to learn all the puzzles from GeeksforGeeks by heart, as they are frequently asked. I also prioritized studying OOPs and OS concepts, as these were crucial areas. Mock interviews proved incredibly helpful for me to refine my approach and confidence. Additionally, preparing with peers significantly aided my learning process. The most important takeaway was to maintain hope and belief in my preparation, even when the placement process felt intimidating, relying on support from friends and family.
Summary
I interviewed for a Member of Technical Staff position at Oracle as a new graduate. The process involved a phone screen, two technical rounds, and two sets of final rounds focusing on algorithms, data structures, and system design. Despite some challenging questions, I successfully received an offer for my preferred team.
Full Experience
I was reached out to by a Senior Recruiter on LinkedIn, who found me through the Grace Hopper Celebration Spotlight. They asked me to apply to open positions in multiple different organizations and later requested my top 2 preferences for scheduling interviews.
Phone screen (30 minutes)
- Behavioral questions were asked.
- I also answered questions regarding the technical skills I possessed.
Round 1 - OAD - Technical (1 hour)
In this round, I was asked to write a program that takes as input a set of dictionary words and fits them all in a matrix of a given size, such that all the words in the matrix are readable. I was quite confused about this one and had a lot of back and forth with the interviewer to understand the exact requirements. I could not come up with a fully functional solution in the given time and honestly thought I had totally bombed this round.
Round 1 - OAC - Technical (1 hour)
- I solved the Single Number problem.
- I also worked on the Reverse Linked List problem.
- The interviewer asked about projects I've worked on and what my work entailed.
After about a week, I reached out to the recruiter and learned that both organizations wanted to move me forward to the final round interviews!
Final Round - OAC - 3 interviews, 1 hour each (back-to-back)
First interview
- I was given 2 aptitude questions.
- There were a few SQL related questions.
- One question was based on Hashmaps.
- We also discussed my past projects.
Second interview
- I solved the Add Two Numbers problem.
- I also tackled the Moving Average from Data Stream problem.
- Again, there were questions about my past projects.
Third interview
- I answered basic questions about Machine Learning, given that I was a TA for an ML class.
- I was asked to implement a linked list which is always sorted (meaning, add elements in the correct order and return the newly created node).
- We concluded with more questions about my past projects.
Final Round - OAD - 3 interviews, 1 hour each (back-to-back)
First interview
- This interview mainly focused on questions about my past projects.
Second interview
- I solved the Rotate Array problem.
- I was also challenged to design an instant messaging application, similar to WhatsApp.
- We discussed my past projects.
Third interview
- I was asked to design a file system.
- The interview concluded with questions about my past projects.
The system design questions caught me a little off guard, as I wasn't expecting them for a new grad role based on other people's reviews.
A week later, I reached out to the recruiter, and she asked me to rank which teams I would like to receive an offer from. I responded with my ranking, followed up after two days, and was verbally extended an offer from my first preference team. I received the official offer letter three days later.
Interview Questions (9)
Write a program that takes as input a set of dictionary words and fits them all in a matrix of given size, such that all the words in the matrix are readable.
Implement a linked list that always remains sorted. This involves adding elements in the correct order and returning the newly created node.
Design an instant messaging application like WhatsApp.
Design a file system.
Preparation Tips
I've seen people talking about solving 500-600 LeetCode questions prior to interviews, which honestly scared me. However, I would recommend being consistent with practice instead, solving 1-2 questions everyday and noting what you did right and wrong. I was also really fortunate to have had very nice interviewers who were genuinely interested in bringing me on their teams (barring one specific interviewer).
Summary
I successfully navigated through 6 rounds for an Oracle Cloud Infrastructure position in India and was informed of my selection, eagerly awaiting the final offer details.
Full Experience
I went through a total of six rounds for an Oracle Cloud Infrastructure role. Here's how it unfolded:
Round 1: Coding & Technical
My first round involved two simple coding questions that I had to solve in a coderpad-like environment. I'd rate them as LeetCode easy. The interviewer also asked me to explain what microservices are.
Round 2: Behavioral & DSA
The second round consisted of a few behavioral questions and one LeetCode medium problem, which was based on Tries.
Round 3: Behavioral & DSA
Again, this round started with quite a few behavioral questions, followed by another LeetCode medium problem, this time involving DFS on a matrix.
Round 4: System Design
This was a high-level design round. I was asked to design a movie-booking system and then delved into subsequent discussions regarding concurrent transactions and scalability challenges.
Round 5: Managerial & Technical
The fifth round was with a manager. It primarily involved behavioral questions and discussions about my projects. I also answered a few technical questions before solving another LeetCode medium problem.
Round 6: The Bartender Round
The final round, often called the "bartender round," was mostly an hour-long chat focusing on behavioral questions.
The very next day, I received a call from HR informing me of my selection! I'm still awaiting the official offer details, and I'm really hoping they don't mess it up, as I've faced so many failures before. A misfortune here would truly break me.
Interview Questions (2)
The interviewer asked me to explain what microservices are, likely covering their definition, characteristics, benefits, and drawbacks.
I was tasked with designing a complete movie-booking system. This included discussions around high-level architecture, handling concurrent transactions, and ensuring scalability for a large user base.
Summary
I interviewed for an SDE 1 position at Oracle OCI in Seattle, WA, and successfully received an offer. The interview process consisted of a phone screen followed by five comprehensive onsite rounds, covering coding, system design, and behavioral aspects.
Full Experience
I had completed one year of full-time work at Amazon as a CSA when a friend from my university, who was graduating, informed me that Oracle was hiring SDEs in Seattle, WA. He kindly provided me with the LinkedIn contact of a manager there. I reached out to the manager with my resume, and they promptly set up a phone interview.
Phone Interview
My phone interview involved a coding challenge. I was asked to process a text file containing various log messages and identify the K most frequently occurring ones. I initially thought of using a max-heap, but then realized that a min-heap, limited to a size of K, would be a more space-efficient approach. I presented both solutions to the interviewer, highlighting the benefits of the min-heap.Onsite Interviews
The onsite part consisted of five rounds, a mix of coding, behavioral, and system design questions.Round 1
This round presented a matrix filled with 0s and Ds, where 0s represent files and Ds represent databases. The goal was to find the shortest distance for each 0 to its nearest D. I first proposed a brute-force solution with O(N^4) complexity, which involved iterating through the matrix and checking neighbors. However, I soon moved to a better solution using Breadth-First Search (BFS), starting from all 0s simultaneously to update distances. I struggled a bit with the BFS implementation but managed to code it out in the final minutes.Round 2
I was asked to implement a Binary Search Tree Iterator. As this is a standard tree question, I didn't face much difficulty. I initially thought of an inorder traversal to store all elements in an array, which could then be iterated. The optimized solution, which I also discussed, involved a controlled recursion method to act as a true iterator, as explained in the official LeetCode solution.Round 3 (Lunch with Manager)
After lunch, there was a short coding exercise: calculating the angle between the hour and minute hands of a clock. I had recently discussed this problem with a friend, which allowed me to quickly provide the solution.Round 4
This round had two parts. The first coding question involved managing a list of unreserved telephone numbers, implementing a `getRandom()` function for retrieving a random number and a `reserve()` function to assign a number, with critical time complexity requirements. Having practiced a similar problem, I was able to solve it efficiently.The second part was a system design problem: designing a centralized logging system to collect logs from 100 servers and enhance user experience by reducing log search time. We had only 15 minutes for this, and my answers were structured around concepts from a popular system design primer.
Round 5
The final technical round asked me to find the longest repeated or duplicated substring within a given string `s`. This was a hard problem, and I could only come up with a brute-force solution. We touched upon advanced concepts like Trie and the Rabin-Karp algorithm, and the interviewer seemed content with our discussion.Behavioral Questions
Oracle Cloud Infrastructure (OCI) has its own set of values, quite similar to AWS Leadership Principles. I was expected to share stories demonstrating how I embodied these values. Additionally, the 'bar raiser' interviewer asked detailed questions about projects I completed during my Masters.By the end of the week, the manager reached out and informed me that I would be receiving an offer.
Interview Questions (7)
Design a centralized logging system capable of collecting logs from 100 servers. The design should prioritize enriching the customer user experience by minimizing log search time.
Behavioral questions focused on Oracle Cloud Infrastructure (OCI) values, which are similar to AWS Leadership Principles. Interviewers expected stories demonstrating these values. The bar raiser also delved into detailed questions about projects from my Masters.
Preparation Tips
I prepared for the interview by studying system design concepts from a primer (likely the donnemartin/system-design-primer). For coding, I leveraged my previous practice on similar problems, which helped with standard questions like the BST iterator and Insert-Delete-GetRandom O(1). I also familiarized myself with OCI's values to prepare for behavioral questions, crafting stories to demonstrate alignment with their principles and readying myself for deep dives into my Master's projects.
Summary
I interviewed for an SDE 2 role at Oracle OCI in January 2019, which involved a phone screen followed by six onsite rounds, covering coding, system design, and behavioral questions. Despite my efforts, I was ultimately rejected.
Full Experience
My interview journey for the SDE 2 position at Oracle OCI in Pleasanton, California, took place in January 2019. I brought 5 years of experience to the table.
Phone Screen
The process began with an hour-long coding exercise. I was presented with a map detailing direct friends and tasked with creating an API. This API needed to take a person's name and return all levels of their friends. For instance, if given "Bob", the output should clearly delineate Level 1, Level 2, and Level 3 friends based on the provided map structure.
Onsite Interview (6 Rounds)
The onsite portion was comprehensive, spanning six distinct rounds:
- Bartender Round (Virtual): This round was with an interviewer from a different team. They asked several network-related questions, queries about hypervisors and Docker, and a few behavioral questions. I also had to solve an easy-level coding problem on a whiteboard.
- Lunch Interview: This was a more informal discussion with the hiring manager. We talked about my current role interests, any upcoming interviews I had, and the work culture at OCI. It was primarily behavioral.
- System Design: Another round with the hiring manager, focused on system design. I was asked to design a URL shortening system. The discussion also delved into REST methods, HTTP status codes, hashing, and encryption principles.
- Coding Round: I was challenged to design a class that supported four operations:
set(key, time, value),set(key, value),get(key), andget(key, time). My approach involved using a map of maps, where the nested map was a TreeMap to facilitate sorting based on start times. - Coding Round: The task here was to take a list of strings and return all possible combinations that could form a 4x4 word grid. I attempted a brute-force approach, though I felt the interviewer himself seemed a bit unsure about the problem and offered minimal input.
- Experience Discussion: The final round focused on my past work experience, specifically going through Object-Oriented Design (OOD) in previous projects, questions about cloud-native application development, and some database-related topics.
Throughout the interviews, the team emphasized that their tech stack was primarily Java, and relevant experience was mandatory. I was quite surprised, however, that not a single question was asked specifically about Java or my experience with it.
Interview Questions (4)
Create an API which takes in a person's name and returns all levels of friends of this person.
Example:
Map:
"Bob" : "Sandra", "Alice", "Eric"
"Sandra" : "Bob", "Don"
"Alice" : "Bob"
"Eric" : "Bob"
"Don" : "Sandra", "Tim"
"Tim" : "Don"
Member Name: "Bob"
Result:
Level 1 friends: Sandra, Alice, Eric
Level 2 friends: Don
Level 3 friends: Tim
Design a URL shortening system.
The discussion also involved questions about REST methods, HTTP status codes, hashing, and encryption.
Design a class that supports 4 different operations:
set(key, time, value)set(key, value)get(key)get(key, time)
Given a list of strings, return all possible combinations of strings which would form a 4x4 word grid.
Input: ATOM, ACID, PARK, LACK, MARK, DARK
Example Grid:
A T O M
C A
I R
D A R K
Summary
I applied for an IC3 position at Oracle in Seattle, WA, in October 2019. After a phone screen and a 5-round onsite interview in December 2019, I successfully received a verbal offer the very next day.
Full Experience
I initiated my job search by applying for an IC3 position at Oracle (OCI) in Seattle, WA, through LinkedIn in October 2019. Following my application, I received an invitation for a phone screen in November 2019, which involved behavioral questions and an algorithm challenge. Shortly after, I was invited to schedule my onsite interviews, which took place in December 2019.
The onsite interviews comprised five distinct rounds:
- Round 1: This round began with behavioral questions, followed by a data structures and algorithms problem.
- Round 2: This round focused purely on algorithmic challenges, presenting two distinct problems.
- Round 3: This was a lunch interview, primarily consisting of behavioral questions.
- Round 4: I faced more behavioral questions, alongside an object-oriented design challenge to design a Chess game.
- Round 5: The final round continued with behavioral questions and extended the discussion on the Chess design problem from the previous round.
Interview Questions (5)
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According to the definition of LCA on Wikipedia: "The lowest common ancestor is defined between two nodes p and q as the lowest node in T that has both p and q as descendants (where we allow a node to be a descendant of itself)."
Design an object-oriented system for a Chess game.