Oracle PMTS Interview Experience
Summary
I interviewed for a PMTS role at Oracle in Bangalore and successfully received an offer. The interview process included several technical rounds focusing on Data Structures & Algorithms, system design discussions based on my resume, and specific coding challenges.
Full Experience
Phone Screening (VP Round)
Duration: ~15 minutes
The VP briefly reviewed my resume, focusing on my experience with notification services (a key requirement for the role).
Assessed my knowledge in relevant areas but did not dive deep.
Shortly after, I was scheduled for the technical rounds.
Technical Round 1 (DSA Focused)
Introduction: Brief discussion about my background.
Problem 1: https://leetcode.com/problems/merge-intervals/description/ (LeetCode)
Problem 2: Find the duplicate in an array of size n with elements in [0, n-1].
Expected solution: Efficient swapping approach (similar to https://leetcode.com/problems/find-the-duplicate-number/description/).
Technical Round 2 (Resume Deep Dive + DSA)
First 30 mins: In-depth discussion on my resume, covering:
- Redis Cache (eviction policies, clustering)
- Kafka (consumer groups, partitioning, offset management)
- REST API Security (OAuth 2.0, JWT, rate limiting)
High-level system design aspects of past projects.
DSA Problems:
Problem 1: Validate parentheses in a string (basic () case).
Follow-up: Extended to multiple types ((), [], {}).
Problem 2: Given an employee hierarchy (tree structure), find all reports under each manager.
Follow-up: Reverse lookup (find all managers for a given employee).
Technical Round 3 (Resume Grilling + Coding)
Resume Discussion: Focused on my experience with:
- Email Notification Service (SMTP, DLQ handling)
- Kafka (message retries, ordering guarantees)
- Blue-Green Deployment (strategies, advantages)
High availability, throughput, and latency optimizations.
Coding Problem: Multiply two very large integers represented as strings (e.g., "123456789" * "987654321").
Constraints: No use of BigInteger or language libraries—had to implement manual multiplication.
Final Discussion & Offer
After clearing all rounds, had a follow-up call with the VP within a day to discuss:
- Project alignment
- Salary expectations
- Background verification (BGV) process
Final Verdict: Hired!
Offer details: https://leetcode.com/discuss/post/6893969/oracle-pmts-bangalore-by-anonymous_user-j50z/
Interview Questions (5)
Validate if the parentheses in a string are balanced and correctly matched. Initially for basic '()' cases, then extended to multiple types: '()', '[]', '{}'.
Given an employee hierarchy represented as a tree structure:
- Find all direct and indirect reports under each manager.
- Implement a reverse lookup to find all managers (direct and indirect) for a given employee.
Implement a function to multiply two very large integers represented as strings (e.g., "123456789" * "987654321"). The solution must not use BigInteger or any language-specific large number libraries; manual multiplication logic is required.