Adobe | CS1 | Interview Experience | 4.8 Years | Rejected
Summary
I applied for a CS1 role at Adobe via employee referral and underwent a 4-5 week interview process comprising technical, system design, and hiring manager rounds, ultimately resulting in a rejection.
Full Experience
I applied for a CS1 position at Adobe through an employee referral and received an interview call within two weeks. The entire process lasted about 4-5 weeks.
Round 1: Technical
This round focused on data structures and algorithms. I was asked to solve two LeetCode problems: Group Anagrams and Merge Intervals.
Round 2: Technical
Another technical round where I tackled the Median of Two Sorted Arrays problem.
Round 3: System Design
The focus here was on the Low-Level Design (LLD) of a client-side rate limiting library. The interviewer expected me to code a rate-limiting algorithm. I designed and explained a complete, thread-safe solution with a driver class demonstrating client ID-based rate limiting. We then discussed potential test cases for this code, including how to test threaded clients here, etc.
Round 4: Hiring Manager
This round started with extensive discussions about my previous work experience. The interviewer asked some quick questions on concurrency, binary semaphores, and mutexes.
Then, an open-ended question about linear search in an array was posed. I was asked to write an algorithm to search an element in an unsorted array, then modify the loop to be unbounded, and finally, address potential issues without using try/catch blocks. I explained that an unbounded loop would eventually lead to memory issues like stack overflow or integer overflow. I suggested increasing JVM memory or breaking the loop under certain conditions, but acknowledged that the linear search algorithm itself would eventually fail for some test cases. I attempted to use some things like bit manipulations or 'hacks' to control the infinite loop by decrementing the loop variable, but these weren't what the interviewer was looking for. I realized I wasn't clear on their expectations, which I believe was a turning point. Later, typical operational questions followed, such as how I handle conflict, what my manager would say about me, and how I react to not receiving credit for my work. I answered these confidently.
Verdict: Rejected!
Interview Questions (7)
I was tasked with the Low-Level Design (LLD) of a client-side rate limiting library. The interviewer expected me to write and explain the complete, thread-safe code for a rate limiting algorithm with a driver class demonstrating client ID-based rate limiting. We also discussed potential test cases for this code, including how to test threaded clients.
I was given an open-ended question on linear search in an array. First, I had to write an algorithm to search an element in an unsorted array. Then, I was asked to make the loop in this algorithm unbounded. Finally, the challenge was to solve potential issues/errors in this code without using try/catch blocks. The interviewer's main focus was on how try/catch works internally and how to control the unbounded loop effectively without explicit error handling.
I was asked quick questions about concurrency, binary semaphores, and mutexes.
I was asked typical operational questions: how I tackle conflict, what my manager would say about me if the interviewer called them, and how I would react if I didn't get enough credit for my work.