Adobe MTS 2 Interview Experience (FE)
Summary
I interviewed at Adobe for a frontend MTS-2 role, clearing all five rounds and receiving an offer which I accepted due to my 2 years and 10 months of experience.
Full Experience
Background I’m currently a frontend developer at a fintech startup with 2 years and 10 months of experience. I recently interviewed at Adobe for the CS-1 role. I cleared all five rounds with positive feedback, but since CS-1 requires a minimum of 4 years of experience, I was offered the MTS-2 role instead, which I accepted.
Round 1: JavaScript Fundamentals This round focused on JS core concepts like closures, the event loop, async behavior, and context binding. Coding questions:
- Implement a debounce function
- Flatten a deeply nested object using dot notation
- Compose async functions with chaining support (
composeAsync) We also talked about memory leaks in large React apps, garbage collection, and retry strategies for flaky APIs. The feedback was positive.
Round 2: React Implementation I was asked to build a nested comment section with support for replies, like/dislike, auto-saving drafts, and keyboard accessibility. Follow-up questions included:
- Custom hook for infinite scroll with cursor-based pagination
- Optimizing re-renders using
React.memo,useCallback, and virtualization - Handling large lists and conditional rendering for better performance The interviewer appreciated the way I structured and explained the solution.
Round 3: Frontend System Design I had to design a content management dashboard with real-time updates and access control. We discussed:
- Component-level architecture
- Polling vs WebSocket trade-offs
- Caching strategies
- List virtualization
- Handling offline mode and sync conflicts
- Tracking frontend performance using tools like Sentry and Web Vitals Feedback from this round was strong.
Round 4: Manager Round The first part of the round focused on my current work, team dynamics, and expectations from Adobe. DSA questions:
- Search in a 2D sorted matrix
- Follow-up: Replace the found element and restore sorted order with minimal operations
- Hard DP problem: Given a grid with obstacles, find the number of unique paths from top-left to bottom-right, with at most one obstacle allowed to be removed I solved the matrix problem completely and walked through the DP approach verbally for the unique paths question. The manager was satisfied with my reasoning.
Round 5: Director Round We had a casual discussion about my projects, interests, and why I wanted to join Adobe. DSA problem: Reverse nodes in k-group in a linked list Follow-up: Modify to solve using iterative method with O(1) space Bonus DP question (asked verbally): Given a string, find the minimum number of cuts needed to make all substrings palindromes (Palindrome Partitioning II) I gave a detailed breakdown of the approach using bottom-up DP and space optimizations. The director appreciated the clarity.
Final Outcome All rounds were positive. Since I had just under 3 years of experience, Adobe moved ahead with the MTS-2 offer instead of CS-1. I accepted it as the team, scope of work, and growth path felt right.
Interview Questions (12)
Implement a debounce function.
Flatten a deeply nested object using dot notation.
Compose async functions with chaining support (composeAsync).
Build a nested comment section with support for replies, like/dislike, auto-saving drafts, and keyboard accessibility.
Design or discuss a custom hook for infinite scroll with cursor-based pagination.
Design a content management dashboard with real-time updates and access control.
Search for an element in a 2D sorted matrix.
Follow-up to 'Search in a 2D Sorted Matrix': Replace the found element and restore sorted order with minimal operations.
Given a grid with obstacles, find the number of unique paths from top-left to bottom-right, with at most one obstacle allowed to be removed.
Reverse nodes in k-group in a linked list.
Follow-up to 'Reverse Nodes in k-Group in Linked List': Modify to solve using iterative method with O(1) space.
Given a string, find the minimum number of cuts needed to make all substrings palindromes.