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

adobe logo
adobe
· Noida, India· 9y exp· Offer
November 19, 2021 · 56 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)

1.

Reverse Nodes in k-Group

Data Structures & Algorithms·Hard

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

2.

Course Schedule

Data Structures & Algorithms·Medium

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.

3.

LRU Cache

Data Structures & Algorithms·Medium

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.

4.

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.

5.

Design File Explorer in IDE

System Design·Hard

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.

6.

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!