Adobe CS1 Interview Experience – Honest Feedback Needed
- Posted
- 23 Apr 2026
Summary
I attended three interview rounds for a Computer Scientist 1 role at Adobe, solving most standard problems but struggled with abstraction and large‑scale optimization; I am uncertain whether I am borderline or rejected.
How it went
Hi Everyone,
Had 3 rounds today for a Computer Scientist 1 role at Adobe . Would appreciate honest feedback on how this performance is typically judged.
Round 1:
- Word Ladder (StartWord → EndWord) — discussed BFS approach
- Linked List: add/remove node operations
- One puzzle (solved partially)
Round 2:
-
Insert Delete GetRandom O(1) — implemented using HashMap + ArrayList
-
Peeking Iterator
- I implemented it using an ArrayList
- But the expectation was to extend/use an existing Iterator (missed this abstraction)
Round 3:
-
Intersection of two linked lists — solved
-
Follow-up: Given millions of linked lists (each with millions of nodes), some lists merge into a common tail. Group lists that merge together like:
{ {l1, l2}, {l3}, {l4, l5, l6} }- I understood it as grouping intersecting lists
- But couldn’t derive a scalable/optimal approach
Overall: solved most standard problems, but struggled with abstraction (iterator) and large-scale optimization in the last question.
How would this generally be evaluated — borderline or reject?
Questions asked (5)
- 01
Word Ladder
Data Structures & Algorithms · Medium
Given a start word and an end word, find the length of the shortest transformation sequence such that only one letter can be changed at a time and each intermediate word must exist in the given word list.
- 02
Insert Delete GetRandom O(1)
Data Structures & Algorithms · Medium
Design a data structure that supports insert(val), delete(val), and getRandom() in average O(1) time. insert adds a value if not present, delete removes a value if present, and getRandom returns a random element from the current set.
- 03
Peeking Iterator
Data Structures & Algorithms · Medium
Design an iterator that supports the usual next() and hasNext() methods as well as an additional peek() method that returns the next element without advancing the iterator.
- 04
Intersection of Two Linked Lists
Data Structures & Algorithms · Easy
Given the heads of two singly linked lists, determine the node at which the two lists intersect. Return null if there is no intersection.
- 05
Group Merged Linked Lists
Data Structures & Algorithms · Hard
Given millions of linked lists, each potentially containing millions of nodes, where some lists merge into a common tail, group the lists that share the same tail. For example, produce groups like { {l1, l2}, {l3}, {l4, l5, l6} } where each group contains lists that intersect.