Hello, recently I was interviewed by Oracle for the role of Application Developer 3. I had 1 year 6 months of experience as a specialist programme in a renowned service-based company. The entire process took close to 2 weeks.
Interview Round 1
This round was taken by a Senior Application Developer of oracle SCM Cloud. He asked me about my experience and in which tech stack I am currently working. Then he gave me a dsa 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 O(n^2) solution. He asked more efficient approach.
I gave the solution using sliding window approach. He told me to write the code in any my preferred language. After that he give me one test case and asked to dry run my solution on the test case and explain him 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 going wrong direction. He told me first to explain what will be the output for input 4 and 5 in brute-force solution. I show him what combinations are possible for input 4 and 5. Then I was able to catch it that it was a Fibonacci series. He asked me to first write the code in recursive method and explain him the complexity of recursive approach. Then give him the more improved approach and compare between the approaches and what are advantages and disadvantages.
Q3: Lastly he asked me to write example of some sql queries.
The whole interview was around 30 minutes long.
On the same day, evening they called me to inform that the next interview will be taken the very next day.
Interview Round 2
This round was taken by a Senior Principal Applications Engineer of oracle. He asked me straight two dsa questions.
Q1: I couldn’t remember the exact question. It was something like a list of set of size 4 was given. Find two set from that list which will have same property (forgot what the property was). I told him some O(nlogn) solution. He asked me is any way it can be more optimized. I look into for some time and told him it not possible as I have to do sorting any way. He was convinced by the explanation. Then he said let’s assume a hash function is given asked me now how will we approach this solution. What kind of advantages and disadvantages will encounter using hash over first approach? Asked for give him a scenario for which the first approach will be prefer over hashing approach. He also tell me while explaining this give him one example of those cases. At the end of discussion he asked me to write the code for first approach.
Q2: This question was straight forward. Write a code for converting binary tree into its mirror tree. I wrote the code in recursive method. Then asked me what other way you can do that. I told him we can do in iterative way. He asked me how I will implement that and also told me no need to write code, just explain it to him. Also ask for is it a top-down approach or bottom-up approach you have written. I answered it a top-down approach. The he just asked for give him the approach in short how to do the same problem in bottom-up technique. Lastly he gives me a few corner cases like a node with only one child how you handling those cases in the solution.
The whole interview was around 45-50 minutes.
Then he told he was wanted to ask some sql questions but he got an urgent call, so he had to end the interview.
On the same day, evening they called me to inform that the third interview will be taken the next day.
Interview Round 3
This round was taken 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 answer will be A (in row 1 and 4).
I had given a solution using inner join of same table. He told me the solution is correct and asks me any other query can be done. I was not able to give answer that time. Then he give a hint by asking is it 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 give him an optimized solution of O(nlogn) using sorting. Asked me to write code for any one approach whichever I feel comfortable. I have written O(n^2) approach code and 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 a O(nlogn) solution. He asked for write the code and dry run the above example and given some other test case and explain the approach with that example also.
The whole interview was around 45 minutes.
On the same day, evening they called me to inform that there will be another interview which will be taken after two days.
Interview Round 4
This round was taken 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 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-2021.
End Date: 15-Jun-2022
Current Package : Rs 299/- 799/-
Current Date : 1–Apr-2022
SMS
——
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/- : <>
He asked me the design of this complete feature. First I started with calculation portion, then he stopped me and told me that he want end to end feature of this. From scratch I have to give the solution. Then I started from the database design to backend code. We had a pretty good discussion about the approach. Then asks me for what are the tech stacks can be used for implementing this feature. After that he got into my current project and asked me why I want to switch my job and what you accept from oracle to give you which will be benefits for your knowledge.
The whole interview was around 40 minutes.
After four days, they called me to inform that the last interview will be scheduled for the next day.
Interview Round 5
This round was taken by a senior director of Oracle Inventory Management.
He started with my current project and got into very deep. He asked me what the features I have worked on, which one was very challenging and why and then he got interested in one feature and ask me more about that feature. Then he asks some HR related question what is your strength and what your weakness is and how you deal with that. After that he asked me what is searching and sorting. Why we are use that? Asked for a practical day example where sorting is much need and why. I give him the example of phone directory and dictionary, explained him why sorting is much needed. Then he asked for some other example of sorting. I was telling him about in website in some long list we use sort for search quick. He said those I given are right. He was looking some different example. Although the hint is given, I was not able to catch it that time. He told himself that what about medical shop. He told me imagine you have a medical shop and not want to use any kind of sorting technique anywhere. What challenges you will face and how can you overcome that without sorting? We had a discussion about these scenario. The second question he asked me in train booking system when we buy ticket we select start and destination and the train, then it shows the number of available tickets. He wanted me design the database table design and how the data will be store in those tables to find the available seats for the train. Also, have to consider 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 ticket from A to D or C to E or A to E any stations. I gave a table design. He seems happy about the solution. Then he asked me why I am looking for job change. How you expecting Oracle to enhance your skills? How your current expertise can be fitted for oracle? Where are looking yourself after three- four years working with oracle? Then he explains me for what type of project they are taking developers and what kind of work the developer do in that project. At the end he told me all interview rounds are completed for me, they will inform me within a week about the outcome.
After two days, I got a call from Oracle, confirmed I cleared all the interview rounds and they are willing to offer me the role of Application Developer 3 at Oracle. After a week, I received the offer letter.