Placement & HR

Adobe Interview Questions for Software Engineers

Adobe is one of the largest US product companies in India, with major engineering centres in Noida and Bengaluru. It hires through an online test followed by several technical rounds on data structures, algorithms and computer science fundamentals, and a final managerial or HR round. These Adobe interview questions cover coding problems, CS fundamentals and HR questions, with model answers and code.

17 questions · Updated

Reading answers is not the same as saying them.Practise Adobe questions out loud and get a score, what you missed and a model answer for each one.
Practise free with AI
Adobe interview process: 1. Online test (Aptitude, CS basics and coding), 2. Technical rounds (Two or three DSA and CS interviews), 3. Director round (Projects, design and depth), 4. HR round (Fit, motivation and offer).
The Adobe interview process, step by step.

How to prepare for the Adobe interview

Coding round (DSA)

Data structures and algorithms problems solved live, usually in 45 minutes each. Explain your approach before you code.

1. Find the contiguous subarray with the largest sum.

Answer flow · 3 steps
  1. Use Kadane's algorithm: keep a running sum and reset it to the current element whenever the running sum becomes negative, since a negative prefix can only reduce future sums.

  2. Track the best sum seen.

  3. This is O(n) time and O(1) space and works when all numbers are negative.

def max_subarray(nums):
    best = cur = nums[0]
    for x in nums[1:]:
        cur = max(x, cur + x)
        best = max(best, cur)
    return best

# max_subarray([-2, 1, -3, 4, -1, 2, 1, -5, 4]) -> 6

2. Sort an array of 0s, 1s and 2s in one pass (Dutch national flag).

Answer flow · 3 steps
  1. Keep three pointers: low (next position for 0), mid (current) and high (next position for 2).

  2. If the current value is 0, swap it to low and move both low and mid forward; if 1, move mid; if 2, swap it to high and move high back without moving mid, since the swapped value is unchecked.

  3. This is O(n) time and O(1) space.

def sort_colors(a):
    low, mid, high = 0, 0, len(a) - 1
    while mid <= high:
        if a[mid] == 0:
            a[low], a[mid] = a[mid], a[low]
            low += 1; mid += 1
        elif a[mid] == 1:
            mid += 1
        else:
            a[mid], a[high] = a[high], a[mid]
            high -= 1

3. Find the next greater element for every element of an array.

Answer flow · 4 steps
  1. Use a monotonic stack of indices whose next greater element is not yet found.

  2. For each element, pop indices from the stack while the current value is greater, setting their answer to the current value, then push the current index.

  3. Remaining indices have no greater element (-1).

  4. Each index is pushed and popped once, so it is O(n).

def next_greater(nums):
    result, stack = [-1] * len(nums), []
    for i, x in enumerate(nums):
        while stack and nums[stack[-1]] < x:
            result[stack.pop()] = x
        stack.append(i)
    return result

4. Find the minimum number of coins needed to make an amount.

Answer flow · 4 steps
  1. Greedy choice fails for some coin systems, so use dynamic programming: dp[a] is the fewest coins for amount a, with dp[0] = 0.

  2. For each amount and each coin no larger than it, dp[a] = min(dp[a], dp[a - coin] + 1).

  3. If dp[amount] is still infinity, return -1.

  4. Time is O(amount × number of coins).

5. Find the longest palindromic substring.

Answer flow · 3 steps
  1. Expand around each centre: every palindrome has a centre at a character (odd length) or between two characters (even length).

  2. For each of the 2n - 1 centres, expand while both ends match and record the longest.

  3. This is O(n²) time and O(1) space, which is usually what interviewers expect; Manacher's algorithm achieves O(n).

6. Find the maximum profit from buying and selling a stock once.

Answer flow · 4 steps
  1. Walk through the prices tracking the lowest price so far; at each day, the best profit from selling today is the price minus that minimum.

  2. Track the maximum.

  3. This is O(n) time.

  4. Follow-ups include unlimited transactions (add every positive daily difference) and at most two transactions (dynamic programming).

