I recently interviewed with Oracle for the role of Application Developer 3. I had 1 year and 6 months of experience as a specialist programmer in a service-based company. The entire process took close to 2 weeks.
Interview Round 1 This round was conducted by a Senior Application Developer of Oracle SCM Cloud. He asked me about my experience and my current tech stack. Then he gave me a data structures and algorithms question.
Q1: 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 I first told him the O(n^2) solution. He asked for a more efficient approach. I gave the solution using the sliding window approach. He told me to write the code in any language I preferred. After that, he gave me one test case and asked me to dry run my solution on the test case and explain it step by step.
Q2: 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 I started to give an approach but went in the wrong direction. He told me to first explain what the output would be for input 4 and 5 in a brute-force solution. I showed him what combinations are possible for input 4 and 5. Then I was able to catch that it was a Fibonacci series. He asked me to first write the code in a recursive method and explain the complexity of the recursive approach. Then he asked me to give him a more improved approach and compare the approaches, including their advantages and disadvantages.
Q3: Lastly, he asked me to write examples of some SQL queries.
The whole interview was around 30 minutes long. On the same day, in the evening, they called me to inform me that the next interview would be taken the very next day.
Interview Round 2 This round was conducted by a Senior Principal Applications Engineer of Oracle. He asked me two straight data structures and algorithms questions.
Q1: I couldn’t remember the exact question. It was something like a list of sets of size 4 was given. Find two sets from that list which will have the same property (forgot what the property was). I told him some O(nlogn) solution. He asked me if there was any way it could be more optimized. I looked into it for some time and told him it wasn’t possible as I had to do sorting anyway. He was convinced by the explanation. Then he said let’s assume a hash function is given and asked me how we would approach this solution. What kind of advantages and disadvantages would we encounter using a hash over the first approach? He asked me to give him a scenario for which the first approach would be preferred over the hashing approach. He also told me while explaining this to give him one example of those cases. At the end of the discussion, he asked me to write the code for the first approach.
Q2: This question was straightforward. Write a code for converting a binary tree into its mirror tree. I wrote the code in a recursive method. Then he asked me what other way I could do that. I told him we could do it in an iterative way. He asked me how I would implement that and also told me I didn’t need to write code, just explain it to him. He also asked if it was a top-down approach or a bottom-up approach I had written. I answered that it was a top-down approach. Then he just asked me to give him the approach in short on how to do the same problem in a bottom-up technique. Lastly, he gave me a few corner cases like a node with only one child and asked how I would handle those cases in the solution.
The whole interview was around 45-50 minutes. Then he told me he wanted to ask some SQL questions but he got an urgent call, so he had to end the interview. On the same day, in the evening, they called me to inform me that the third interview would be taken the next day.
Interview Round 3 This round was conducted by a Group Manager of Oracle Inventory Management.
Q1: Given a table. Teacher Subject A English B Science C Maths A Maths D EVS B EVS
Write a query to find the teacher which teaches English and Maths. Like in this example, the answer will be A (in row 1 and 4). I had given a solution using an inner join of the same table. He told me the solution was correct and asked me if any other query could be done. I was not able to give an answer at that time. Then he gave a hint by asking if it was possible with set operations. I gave him the solution.
Q2: 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. First, I told him the O(n^2) solution. Then I gave him an optimized solution of O(nlogn) using sorting. He asked me to write code for any one approach whichever I felt comfortable with. I wrote the O(n^2) approach code and he asked me to dry run the given example.
Q3: 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 15 Output: Following is maximum profit sequence of jobs c, a, e. I gave him an O(nlogn) solution. He asked me to write the code and dry run the above example and give some other test cases and explain the approach with that example also.
The whole interview was around 45 minutes. On the same day, in the evening, they called me to inform me that there would be another interview which would be taken after two days.
Interview Round 4 This round was conducted by a director of Inventory Management of Oracle SCM Cloud. He only asked one question.
OTT Platform 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)
Requirement : To design and develop an upgrade program from the 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).
Start Date: 16-Jun-.
End Date: 15-Jun-
Current Package : Rs 299/- 799/-
Current Date : 1–Apr-
SMS
——
Deal Offer of the day
Your Current package details : <799/->
Your End Date of current package: <<15-Jun->>
Grab Upgrade deals:
599/-: <<Remaining amt to be paid>>
799/-: <<Remaining amt to be paid>>
1499/- : <<Remaining amt to be paid>>
He asked me to design the complete feature. First, I started with the calculation portion, then he stopped me and told me that he wanted an end-to-end feature. From scratch, I had to give the solution. Then I started from the database design to the backend code. We had a pretty good discussion about the approach. Then he asked me what tech stacks could be used for implementing this feature. After that, he got into my current project and asked me why I wanted to switch jobs and what I expected from Oracle that would benefit my knowledge.
The whole interview was around 40 minutes. After four days, they called me to inform me that the last interview would be scheduled for the next day.
Interview Round 5 This round was conducted by a senior director of Oracle Inventory Management. He started with my current project and went into great depth. He asked me what features I had worked on, which one was very challenging and why, and then he got interested in one feature and asked me more about that feature. Then he asked some HR-related questions: what my strengths and weaknesses were and how I dealt with them. After that, he asked me what searching and sorting were. Why do we use them? He asked for a practical day example where sorting was much needed and why. I gave him the example of a phone directory and a dictionary, explaining why sorting was much needed. Then he asked for some other examples of sorting. I was telling him about how in websites, in some long lists, we use sort for quick searching. He said those were right. He was looking for a different example. Although the hint was given, I was not able to catch it at that time. He told me himself that what about a medical shop. He told me to imagine I had a medical shop and didn’t want to use any kind of sorting technique anywhere. What challenges would I face and how could I overcome them without sorting? We had a discussion about this scenario. The second question he asked me was in a train booking system when we buy tickets, we select the start and destination and the train, then it shows the number of available tickets. He wanted me to design the database table design and how the data would be stored in those tables to find the available seats for the train. Also, we had to consider that there are many stations in the train route. So we can buy tickets from any stations in between. For example, A B C D E are the stations. One can buy a ticket from A to D or C to E or A to E any stations. I gave a table design. He seemed happy about the solution. Then he asked me why I was looking for a job change. How did I expect Oracle to enhance my skills? How could my current expertise be fitted for Oracle? Where did I see myself after three to four years working with Oracle? Then he explained to me what kind of projects they were taking developers for and what kind of work the developers did in those projects. At the end, he told me all the interview rounds were completed for me, and they would inform me within a week about the outcome.
After two days, I got a call from Oracle, confirming I had cleared all the interview rounds and they were willing to offer me the role of Application Developer 3 at Oracle. After a week, I received the offer letter.