Oracle PDO Interview Experience (On-Campus) 2023
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.