Adobe | CS1 | Reject
Summary
I recently interviewed at Adobe for a CS1 role, an experience that unfortunately concluded with a rejection. The interview process was comprehensive, spanning multiple technical rounds focused on data structures, algorithms, system design, and core Java concepts.
Full Experience
I recently had an interview experience with Adobe for a CS1 role. I have 4 years of experience and was interviewing for their ALM Org. The process involved three distinct rounds, each testing different facets of my technical and behavioral skills.
Round 1 (Technical)
This round focused on data structures and algorithms. I was presented with a problem related to identifying active users within a sliding time window from a continuous stream of application logs. I had to implement a function that would report the number of unique users active in the last 5 minutes based on their event timestamps.Round 2 (Technical)
The second technical round was quite diverse. It started with a LeetCode problem: 'Most Stones Removed with Same Row or Column'. Following that, we delved into core Java concepts. Questions included handling concurrency when multiple threads modify the same data structure (like List, Array, or Map), and the differences between shallow and deep copies of objects, requiring examples. The discussion then shifted to SQL and database architecture. I was asked about ways to establish connections to an SQL server, how to identify and improve slow-running SQL queries, and details about JDBC, including writing code for its usage. We also discussed SQL database consistency, master-slave architecture, and data isolation.Round 3 (System Design & Behavioral)
The final round was a mix of system design and behavioral questions. I was asked to describe my most complex project, draw its High-Level Design (HLD), and answer follow-up questions. They probed into situations where I might have had a design conflict with a senior SDE and how I resolved it. We also discussed my approach to designing solutions. Finally, the behavioral part covered standard questions like 'Why Adobe?' and 'Why are you looking for a change?'. A significant portion of this round was dedicated to designing the detailed schema for a 'BookMyShow' type application, including navigating the entire flow of finding a movie ticket and outlining the necessary table schemas step-by-step.Interview Questions (10)
You are building an analytics component that processes a continuous stream of application logs in real time. Each log record represents a user activity event within the system.
Input:
You receive a stream of log entries, each represented as a tuple: (timestamp, userId, eventType)
where:
timestamp — an integer representing the event time in seconds (increasing over time).
userId — a string or integer identifying the user who performed the event.
eventType — a string describing the type of event (e.g., 'login', 'view', 'click', etc.).
Task:
Implement a function that processes this event stream and, at any given point in time, reports the number of unique users active in the last 5 minutes.
A user is considered active if they have generated at least one event within the past 5 minutes relative to the current event’s timestamp.
Discussion on handling multiple threads attempting to modify the same data structure (list/array/map) concurrently in Java, and strategies to address potential concurrency issues.
Explain the concepts of shallow and deep copy of objects in Java, providing illustrative examples for each.
This section covered various aspects of SQL and database architecture, including:
- Ways of establishing a connection to an SQL server.
- Methods to identify and improve slow-running SQL queries.
- Details about JDBC, including writing code examples.
- Discussion on SQL database consistency.
- Master-slave architecture and consistency models.
- Concepts of data isolation.
Describe your most complex project, including drawing its High-Level Design (HLD) and answering subsequent questions about the design.
Describe a situation where you had a conflict in design with a senior software development engineer and how you handled it.
Discuss the key considerations and principles you apply when designing a technical approach or solution.
Explain your motivations for wanting to join Adobe and the reasons behind seeking a career change.
Detailed schema design for a 'BookMyShow' type application, covering the entire flow of finding and booking a movie ticket, along with the step-by-step table schemas required at each stage.