7. Reverse the order of words in a sentence.

Answer flow · 4 steps
  1. Split the string into words (ignoring extra spaces), reverse the list and join with single spaces.

  2. To do it in place on a character array, reverse the whole array, then reverse each word.

  3. Both are O(n).

  4. Clarify how to treat leading, trailing and multiple spaces.

System design and technical depth

Design questions and computer science fundamentals. Low-level design for freshers, high-level design for experienced engineers.

8. Design undo and redo for a document editor.

Answer flow · 3 steps
  1. Use the command pattern: every user action is a command object with execute and undo methods.

  2. Keep two stacks: after executing a command, push it onto the undo stack and clear the redo stack; undo pops from the undo stack, calls undo and pushes onto the redo stack; redo does the reverse.

  3. Group small actions such as typing a word into one command, and limit stack size to control memory.

9. What is the difference between processes, threads and how do they communicate?

Answer flow · 3 steps
  1. Processes have separate memory and communicate through inter-process communication such as pipes, sockets, shared memory or message queues.

  2. Threads share their process's memory, so they communicate through shared variables, which requires synchronisation with mutexes, semaphores or condition variables.

  3. Large apps like Photoshop use multiple threads to keep the interface responsive while heavy filters run in the background.

10. What is virtual memory, and what happens on a page fault?

Virtual memory gives each process its own address space, mapped to physical memory through page tables, so processes are isolated and can use more memory than is physically available. When a process accesses a page not in RAM, the CPU raises a page fault; the operating system finds the page on disk, loads it into a free frame (evicting another page if needed, using a policy such as least recently used), updates the page table and resumes the process.

11. How does garbage collection work?

Answer flow · 4 steps
  1. Garbage collectors free memory that is no longer reachable from roots such as stack variables and global references.

  2. Mark-and-sweep marks all reachable objects, then frees the rest.

  3. Generational collectors, used in Java and JavaScript, collect young objects often, since most objects die young, and old objects rarely.

  4. Reference counting, as in Python and Swift, frees objects when their count reaches zero but needs extra handling for cycles.

12. How would you design an image processing pipeline for a web app?

Answer flow · 3 steps
  1. Users upload images to object storage; an event triggers workers from a queue that apply operations such as resizing, filters or AI enhancements, and store the results with metadata.

  2. Use separate queues by priority and job size, GPUs for heavy AI models, caching for repeated operations, and progress updates through websockets.

  3. Keep originals so edits are non-destructive, as Adobe products do.

Managerial and HR round

Questions about your past work and how you behave in a team. Answer with real stories using the STAR method.

13. Why do you want to join Adobe?

Be specific: "Adobe builds tools that millions of creators and businesses rely on, such as Photoshop and Acrobat, and it is now bringing generative AI into them with Firefly. I want to work on software where performance and user experience matter, and Adobe has large engineering teams in India working on core products, not just support."

14. Tell me about your favourite project and its hardest part.

Choose a project you know deeply, explain the architecture, your role and the most difficult technical problem, and how you solved it. Adobe director rounds often go deep, so be ready to explain every design decision and alternative.

15. How do you handle multiple deadlines at once?

Explain how you prioritise by impact and urgency, communicate early when something is at risk, and break work into smaller tasks. Give a short example where you managed several commitments successfully.

16. Where do you see yourself in five years?

Show growth in technical depth and ownership: "I see myself as a strong engineer owning a significant feature area of a product, mentoring new engineers and contributing to design decisions."

17. Do you have any questions for us?

Ask about the team and the product: "What are the biggest technical challenges your team is working on?" or "How does the team decide what to build next?" These show genuine interest in the work.

Ready to test yourself?Pick your topics and level, answer by voice or text, and get instant feedback. Free.
Start a mock interview

Related skill interview questions

HR round, company and bank interview questions

Bank and government exams

Interview questions by field

Company names are trademarks of their respective owners. Interview Ready is an independent practice site and is not affiliated with or endorsed by any company listed here.