Summary
I successfully interviewed for the SMTS role at OCI in Bengaluru during May 2024 and received an offer. The interview process consisted of a phone screen and five onsite rounds, covering data structures and algorithms, low-level design, high-level design, and various behavioral questions.
Full Experience
Phone Screen
In this round, the interviewer presented me with a couple of medium-level LeetCode questions. I was able to provide optimal and workable code for both problems:
- A Dynamic Programming problem similar to Wildcard Matching.
- A question on finding the Least Common Ancestor.
I successfully cleared this round and was invited for four onsite rounds.
LLD with SMTS
This round focused on Low-Level Design for a management system. We discussed various aspects, including database schema choices, API endpoints, and class diagrams. I also encountered behavioral questions, particularly how I would handle conflicts within a team. Additionally, there was a deep dive into one of my past projects.
HM Round
The hiring manager round involved a deep dive into two of my past projects, where I was asked how I could have improved them. This round also included several behavioral questions.
Problem Solving Round with LMTS
This round featured a couple of hard-level LeetCode problems. I provided optimal approaches and wrote workable code for both:
There were also some behavioral questions in this round.
BarRaiser with LMTS
This round was entirely focused on behavioral questions, with a particular emphasis on my background and interests.
Overall, all my initial rounds went well. I appreciated that every interviewer was polite and had their camera on, which isn't always common in my experience.
About seven days later, the recruiter called to inform me about an additional round, which was scheduled within two days.
Round with CMTS
In this final round, I was asked to solve a couple of coding problems:
- Removing even-valued nodes from a given linked list.
- A string compressor problem.
Following the coding questions, I had a High-Level Design discussion about designing a TinyURL service with additional features. We extensively discussed various components and their alternatives.
The debrief happened three days later, and I was fortunate to receive an offer!
Interview Questions (9)
I was asked a Dynamic Programming problem related to implementing wildcard pattern matching with '?' and '*' characters.
I was given a problem to find the least common ancestor of two nodes in a binary tree.
I had to design a management system, covering aspects like database schema choice, API endpoints, and class diagrams.
I was asked behavioral questions, specifically how I handle conflicts within a team.
I was asked to write code to remove all nodes that have an even value from a given singly linked list.
I was given a problem to implement a string compressor, which typically involves replacing repeating characters with the character followed by its count (e.g., 'aaabbc' -> 'a3b2c').
I had an HLD round focused on designing a TinyURL service with additional features, discussing every aspect and its alternatives.