Oracle OCI IC3 (Senior Member of Technical Staff - SMTS) | Bangalore | July 2025 | Selected
Summary
I successfully navigated multiple technical and behavioral rounds, including DSA, System Design, and Java-specific questions, ultimately receiving a selection for the Senior Member of Technical Staff (SMTS) role at Oracle OCI, Bangalore.
Full Experience
I saw a post by recruiter on LinkedIn and contacted him via InMail. The recruiter contacted within few days asking basic details. Then radio silence for 3 weeks and then got a call from scheduling team for scheduling interviews
Screening Round Taken by a Principle MTS. I was asked 1 DSA question: Q: https://leetcode.com/problems/divide-two-integers/description/ Solved fully
Got a call from recruiter within 2 days for scheduling LOOP rounds:
Technical Round 1 (Taken by SMTS):
Round started with basic Java QUestions:
- Polymorphism in Java, how to acheive
- Composition & Association
- Aggregation
- Aggregation vs Composition
Then I was asked a DSA question:
- Longest Subarray with 0 Sum - question from GFG
Lastly, I was told to draw the HLD for an ECommerce website like Amazon. Expectations:
- Functional Requirements
- Non Functional Requirements
- DB Schema
- DB resilient design
- Services
- Diagram
Bartender Round:
Taken by someone from different team. I was asked multiple behavioural questions. The round went almost 45 mins
Tecnical Round 2 (Taken by Director of Engineering):
Few behavioural Questions.
2 coding questions:
- Given a String s, build all possible subsequences, sort them and return as a List
- Create a Thread safe data structure and write 2 producer and 1 consumer for it.
Tecnical Round 3 (Taken by a Principle MTS):
- Questions from Resume
- 1 DSA question: Q: Remove duplicate sequence from linked list. Ex: Input: 1->2->2->2->5->4->4, output: 1->5 Input: 1->1->2->2->2->5->4->4, output: 5
Interview Questions (10)
Divide Two Integers
The problem asks to divide two integers without using multiplication, division, or modulo operators.
Polymorphism in Java
Explain polymorphism in Java and how to achieve it.
Composition & Association in Java
Explain Composition & Association in Java.
Aggregation in Java
Explain Aggregation in Java.
Aggregation vs Composition
Discuss the differences between Aggregation and Composition.
Longest Subarray with 0 Sum
Find the length of the longest subarray with a sum of 0.
High-Level Design for E-commerce Website (Amazon-like)
Design a High-Level Architecture for an E-commerce website similar to Amazon. Discuss functional requirements, non-functional requirements, database schema, database resilient design, services, and provide a diagram.
Generate and Sort All Subsequences of a String
Given a string s, generate all possible subsequences, sort them lexicographically, and return them as a list.
Thread-Safe Data Structure with Producer-Consumer
Design and implement a thread-safe data structure. Then, write code for two producer threads and one consumer thread that interact with this data structure.
Remove Duplicate Sequences from Linked List
Given the head of a singly linked list, remove all nodes that have duplicate consecutive numbers, leaving only distinct numbers. For example, if the input is 1->2->2->2->5->4->4, the output should be 1->5. If the input is 1->1->2->2->2->5->4->4, the output should be 5.