Adobe Interview Experience (MTS-2)
Summary
I interviewed for an MTS-2 role at Adobe after receiving a referral. The process included rounds on DSA, LLD, and system design, where I encountered various algorithmic and design challenges, but ultimately received a rejection.
Full Experience
Round 1: Data Structures & Algorithms
I was presented with two questions. The first problem asked me to minimize the sum of array elements after performing a division operation K times. I solved this LeetCode easy question using a PriorityQueue, achieving a time complexity of O(N log N) and space complexity of O(N).
The second question was a slight variation of the classic Knapsack Problem, which I approached with a 2D DP solution and some optimizations, resulting in O(N) time and O(1) space complexity.
Round 2: Low-Level Design (LLD)
In this round, I was asked to design a configuration management service, detailing the class designs, attributes, methods, and appropriate design patterns.
Round 3: Low-Level Design (LLD)
This round also focused on LLD and included two questions. The first was to design an auto-complete search system that predicts Top K elements based on search frequency. I tackled this problem using a Trie data structure with some variations, identifying it as a LeetCode hard question. The second question involved designing the Java implementations for Linux commands like mkdir, ls, and delete for files and directories. I used a Tree Data Structure for this, but unfortunately, I could only complete one function within the given time.
Despite my efforts, the final verdict was a rejection.
Interview Questions (4)
Minimize Array Sum After K Division Operations
Given an array of integers, you can perform the following sequence of operations K times: 1. Fetch an element from the array. 2. Divide it by 2 (ceil division). 3. Put the element back into the array. The goal is to minimize the sum of all elements finally in the array after K operations.
Design Configuration Management Service
Design a configuration management service. I needed to share the class designs, attributes, methods, and design patterns.
Design Auto-Complete Search System with Top K Predictions
Design an auto-complete search system with Top K elements as predictions. The Top-K should be based on the frequency of search.
Design Linux File System Commands in Java
Design the Java implementations for Linux commands related to file and directory creation, navigation, and deletion (e.g., mkdir, ls, delete).