Oracle OHAI IC3|SDE 3 Interview Experience.
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)
Insert Delete GetRandom O(1)
Solved the Insert Delete GetRandom O(1) problem, focusing on achieving all operations in average constant time using a combination of HashMap and ArrayList.
Discussion on Core Design Patterns
Definitions and real-world implementation of core design patterns like Singleton, Factory, Observer, and Strategy were discussed.
Design a Healthcare Medicine Recommendation System
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.
Leaders in an Array (Variant)
Solved a variation of the classic "Leaders in an Array" problem.
String Encoding/Decoding (e.g., 12(2)3(2)10# to abbcccj)
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.
Integer to Roman Conversion
Implemented a highly optimized solution for converting integers to Roman numerals without hardcoding mappings, leveraging arrays and modular logic.
Balanced Binary Search Tree 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).
Discussion on Advanced System Design 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.