Adobe MTS 2 (C++) Interview
Summary
I recently interviewed for the MTS 2 role at Adobe, going through six challenging rounds including technical discussions on DSA, system design, and C++ concepts, culminating in behavioral rounds with the hiring manager and director, eventually receiving an offer.
Full Experience
I recently had my interview experience for the Adobe MTS 2 role, which spanned a total of six rounds and took two months to complete.
ROUND 1: Technical Interview
This round involved a medium-level question primarily focused on the Disjoint Set Union (DSU) data structure, followed by several follow-up questions to delve deeper into my understanding.
ROUND 2: Technical Interview - Toughest Round
This was by far the toughest round for me. It covered a wide array of in-depth topics:
- Extensive questions on Multithreading.
- Detailed discussion on B+ trees.
- Problems related to Bipartite graphs.
- Questions on Virtual Destructors in C++: what they are, why they're needed, and how they function.
- The infamous Diamond Problem in C++.
There was a significant number of questions from these topics, pushing my knowledge boundaries.
ROUND 3: Technical Interview
This round also had a strong focus on C++ concepts. Key areas included:
- Numerous C++ questions.
- A problem based on the Two-Pointer technique.
- Questions regarding Connected Components in graphs.
- One Low-Level Design (LLD) question: designing a garbage collector in C++.
ROUND 4: Technical Interview
Similar to previous rounds, this one also heavily featured C++ questions. A lot of focus was placed on Smart Pointers. Additionally, I faced one question that required a Backtracking approach.
ROUND 5: Hiring Manager Round
Having successfully navigated four technical rounds, this round was purely behavioral. The Hiring Manager posed many tricky questions, which I tried to answer as diplomatically as possible. I must admit, I fumbled quite a bit due to panic, but I tried my best to maintain composure.
ROUND 6: Director Round
In stark contrast to the previous rounds, especially Round 2, this was the easiest. I had a very pleasant and insightful discussion with the Director, who seemed like a genuinely nice person – a rare trait to find at such a senior position. After this discussion, I felt quite confident about receiving an offer.
True to my feeling, after two days, the HR informed me that I had successfully cleared all rounds! I was absolutely thrilled to receive the offer.
Interview Questions (12)
Disjoint Set Union Problem
A medium-level question related to the Disjoint Set Union (DSU) data structure.
In-depth Multithreading Concepts
Questions on advanced multithreading concepts, synchronization primitives, and their practical applications.
B+ Tree Concepts
Questions related to the structure, operations (insertion, deletion, search), and use cases of B+ trees, particularly in database indexing.
Bipartite Graph Problem
A problem related to bipartite graphs, potentially involving properties, detection, or algorithms applicable to them.
Virtual Destructors in C++
Explanation of what a virtual destructor is, why it is necessary in polymorphic hierarchies to prevent resource leaks, and how it functions internally.
Diamond Problem in C++
Discussion and resolution of the diamond problem in C++ multiple inheritance, including virtual inheritance.
Connected Components Problem
A problem involving finding connected components in a graph or similar data structure, potentially using algorithms like DFS or BFS.
Design a Garbage Collector in C++ (LLD)
An Low-Level Design (LLD) question focused on designing and outlining the implementation of a garbage collector in C++.
Smart Pointers in C++
In-depth questions on smart pointers (e.g., std::unique_ptr, std::shared_ptr, std::weak_ptr), their uses, benefits, ownership semantics, and potential pitfalls.
Backtracking Problem
A problem requiring a backtracking algorithm for its solution, typically involving exploring all possible paths to find a solution or all solutions.
Behavioral Interview Questions
Various behavioral questions, likely focused on past experiences, conflict resolution, teamwork, handling failure, and problem-solving approaches under pressure.
Director Round Discussion
A discussion-based round with the director, likely covering broader career goals, leadership qualities, company culture fit, and high-level technical insights.