Backend Engineer | Zenskar
JP Morgan Chase | SDE 3 | YOE 3.4
Microsoft SDE - 2 | Interview Experience | Status Pending
eBay || SWE3 Interview Experience || Bangalore
Bloomberg | Interview Experience | Senior Software Engineer | NYC | Nov 2025
Adobe | SDE2 | Reject
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)
Discuss the cons of a microservices architecture compared to a monolithic architecture.
Design and implement a Least Recently Used (LRU) cache that is thread-safe.
Given a sorted doubly linked list, find if there exist two nodes whose sum equals a target value.
Write an SQL query involving combinations of joins, specifically including LEFT OUTER JOIN.
Explain why Java does not support multiple inheritance for classes.
Design and implement the Singleton design pattern in a thread-safe manner.
Discuss the key benefits, features, and unique selling points (USPs) of Redis.
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.