Adobe | SDE2 | Reject

adobe logo
adobe
SDE IIRejected
August 30, 20231 reads

Summary

I recently interviewed for an SDE2 position at Adobe, but unfortunately, I was rejected. The interview process covered various topics including data structures, algorithms, system design, and core Java concepts, and while I performed well in most areas, a slight mess-up in the system design round ultimately led to my rejection.

Full Experience

My interview process at Adobe consisted of three intense rounds.

Round 1 was focused on Data Structures and Algorithms, along with some system design concepts. I was asked to solve the Best Time to Buy and Sell Stock IV problem, which I managed to solve. Another DSA problem was Amount of Time for Binary Tree to Be Infected, for which I discussed both BFS and DFS approaches. Additionally, there was a discussion about the cons of Microservices over Monolith.

Round 2 was a mix of DSA, SQL, Java internals, and design patterns. I tackled questions on implementing a Thread-Safe LRU Cache and finding the Two-Sum in a sorted Doubly Linked List. I also had to demonstrate my SQL knowledge with a query involving various joins like LEFT OUTER JOIN, where I explained the logic, though I wasn't completely sure about the exact syntax. We discussed why Java doesn't allow two parent classes in inheritance and how to implement a thread-safe Singleton Design Pattern.

Round 3 was purely focused on system design. I was asked about the benefits, features, and USPs of Redis. The main challenge was the Low-Level Design (LLD) of Kafka as a message queue. I successfully discussed and implemented Publisher, Subscriber, and Topic classes using the Observer Design Pattern, but I struggled with implementing the offset logic for multiple subscribers of a topic.

Ultimately, the slight mess-up in Round 3 with the Kafka LLD offset logic led to my rejection. The bar at Adobe is indeed quite high these days.

Interview Questions (10)

Q1
Best Time to Buy and Sell Stock IV
Data Structures & AlgorithmsHard

Given an integer array prices where prices[i] is the price of a given stock on the i-th day, and an integer k, find the maximum profit you can achieve. You may complete at most k transactions.

Q2
Amount of Time for Binary Tree to Be Infected
Data Structures & AlgorithmsMedium

You are given the root of a binary tree and an integer start. In one minute, all uninfected nodes that are adjacent to an infected node become infected. Return the minimum number of minutes needed for the entire tree to be infected.

Q3
Disadvantages of Microservices over Monolith
System Design

Discuss the cons of a microservices architecture compared to a monolithic architecture.

Q4
Implement Thread-Safe LRU Cache
System Design

Design and implement a Least Recently Used (LRU) cache that is thread-safe.

Q5
Two-Sum in Sorted Doubly Linked List
Data Structures & Algorithms

Given a sorted doubly linked list, find if there exist two nodes whose sum equals a target value.

Q6
SQL Joins Query
Other

Write an SQL query involving combinations of joins, specifically including LEFT OUTER JOIN.

Q7
Multiple Inheritance in Java
Other

Explain why Java does not support multiple inheritance for classes.

Q8
Implement Thread-Safe Singleton Design Pattern
Other

Design and implement the Singleton design pattern in a thread-safe manner.

Q9
Benefits and Features of Redis
System Design

Discuss the key benefits, features, and unique selling points (USPs) of Redis.

Q10
Low-Level Design of Kafka
System Design

Perform a low-level design of Kafka as a message queue, focusing on Publisher, Subscriber, and Topic classes, potentially using the Observer Design Pattern. Consider implementing offset logic for multiple subscribers.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!