Oracle (OCI) | MTS | India | June'23 | Offer

oracle logo
oracle
· MTS I· bangalore, india· 2y exp· Offer
July 5, 2023 · 52 reads

Summary

I successfully interviewed for the MTS position at Oracle (OCI) in Bangalore, India, and received an offer. The interview process was extensive, spanning five rounds covering data structures, algorithms, system design, and behavioral questions, reflecting my 2 years of experience.

Full Experience

My interview journey for the MTS role at Oracle (OCI) in Bangalore, India, began with a Screening round. This round focused on my prior experience, specifically cross-questioning me on AWS compute choices like Lambda, Fargate ECS, and EC2-based ECS from my previous projects. I also tackled a challenging N-ary tree problem where I needed to find the maximum reward from a connected component after removing any number of edges, aiming for an O(N) solution.

The First Round also started with an introduction and a deep dive into the design aspects of my previous projects. Following this, I was given an array problem: perform at most 'k' operations (multiplying an element by 2) to maximize the bitwise OR value of the entire array.

In the Second Round, I encountered two classic LeetCode problems. First, the Sliding Window Maximum, which I solved with an O(N) deque approach. Second, I had to divide two integers without using multiplication, division, or modulo operators, aiming for a logarithmic time complexity.

The Third Round presented two dynamic programming problems. One was to find the length of the maximum alternating (positive and negative numbers) sequence starting from every index in an array, solvable using 1D DP in O(N). The other was a common DP on Grid problem: finding the maximum gold path in a 2D matrix from {1,1} to {n,m}, solvable in O(N^2).

The Fourth Round, labeled as the Bar Tender round, involved further cross-questioning on the design of my past projects and standard behavioral questions. We also discussed theoretical concepts such as why adjacency lists are preferred over adjacency matrices and the Builder Design Pattern, including reasons for its static nature and private access specifiers, and its use for parameter validation.

Finally, the Fifth Round was with the Hiring Manager. This round also included an introduction, a thorough discussion on the design aspects of my previous projects, and more behavioral questions. For a coding challenge, I tackled the Maximum Number of Non-overlapping Palindrome Substrings problem, providing an O(N^2) solution by identifying valid palindrome intervals, sorting them, and then applying 1D Dynamic Programming. I'm pleased to share that I received an offer!

Interview Questions (15)

1.

AWS Compute Choices Discussion

System Design

I discussed and was cross-questioned on compute choices for previous projects, specifically comparing Lambda, Fargate ECS, and EC2 based ECS in AWS.

2.

Max Reward from Connected Component in N-ary Tree

Data Structures & Algorithms·Hard

I was given an N-ary tree where each vertex has an integer reward. The goal was to return the maximum reward obtainable from a connected component in the tree, with the option to remove any number of edges. Rewards could also be negative. I aimed for an O(N) solution.

3.

Previous Project Design Discussion

System Design

I had an introduction followed by cross-questioning on the design aspects of my previous projects.

4.

Maximize Array OR Value with K Multiplications

Data Structures & Algorithms·Medium

Given an array of integers and an integer k, I could perform an operation at most k times: choose any index in the array and multiply the number at that index by 2. The objective was to find the maximum possible bitwise OR value of all elements in the array after performing these operations.

5.

Sliding Window Maximum

Data Structures & Algorithms·Hard

I was asked to solve the Sliding Window Maximum problem, aiming for an O(N) solution using a deque.

6.

Divide Two Integers

Data Structures & Algorithms·Medium
7.

Max Length Alternating Sequence

Data Structures & Algorithms·Medium

I needed to find the length of the maximum alternating sequence (alternating positive and negative numbers) that could initiate from every index in an array of integers. This problem was solvable using 1D Dynamic Programming in O(N).

8.

Maximum Gold Path in 2D Matrix

Data Structures & Algorithms·Medium

I was given a 2D matrix and asked to find the maximum gold path from cell {1,1} to {n,m}. This is a common DP on Grid problem, solvable in O(N^2).

9.

Previous Project Design Discussion

System Design

Similar to previous rounds, I started with an introduction and then faced cross-questioning on design aspects of my past projects.

10.

Behavioral Questions

Behavioral

I was asked several behavioral questions during this round.

11.

Adjacency List vs. Adjacency Matrix

Data Structures & Algorithms·Easy

I was asked to explain why adjacency lists are generally preferred over adjacency matrices for graph representation.

12.

Builder Design Pattern

System Design·Medium

I discussed the Builder Design Pattern, including reasons for a builder class often being static with a private access specifier, and its typical usage, such as validating parameters prior to object creation.

13.

Previous Project Design Discussion

System Design

The hiring manager round also began with an introduction and deep dive into the design aspects of my previous projects.

14.

Behavioral Questions

Behavioral

Further behavioral questions were asked by the hiring manager.

15.

Max Non-overlapping Palindrome Substrings

Data Structures & Algorithms·Hard

I was presented with the Maximum Number of Non-overlapping Palindrome Substrings problem. I proposed an O(N^2) solution that involved finding all valid palindrome intervals, sorting them, and then applying 1D Dynamic Programming.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!