Skip to main content

Adobe Interview Questions

Review this list of 60 Adobe interview questions and answers verified by hiring managers and candidates.
  • Adobe logoAsked at Adobe 
    43 answers
    Video answer for 'Edit distance'
    +35

    "from collections import deque def updateword(words, startword, end_word): if end_word not in words: return None # Early exit if end_word is not in the dictionary queue = deque([(start_word, 0)]) # (word, steps) visited = set([start_word]) # Keep track of visited words while queue: word, steps = queue.popleft() if word == end_word: return steps # Found the target word, return steps for i in range(len(word)): "

    叶 路. - "from collections import deque def updateword(words, startword, end_word): if end_word not in words: return None # Early exit if end_word is not in the dictionary queue = deque([(start_word, 0)]) # (word, steps) visited = set([start_word]) # Keep track of visited words while queue: word, steps = queue.popleft() if word == end_word: return steps # Found the target word, return steps for i in range(len(word)): "See full answer

    Software Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    44 answers
    +39

    "Was this for an entry level engineer role?"

    Yeshwanth D. - "Was this for an entry level engineer role?"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    8 answers
    +5

    "One of the most challenging situations was joining a new startup to realize that they did not figure out their core product and that customers were dissatisfied and leaving in droves. I worked together with the leaders to understand the core issue and the reasons that the customers were leaving. Then together with the team, we set out to map out those core issues and the gaps that we had in our product. We then worked towards designing a new solution to address those gaps and build an MVP. W"

    WaterBuffalo - "One of the most challenging situations was joining a new startup to realize that they did not figure out their core product and that customers were dissatisfied and leaving in droves. I worked together with the leaders to understand the core issue and the reasons that the customers were leaving. Then together with the team, we set out to map out those core issues and the gaps that we had in our product. We then worked towards designing a new solution to address those gaps and build an MVP. W"See full answer

    Product Manager
    Behavioral
    +5 more
  • Adobe logoAsked at Adobe 
    60 answers
    Video answer for 'What is the project you are most proud of?'
    +53

    "I was working for my friend building streams at venues across the Chicago land area for FGC (fighting game tournaments), I adjusted and engineered his equipment to be set up permanently that's until covid came around at least. I used OBS to give visual appearances to stream watchers. So we're talking about subscribe, follow, and donation notifications and things of that nature for viewers to know they contributed in one of those ways. I set up proper sign-up scheduling for participants to lock t"

    Ayinde B. - "I was working for my friend building streams at venues across the Chicago land area for FGC (fighting game tournaments), I adjusted and engineered his equipment to be set up permanently that's until covid came around at least. I used OBS to give visual appearances to stream watchers. So we're talking about subscribe, follow, and donation notifications and things of that nature for viewers to know they contributed in one of those ways. I set up proper sign-up scheduling for participants to lock t"See full answer

    Software Engineer
    Behavioral
    +13 more
  • Adobe logoAsked at Adobe 
    48 answers
    +41

    "public static boolean isPalindrome(String str){ boolean flag = true; int len = str.length()-1; int j = len; for(int i=0;i<=len/2;i++){ if(str.charAt(i)!=str.charAt(j--)){ flag = false; break; } } return flag; }"

    Sravanthi M. - "public static boolean isPalindrome(String str){ boolean flag = true; int len = str.length()-1; int j = len; for(int i=0;i<=len/2;i++){ if(str.charAt(i)!=str.charAt(j--)){ flag = false; break; } } return flag; }"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Adobe logoAsked at Adobe 
    70 answers
    +60

    "I follow a variation of the RICE framework when prioritizing how I ship product features. I start by looking at: Reach: Because the customer segmentation across our product portfolio is so similar, I tend to hold a lot of weight on product features that will maximize our customer reach with a minimal LOE. Impact: After establishing which customer segments will benefit from the product feature, I determine the urgency and estimated impact on each customer segment based on customer i"

    Ashley C. - "I follow a variation of the RICE framework when prioritizing how I ship product features. I start by looking at: Reach: Because the customer segmentation across our product portfolio is so similar, I tend to hold a lot of weight on product features that will maximize our customer reach with a minimal LOE. Impact: After establishing which customer segments will benefit from the product feature, I determine the urgency and estimated impact on each customer segment based on customer i"See full answer

    Product Manager
    Behavioral
    +10 more
  • Adobe logoAsked at Adobe 
    31 answers
    +26

    "We can use dictionary to store cache items so that our read / write operations will be O(1). Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1) Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"

    Alfred O. - "We can use dictionary to store cache items so that our read / write operations will be O(1). Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1) Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"See full answer

    Software Engineer
    Data Structures & Algorithms
    +6 more
  • Adobe logoAsked at Adobe 
    20 answers
    Video answer for 'How would you improve Google Maps?'
    +17

    "Start by explaining your understanding of Google Maps. It is a free web/mobile-based feature that allows users to navigate from Point A to B, trip planning locate restaurants, hair salons, other points of interest around a point on the map Businesses use to sponsor advertisements based on Map search string. Clarify what does improvement means, "Improve" is a loaded term - what do we mean by improvement: increased ad revenue, improve the quality of the results, increase downloads, imp"

    Rachita D. - "Start by explaining your understanding of Google Maps. It is a free web/mobile-based feature that allows users to navigate from Point A to B, trip planning locate restaurants, hair salons, other points of interest around a point on the map Businesses use to sponsor advertisements based on Map search string. Clarify what does improvement means, "Improve" is a loaded term - what do we mean by improvement: increased ad revenue, improve the quality of the results, increase downloads, imp"See full answer

    Product Manager
    Product Design
  • Adobe logoAsked at Adobe 
    7 answers
    +4

    "One of the biggest risks I have taken was in a recent product, where we developed a new feature and released the feature externally without QA sign-off. Feature - Interactive Travel Itinerary Maps We had about ten days from the time we decided to include this new feature in the external launch. Usually, the biggest chunk of time in each release cycle was the sign-off from an external QA team. We fast-tracked the dev effort and completed the development of the feature in five days. Unfortunately,"

    R S. - "One of the biggest risks I have taken was in a recent product, where we developed a new feature and released the feature externally without QA sign-off. Feature - Interactive Travel Itinerary Maps We had about ten days from the time we decided to include this new feature in the external launch. Usually, the biggest chunk of time in each release cycle was the sign-off from an external QA team. We fast-tracked the dev effort and completed the development of the feature in five days. Unfortunately,"See full answer

    Product Manager
    Behavioral
    +1 more
  • Adobe logoAsked at Adobe 
    16 answers
    Video answer for 'Given an integer array nums and an integer k, return true if nums has a subarray of at least two elements whose sum is a multiple of k.'
    +12

    "Would be better to adjust resolution in the video player directly."

    Anonymous Prawn - "Would be better to adjust resolution in the video player directly."See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    4 answers
    +1

    " Compare alternate houses i.e for each house starting from the third, calculate the maximum money that can be stolen up to that house by choosing between: Skipping the current house and taking the maximum money stolen up to the previous house. Robbing the current house and adding its value to the maximum money stolen up to the house two steps back. package main import ( "fmt" ) // rob function calculates the maximum money a robber can steal func maxRob(nums []int) int { ln"

    VContaineers - " Compare alternate houses i.e for each house starting from the third, calculate the maximum money that can be stolen up to that house by choosing between: Skipping the current house and taking the maximum money stolen up to the previous house. Robbing the current house and adding its value to the maximum money stolen up to the house two steps back. package main import ( "fmt" ) // rob function calculates the maximum money a robber can steal func maxRob(nums []int) int { ln"See full answer

    Data Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    12 answers
    +9

    "Interviewer : How would you reduce ride cancellation on Uber ? Shailesh : Okay before I jump onto the solution, I would like to clarify some points for better understanding. So ride can be cancelled from the both the parties rider and the driver ? So which side are we talking about ? Interviewer : we are seeing more cancellation from diver side. Shailesh : From how long we are seeing this trend ? Interviewer : you can say from an year. Shailesh : Okay, also are we seeing these cancellations from"

    Anonymous Muskox - "Interviewer : How would you reduce ride cancellation on Uber ? Shailesh : Okay before I jump onto the solution, I would like to clarify some points for better understanding. So ride can be cancelled from the both the parties rider and the driver ? So which side are we talking about ? Interviewer : we are seeing more cancellation from diver side. Shailesh : From how long we are seeing this trend ? Interviewer : you can say from an year. Shailesh : Okay, also are we seeing these cancellations from"See full answer

    Product Manager
    Analytical
    +2 more
  • Adobe logoAsked at Adobe 
    3 answers

    "I started by reframing Adobe’s mission in my own words: to build creative and productivity tools that make everyday customer workflows easier. Then, I defined the goal: improving retention for the Scan app, as users often drop off to competitors such as Genius Scan or the native iOS Scanner after initial use. To better understand user behavior, I segmented users into three groups: Power users: Professionals such as lawyers or students who scan frequently. Low-engagement users: Inactive for 9"

    Eshaa D. - "I started by reframing Adobe’s mission in my own words: to build creative and productivity tools that make everyday customer workflows easier. Then, I defined the goal: improving retention for the Scan app, as users often drop off to competitors such as Genius Scan or the native iOS Scanner after initial use. To better understand user behavior, I segmented users into three groups: Power users: Professionals such as lawyers or students who scan frequently. Low-engagement users: Inactive for 9"See full answer

    Product Manager
    Product Design
    +1 more
  • Adobe logoAsked at Adobe 
    1 answer

    "Use a representative of each, e.g. sort the string and add it to the value of a hashmap> where we put all the words that belong to the same anagram together."

    Gaston B. - "Use a representative of each, e.g. sort the string and add it to the value of a hashmap> where we put all the words that belong to the same anagram together."See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    34 answers
    +28

    "#inplace reversal without inbuilt functions def reverseString(s): chars = list(s) l, r = 0, len(s)-1 while l < r: chars[l],chars[r] = chars[r],chars[l] l += 1 r -= 1 reversed = "".join(chars) return reversed "

    Anonymous Possum - "#inplace reversal without inbuilt functions def reverseString(s): chars = list(s) l, r = 0, len(s)-1 while l < r: chars[l],chars[r] = chars[r],chars[l] l += 1 r -= 1 reversed = "".join(chars) return reversed "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    4 answers
    +1

    "Great question! Last year, we were working on a critical project to develop a real-time risk analytics platform. This platform was designed to provide our traders with instantaneous risk metrics, allowing them to make informed decisions in a fast-paced trading environment. Midway through the project, we faced a significant issue: our chosen data processing framework was not performing as expected under the high data throughput required by our trading algorithms. This was causing unacceptable lat"

    Scott S. - "Great question! Last year, we were working on a critical project to develop a real-time risk analytics platform. This platform was designed to provide our traders with instantaneous risk metrics, allowing them to make informed decisions in a fast-paced trading environment. Midway through the project, we faced a significant issue: our chosen data processing framework was not performing as expected under the high data throughput required by our trading algorithms. This was causing unacceptable lat"See full answer

    Product Manager
    Behavioral
  • Adobe logoAsked at Adobe 
    13 answers
    Video answer for 'Design a typeahead box for a search engine.'
    +5

    "It would have been more interesting to focus on the system design rather than the Trie DS, Interviewee could have just mentioned the Trie and passed to things more important. Interviewee should have focused on the factors on which he wants to scale the API servers, popularity of the query parts ? region may be ? A hash of many factors ? Caches should have definitely be discussed, Cache eviction policies, Cache invalidation managements... Interviewee should have mentioned which kind of API pro"

    Aymen D. - "It would have been more interesting to focus on the system design rather than the Trie DS, Interviewee could have just mentioned the Trie and passed to things more important. Interviewee should have focused on the factors on which he wants to scale the API servers, popularity of the query parts ? region may be ? A hash of many factors ? Caches should have definitely be discussed, Cache eviction policies, Cache invalidation managements... Interviewee should have mentioned which kind of API pro"See full answer

    Software Engineer
    System Design
    +1 more
  • Adobe logoAsked at Adobe 
    10 answers
    Video answer for 'Explain how to find a target sum in an array.'
    +6

    "// C++ program to print the count of // subsets with sum equal to the given value X #include using namespace std; // Recursive function to return the count // of subsets with sum equal to the given value int subsetSum(int arr[], int n, int i, int sum, int count) { // The recursion is stopped at N-th level // where all the subsets of the given array // have been checked if (i == n) { // Incrementing the count if sum is // equal to 0 and returning the count if (sum == 0)"

    Ajay U. - "// C++ program to print the count of // subsets with sum equal to the given value X #include using namespace std; // Recursive function to return the count // of subsets with sum equal to the given value int subsetSum(int arr[], int n, int i, int sum, int count) { // The recursion is stopped at N-th level // where all the subsets of the given array // have been checked if (i == n) { // Incrementing the count if sum is // equal to 0 and returning the count if (sum == 0)"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Adobe logoAsked at Adobe 
    2 answers

    "Here if we breakdown each dependency [A,B] , We need to check if there a cycle in Dependency Graph. If there is cycle installation is not possible, If there is no cycle installation is possible. Steps : 1: Build the graph 2: Perform DFS based Cycle Detection 3: Check each package if those packages have cycle or not."

    Venkata rakesh M. - "Here if we breakdown each dependency [A,B] , We need to check if there a cycle in Dependency Graph. If there is cycle installation is not possible, If there is no cycle installation is possible. Steps : 1: Build the graph 2: Perform DFS based Cycle Detection 3: Check each package if those packages have cycle or not."See full answer

    Frontend Engineer
    Data Structures & Algorithms
    +1 more
  • Adobe logoAsked at Adobe 
    69 answers
    Video answer for 'Move all zeros to the end of an array.'
    +64

    "Initialize left pointer: Set a left pointer left to 0. Iterate through the array: Iterate through the array from left to right. If the current element is not 0, swap it with the element at the left pointer and increment left. Time complexity: O(n). The loop iterates through the entire array once, making it linear time. Space complexity: O(1). The algorithm operates in-place, modifying the input array directly without using additional data structures. "

    Avon T. - "Initialize left pointer: Set a left pointer left to 0. Iterate through the array: Iterate through the array from left to right. If the current element is not 0, swap it with the element at the left pointer and increment left. Time complexity: O(n). The loop iterates through the entire array once, making it linear time. Space complexity: O(1). The algorithm operates in-place, modifying the input array directly without using additional data structures. "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
Showing 1-20 of 60
Exponent

Get updates in your inbox with the latest tips, job listings, and more.

Follow Us

Products
Courses
Interview Questions
Interview Experiences
Popular articles
Guides
Coaching
For Partners
Company
Exponent © 2026
Terms of Service | Privacy