Adobe MTS-II Interview Experience ✌🏻
Summary
I completed a multi‑stage interview process for an MTS‑II role at Adobe, cleared all rounds and received an offer with a 30% salary hike.
Full Experience
Role : MTS-II
- Referral from a friend (filled more than 17 applications, span of 2 months) -> HR reached out.
Adobe R0 - Day 0
HR called - Intro, Tech, Why leave current company, What you do daily as a Software Engineer, CTC, Notice Period (is it negotiable ?), YOE (= 3Yrs).
Adobe R1 (DS + Javascript) - Day 7 - with another MTS-II
- Count of subsets with sumk
- Discussed: Brute + DP, coded in C++
- Number of pairs with absolute difference as k
- Discussed: Hashing, coded in C++
- JS I/O question - event-loop, micro/macro queue.
- Discussed: use this if you want to learn: https://allahabadi.dev/blogs/javascript/promise-output-interview-challenges/
Adobe R2 (DS + React) - Day 8 - with CS-II
- Given Full binary tree with A, B. Find sum of even nodes on path from A to B.
- Discussed: Difference in depths, move to parent using p -> (p - 1)/2, sum even value nodes till same.
- array, for each element find if it is almost prime (has exactly 3 divisors) n 1e5
- Discussed: observation based, sqrt(prime)..
- React code Typeahead + debouncing
- Coded: typeahead and implemented debouncing, discussed: caching.
Adobe R3 (JS + React + Machine-Coding + Pub/Sub Pattern) - Day 14 - with SSE
- Basic JS Questions
- Debouncing Vs Throttling.
- React Fibre, New Reconciliation Algorithm
- Discussed: How batch updates happen, priority provision, interrupted provision, startTransition/useTransition.
- Implement adding books to book list from various places in App. Follow up: modify to do the same across multiple monorepos:
- Solution: coded in React and used context API.
- Later, coded EventBus with provision to subscribe and unsubscribe and emit: Pub/Sub Pattern, discussed how Context API is Dependency Injection and Redux is Pub/Sub internally. Pub/Sub vs Observable Pattern.
- Behavioural: AI, daily use, one Claude/skill if want to write what will you write.
Adobe R4 (Behavioural + Frontend System Design) - Day 15 - With EM
- Behavioural: Intro + Past projects in organization, Production issue you faced.
- React System Design - Design a PDF search Box, that loops from one search word to another in entire PDF - again discussed Pub/Sub, context, Redux, Zustand, MobX.
21 days of waiting and on call with HR (other candidates in Pipeline), Position closed, processed to other open position (had to give R4 again to that team Senior Manager.)
Adobe R5 (JS + DS + Behavioural) - Day 36 - With Senior EM
- Behavioural: Tight Timeline, pressure from stakeholder to reduce dev time by half; even after using AI estimations.
- Explained I can horizontally scale (work smart/long hours) or vertically scale (pull more resources from team).
- JS classes, Abstraction, playing with this keyword - tell at least 5 ways to take control of this keyword.
- bind
- apply
- call
- this.drive = this.drive.bind(this) // in constructor
- arrow function
- DS: sorted array, find #occurrences of element x, have to write binary search from scratch, the lower_bound and upper_bound
- Favorite DS: SegmentTree and Trie
- Write TrieNode/Trie to add a word, question around save 26 size of children, used map
- DP is always optimal, I said no, took example of Fibonacci, finding nth Fibonacci using DP is O(n) -> but using Matrix Exponentiation O(log n) - He seemed impressed :)
- Extra 30 mins, discussing around life/Work (chill talk). He said: See you soon, Bye!
Day 37,38,39 (offer proposal, negotiation, offer letter)
Verdict: Selected - 30% Hike.
Interview Questions (6)
Count of Subsets with Sum K
Given an array of integers and an integer k, determine the number of subsets whose elements sum exactly to k.
Number of Pairs with Absolute Difference K
Given an array of integers and a value k, count the number of unordered pairs (i, j) such that |arr[i] - arr[j]| = k.
Sum of Even Nodes on Path Between Two Nodes in a Full Binary Tree
In a full binary tree where nodes are indexed as in a heap (root = 1, left child = 2*i, right child = 2*i+1), given two node indices A and B, find the sum of all even‑valued nodes on the path from A to B.
Identify Almost Prime Numbers (Exactly 3 Divisors)
For each element in an array (size up to 1e5), determine whether it is an "almost prime", i.e., a number that has exactly three distinct divisors.
Count Occurrences Using Binary Search (lower_bound & upper_bound)
Given a sorted array and a target value x, find the number of occurrences of x by implementing lower_bound and upper_bound functions from scratch.
Implement Trie Node and Insert Word
Design a TrieNode class and a Trie data structure that supports inserting a word. The node should store children for 26 lowercase English letters. The candidate used a map for child storage instead of a fixed‑size array.