Oracle | IC3
Summary
I went through five interview rounds at Oracle for an IC3 role, including a technical screening, DSA and OOP interviews, high‑level design discussions, and behavioral/hiring manager sessions.
Full Experience
The recruiter initially reached out over a phone call
Round 1: Initial Technical Screening (Qualifying Round) Duration: ~1 to 1.5 hours
The discussion started with a brief introduction followed by a detailed discussion of one of my previous projects.
DSA Question : Check cycle in directed graph. Some basic questions on system design.
LOOP ROUNDS FROM Round 2 to 5.
Round 2: Technical Interview 1 (DSA + OOPs) The interviewer started with introductions and a discussion about my current project.
DSA Question : Meeting Rooms 2
Design LRU cache.
Round 3: HLD Started with introductions followed by a discussion on my current project. HLD : Some domain specific system design problem related to the current feature of the project the team is working on.
DSA : https://leetcode.com/problems/time-based-key-value-store/description/
Round 4: Hiring Manager Round This round focused more on my current project, behavioral aspects, leadership, and system design.
Topics included:
Detailed discussion of my last project. Made me drew the entire architecture. Leadership and ownership experiences System Design questions. Business impact of the projects
Round 5: Bar Raiser (Bartender) Round The final round was mix of behavioural, HLD and current project architecture.
HLD : URL Shortener.
Discussion areas included:
Deep dive into my current project Previous projects and architectural decisions
Interview Questions (5)
Detect Cycle in Directed Graph
Given a directed graph, determine whether the graph contains a cycle. Return true if a cycle exists, otherwise false.
Meeting Rooms II
Given an array of meeting time intervals consisting of start and end times, find the minimum number of conference rooms required.
Example: [[0,30],[5,10],[15,20]] => 2 rooms.
Design LRU Cache
Design and implement a Least Recently Used (LRU) cache with the following operations:
- get(key): Return the value of the key if present, otherwise -1.
- put(key, value): Insert or update the key-value pair. When the cache reaches capacity, evict the least recently used item. Both operations must run in O(1) time.
Time Based Key-Value Store
Implement a class TimeMap that supports:
set(string key, string value, int timestamp): Stores the key/value pair along with the given timestamp.get(string key, int timestamp): Returns the value associated with the key at the greatest timestamp less than or equal to the given timestamp. If no such timestamp exists, returns an empty string. The timestamps for each key are strictly increasing.
Design URL Shortener
Design a URL shortening service like bit.ly. The system should provide an API to create a short link for a given long URL and redirect users from the short link to the original long URL. Discuss components, database schema, scalability, and handling of collisions.