Oracle Health | Senior Software Developer | IC3 | Interview Experience

oracle logo
oracle
senior software developerRejected
September 4, 202519 reads

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 the transient keyword.
  • Implementing an immutable class and the use of the final keyword.
  • 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:

  1. 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.
  2. 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.
  3. 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)

Q1
Java Exceptions & Errors
Other

Explain the differences between exceptions and errors in Java, and how they are typically handled.

Q2
Create Immutable Class in Java
Other

Describe the principles and steps to create an immutable class in Java. Provide a code example.

Q3
Deadlock Concepts
Other

Explain what a deadlock is in concurrent programming, its necessary conditions, and common strategies for prevention or detection and recovery.

Q4
SOLID Principles with Examples
Other

Elaborate on each of the five SOLID principles of object-oriented design and illustrate them with practical examples.

Q5
Factory vs. Abstract Factory Pattern
Other

Differentiate between the Factory Method and Abstract Factory design patterns. Explain their use cases and provide examples for each.

Q6
Encapsulation vs. Abstraction
Other

Compare and contrast encapsulation and abstraction in object-oriented programming, highlighting their distinct purposes and how they are implemented.

Q7
Spring Boot Actuator & Dispatcher Servlet
Other

Explain the roles and functionalities of Spring Boot Actuator and the Dispatcher Servlet in a Spring application context.

Q8
Design BookMyShow-like Service
System DesignMedium

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.

Q9
Integer to Roman Numeral Conversion (Extensible)
Data Structures & AlgorithmsMedium

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'.

Q10
Producer-Consumer for Odd/Even Numbers
OtherMedium

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.

Q11
Java Concurrency & Serialization Concepts
Other

Explain the purpose and usage of the Cloneable and Serializable interfaces, and the transient keyword in Java. Discuss their implications and potential pitfalls.

Q12
Immutable Class Implementation & Final Keyword
Other

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.

Q13
Thread-Safe Singleton Pattern
OtherMedium

Implement a thread-safe Singleton design pattern in Java, explaining the considerations for ensuring thread safety.

Q14
Find Cycle in Linked List
Data Structures & AlgorithmsMedium

Given the head of a singly linked list, determine if it contains a cycle. Implement multiple approaches if possible.

Q15
Sum of Deepest Leaf Nodes in Binary Tree
Data Structures & AlgorithmsMedium

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.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!