Adobe Interview Questions:
Data Structures and Algorithms:
Length of the longest Fibonacci subsequence.
Trapping rainwater problem.
Word break problem.
Swap linked list nodes in pairs.
Mountain array problem (check LeetCode).
Move all zeros to the end of an array while maintaining the relative order of non-zero elements.
Given an array, find a pair whose sum results in a given number.
Valid binary search tree problem.
Find the second smallest and second largest elements in an array.
Find the first non-repeating element in an array.
Given a target value, write a function that returns True if any two numbers in the array add up to the target value.
Check if a bit string is divisible by 3.
Trie and backtracking questions.
Product of all numbers in an array except the number at a given index.
System Design and Programming Tasks:
Design a queue-like data structure that moves the most recently used element to the end (MRUQueue).
Design an LRU cache.
Basics of system design: Design a URL shortener.
Design a web scraping service.
Design a system for recognizing illegal content in uploaded files.
System design for scaling (e.g., how to sort a large file that can't be loaded into memory).
Object-Oriented Programming:
Explain polymorphism.
What is a singleton model?
What are smart pointers (C++)?
What is a virtual table in OOP?
Operating Systems & Multithreading:
Explain the difference between threads and processes.
What are the different scheduling processes in operating systems? Compare them.
General multithreading questions and how to handle thread safety.
How does memory management work in operating systems?
Concurrency and Locking Mechanisms:
Questions on threads, locks, and data race conditions.
Handling concurrency in real-world systems and multithreaded applications.
Git & Version Control:
Git commands used regularly.
What is git rebase?
Differences between git merge and git rebase.
General Computer Science Knowledge:
Topics: Data structures (stack, heap, hashmaps), sorting algorithms, functional programming (Java, Kotlin).
Discuss current project details, including Spring Boot and REST API design.
Competitive coding questions related to DSA and system design.
Memory Management:
Explain heap vs stack memory.
Memory management concepts in operating systems.
How to manage large data processing within memory constraints.
Behavioral Questions:
Can you give an example of when you had to say no to someone in management?
Describe a time you disagreed with a co-worker and how you resolved it.
Can you provide an example of mentoring other developers?
How did you deal with unexpected changes to deadlines or project scope?
What is something you've worked on that you're proud of?
Technical Challenges & Puzzles:
Reverse a string and reverse a sentence.
Solve a puzzle with mislabeled jars containing red, blue, and mixed balls.
Given a start and end bound, return a list of all integers for which the digits are factors of the number.
Write a function to find the nth Fibonacci number, and analyze the time and space complexity.
General Software Development & Tools:
Explain load testing vs stress testing.
How would you troubleshoot a printer that is not responding to print commands (subdivide the system into components: PC, printer, and connection)?
System Performance & Troubleshooting:
How would you handle a situation where a customer is experiencing slow data retrieval?
Describe the most challenging scalable problem you've solved.