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