Adobe | CS2 | Noida, India | Oct 2021 | [Offer]

adobe logo
adobe
Noida, India9 yearsOffer
November 19, 20211 reads

Summary

I successfully interviewed for a CS2 role at Adobe in Noida, India, covering data structures, algorithms, low-level design, and C++ concepts across multiple rounds, ultimately receiving an offer.

Full Experience

First Round (~1Hr)

I was asked to code standard LeetCode questions with a bit of follow-ups and a code walkthrough. The problems included a LeetCode hard question similar to reversing nodes in a group of K, Course Schedule, and LRU Cache.

Second Round (~50Mins)

In this round, I was grilled on various C++ concepts. The primary focus was on Multi-threading (mutex, condition variable), Smart Pointers, lambda internals, and move semantics. I was also asked to code a multi-threaded program and answer a question based on a priority queue.

Third Round - Low Level Design (~1.5Hr)

This round was with the hiring manager. My task was to design a file explorer within an IDE. I was probed on various design patterns relevant to the problem and asked to write skeleton classes, ensuring the right abstraction. Behavioral questions were also included in this round.

Result & Final Round

I received positive feedback and was scheduled for a director round. The final round consisted of behavioral questions, a discussion on my current work and accomplishments, and some open-ended technical questions. I received an offer.

Interview Questions (6)

Q1
Reverse Nodes in k-Group
Data Structures & AlgorithmsHard

Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.

Q2
Course Schedule
Data Structures & AlgorithmsMedium

There are a total of numCourses courses you have to take, labeled from 0 to numCourses - 1. You are given an array prerequisites where prerequisites[i] = [ai, bi] indicates that you must take course bi first if you want to take course ai. Return true if you can finish all courses. Otherwise, return false.

Q3
LRU Cache
Data Structures & AlgorithmsMedium

Design a data structure that follows the constraints of a Least Recently Used (LRU) cache. Implement the LRUCache class: LRUCache(int capacity) initializes the LRU cache with positive size capacity. int get(int key) Return the value of the key if the key exists, otherwise return -1. void put(int key, int value) Update the value of the key if the key exists. Otherwise, add the key-value pair to the cache. If the number of keys exceeds the capacity from this operation, evict the least recently used key.

Q4
Multi-threaded Program Implementation
Data Structures & Algorithms

I was asked to implement a multi-threaded program, likely involving concepts such as mutexes, condition variables, and smart pointers for synchronization and resource management.

Q5
Design File Explorer in IDE
System DesignHard

I was tasked with designing a file explorer functionality within an Integrated Development Environment (IDE). This involved discussing various design patterns, suitable abstractions, and outlining skeleton classes for the implementation.

Q6
Behavioral Questions
Behavioral

I was asked a series of behavioral questions, including discussions on my current work and accomplishments. These questions aimed to assess my soft skills, past experiences, and how I handle various situations.

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!