Adobe | MTS-2 | Noida | Jan 2022 [Offer]
Summary
I interviewed for the MTS-2 role at Adobe in Noida, successfully clearing all technical and managerial rounds to receive an offer. The interview process focused on a mix of data structures & algorithms, C++, and OS concepts.
Full Experience
My interview journey for the MTS-2 role at Adobe in Noida was insightful. I hold a B.Tech in CS and have 3.5 years of experience as an SDE in a product-based company. The process consisted of four rounds.
Technical Round 1 (1 hr):
This round included questions based on Binary Search, with a specific constraint to use exception handling for certain cases. I also encountered a variation of the chocolate distribution problem. Additionally, the interviewer delved into C++ and OS concepts.
Technical Round 2 (1 hr):
During this round, I was asked to implement a function to copy a linked list with random pointers. I had to write multiple test cases and dry run them until the interviewer was satisfied with my explanation. A significant portion of this round also involved questions on C++ and OS.
Manager Round (40 mins):
I tackled the Balanced Parenthesis Problem and a puzzle involving 100 people in a circle, which is essentially the Josephus Problem, requiring me to write generalized code for it. This round also included more questions on OS.
Director Round (1 hr):
The final round involved some behavioral questions and a discussion about my projects. C++ and OS concepts were revisited. A notable question involved implementing a solution to safely share a variable between multiple threads, similar to the Reader-Writer problem, which I had to compile and run on an IDE.
Overall, my opinion is that Adobe generally asks easy to medium level coding problems, but their primary emphasis is on OOP concepts.
Interview Questions (4)
In this round, I was challenged to implement a function that creates a deep copy of a linked list where each node contains both a 'next' pointer and a 'random' pointer. The task involved not only coding the solution but also demonstrating its correctness by running multiple test cases and dry-running them for the interviewer.
During the Manager Round, I was given the classic problem of determining if a string containing various types of parentheses (e.g., '(', ')', '{', '}', '[', ']') is 'balanced' and valid. I had to provide an efficient solution for this.
I was presented with the famous '100 people in a circle' puzzle, which is a variation of the Josephus Problem. My task was to develop a generalized code solution to determine the survivor given an arbitrary number of people and elimination pattern.
The Director Round included a practical coding challenge: I needed to implement a mechanism to safely share a variable between multiple threads, essentially an application of synchronization primitives related to the Reader-Writer problem. I had to demonstrate the working solution by compiling and running it on an IDE.
Preparation Tips
Based on my experience, for C++ roles at Adobe, a strong understanding of the following topics is crucial:
- C++: Multithreading, virtual functions, smart pointers and their implementations.
- OS: Virtual memory, memory management, deadlocks.