Skip to main content

Top Software Engineer Interview Questions

Review this list of 715 Software Engineer interview questions and answers verified by hiring managers and candidates.
  • Amazon logoAsked at Amazon 
    Add answer
    Software Engineer
    System Design
  • Amazon logoAsked at Amazon 
    1 answer

    "class Node: def init(self, value): self.value = value self.children = [] def inorder_traversal(root): if not root: return [] result = [] n = len(root.children) for i in range(n): result.extend(inorder_traversal(root.children[i])) if i == n // 2: result.append(root.value) if n == 0: result.append(root.value) return result Example usage: root = Node(1) child1 = Node(2) chil"

    Teddy Y. - "class Node: def init(self, value): self.value = value self.children = [] def inorder_traversal(root): if not root: return [] result = [] n = len(root.children) for i in range(n): result.extend(inorder_traversal(root.children[i])) if i == n // 2: result.append(root.value) if n == 0: result.append(root.value) return result Example usage: root = Node(1) child1 = Node(2) chil"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Robinhood logoAsked at Robinhood 
    1 answer

    "How would you improve Robinhood? Robinhood. I started to use Robinhood when I first got a job after grad school. I started using it as a tool to do no fees investment. Recently this year, I began to use their high-yield saving account to make money on my non-investment funds. Robinhood's mission is to democratize finance for all. To make investing accessible, friendly, and understandable to newcomers and experts alike. How would I improve it? Robinhood makes money from a few different channel"

    Matan S. - "How would you improve Robinhood? Robinhood. I started to use Robinhood when I first got a job after grad school. I started using it as a tool to do no fees investment. Recently this year, I began to use their high-yield saving account to make money on my non-investment funds. Robinhood's mission is to democratize finance for all. To make investing accessible, friendly, and understandable to newcomers and experts alike. How would I improve it? Robinhood makes money from a few different channel"See full answer

    Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 
    Add answer
    Software Engineer
    System Design
  • LinkedIn logoAsked at LinkedIn 
    Add answer
    Software Engineer
    System Design
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Meta logoAsked at Meta 
    1 answer

    "I first clarified what he needed for the leaderboard meaning did he need a gaming leaderboard system, a stock market leaderboard system where the trades placed would be ranked in terms of values or a coding platform leaderboard where the users are ranked as per the points earned by solving the problem? He answered that he wanted a multipurpose leaderboard system He was specifically interested in the design of the api part Explained him that assuming we had a flask api there would be a get re"

    GalacticInterviewer - "I first clarified what he needed for the leaderboard meaning did he need a gaming leaderboard system, a stock market leaderboard system where the trades placed would be ranked in terms of values or a coding platform leaderboard where the users are ranked as per the points earned by solving the problem? He answered that he wanted a multipurpose leaderboard system He was specifically interested in the design of the api part Explained him that assuming we had a flask api there would be a get re"See full answer

    Software Engineer
    System Design
  • Microsoft logoAsked at Microsoft 
    Add answer
    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Anthropic logoAsked at Anthropic 
    Add answer
    Software Engineer
    Artificial Intelligence
    +5 more
  • +8

    "Definitely nice to think of this without memorization, but there is a well known algorithm for this problem, which is the Levenshtein Distance. Lev(a,b) = len(a) if len(b) == 0 = len(b) if len(a) == 0 = lev(a[1:], b[1:] if a[0] == b[0] = 1 + min (lev(a, b[1:]), lev(a[1:], b), lev(a[1:], b[1:])) https://en.wikipedia.org/wiki/Levenshtein_distance I'm sure some optimizations could be made with heuristic."

    Nicholas S. - "Definitely nice to think of this without memorization, but there is a well known algorithm for this problem, which is the Levenshtein Distance. Lev(a,b) = len(a) if len(b) == 0 = len(b) if len(a) == 0 = lev(a[1:], b[1:] if a[0] == b[0] = 1 + min (lev(a, b[1:]), lev(a[1:], b), lev(a[1:], b[1:])) https://en.wikipedia.org/wiki/Levenshtein_distance I'm sure some optimizations could be made with heuristic."See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Robinhood logoAsked at Robinhood 
    1 answer

    "We can start by considering the key components: waiters, tables and customers. We'll need a database to store information about waiters, tables and customers, each waiter can have a unique ID and we can track the. number of tables they are servicng. Tables can have attributes like table number, capacity, and current status. Customers can be tracked by their arrival time and party size. we can calculat ethe expected waiting time bu considering the average time a table is occupied and the number o"

    Brandon C. - "We can start by considering the key components: waiters, tables and customers. We'll need a database to store information about waiters, tables and customers, each waiter can have a unique ID and we can track the. number of tables they are servicng. Tables can have attributes like table number, capacity, and current status. Customers can be tracked by their arrival time and party size. we can calculat ethe expected waiting time bu considering the average time a table is occupied and the number o"See full answer

    Software Engineer
    Product Design
    +1 more
  • Apple logoAsked at Apple 
    2 answers

    "Code reviews, automated linting, unit tests, integration tests, validation tests"

    Anonymous Jaguar - "Code reviews, automated linting, unit tests, integration tests, validation tests"See full answer

    Software Engineer
    Behavioral
  • Anthropic logoAsked at Anthropic 
    Add answer
    Software Engineer
    Artificial Intelligence
    +1 more
  • DoorDash logoAsked at DoorDash 
    2 answers

    "Binary Search on the array and after than compare the numbers at low and the high pointers whichever is closest is the answer. Because after the binary search low will be pointing to a number which is immediate greater than x and high will be pointing to a number which is immediate lesser than x. int low = 0; int high = n-1; while(low <= high){ int mid = (low + high) / 2; if(x == arr[mid]) return mid; //if x is already present then it will be the closest else if(x < arr[mid]) high"

    Shashwat K. - "Binary Search on the array and after than compare the numbers at low and the high pointers whichever is closest is the answer. Because after the binary search low will be pointing to a number which is immediate greater than x and high will be pointing to a number which is immediate lesser than x. int low = 0; int high = n-1; while(low <= high){ int mid = (low + high) / 2; if(x == arr[mid]) return mid; //if x is already present then it will be the closest else if(x < arr[mid]) high"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Netflix logoAsked at Netflix 
    Add answer
    Software Engineer
    Behavioral
  • Meta logoAsked at Meta 
    4 answers
    +1

    "public class CircularBuffer { private T[] buffer; private int head; private int tail; private int size; private final int capacity; public CircularBuffer(int capacity) { this.capacity = capacity; this.buffer = (T[]) new Object[capacity]; this.head = 0; this.tail = 0; this.size = 0; } public void enqueue(T item) { if (isFull()) { throw new IllegalStateException("Buffer is full"); } buf"

    Vidhyadhar V. - "public class CircularBuffer { private T[] buffer; private int head; private int tail; private int size; private final int capacity; public CircularBuffer(int capacity) { this.capacity = capacity; this.buffer = (T[]) new Object[capacity]; this.head = 0; this.tail = 0; this.size = 0; } public void enqueue(T item) { if (isFull()) { throw new IllegalStateException("Buffer is full"); } buf"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • "Assumptions - Multiple reader/writer threads issue set() [with transaction] and get() operations concurrently All data can fit into memory. Requirements - Good performance (ex. less lock contention) Optimize memory footprint (ex. don't store stale entries in memory) Naive Approach - Wrap a standard hashmap/dictionary with reader-writer lock. We can also shard the map to reduce lock contention (ex. 32 segments for 32 core cpu) Allocate local buffer to a writer when a transacti"

    Pushkar G. - "Assumptions - Multiple reader/writer threads issue set() [with transaction] and get() operations concurrently All data can fit into memory. Requirements - Good performance (ex. less lock contention) Optimize memory footprint (ex. don't store stale entries in memory) Naive Approach - Wrap a standard hashmap/dictionary with reader-writer lock. We can also shard the map to reduce lock contention (ex. 32 segments for 32 core cpu) Allocate local buffer to a writer when a transacti"See full answer

    Software Engineer
    Coding
  • Microsoft logoAsked at Microsoft 
    1 answer

    "I confirmed with the interviewer that its about how slave replaces primary when primary node when suddenly shuts down. It was very tough question for me i felt. i told, we need to maintain schema of primary, secondary instances with their URL's and posts. There should be heartbeat service which always pings the actual microservices to get to know their instances health."

    Sreenath P. - "I confirmed with the interviewer that its about how slave replaces primary when primary node when suddenly shuts down. It was very tough question for me i felt. i told, we need to maintain schema of primary, secondary instances with their URL's and posts. There should be heartbeat service which always pings the actual microservices to get to know their instances health."See full answer

    Software Engineer
    System Design
  • Visa logoAsked at Visa 
    Add answer
    Software Engineer
    System Design
  • Airbnb logoAsked at Airbnb 
    Add answer
    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Capital One logoAsked at Capital One 
    2 answers

    "conduct direct user research through methods such as interviews, surveys, and focus groups to gather qualitative insights into user preferences, pain points, and behaviors. Additionally, I analyze quantitative data from sources like user analytics, feedback metrics, and market research to identify trends and patterns. Collaborating closely with stakeholders, including customers, internal teams, and subject matter experts, further enriches the requirements gathering process by incorporating diver"

    Jack F. - "conduct direct user research through methods such as interviews, surveys, and focus groups to gather qualitative insights into user preferences, pain points, and behaviors. Additionally, I analyze quantitative data from sources like user analytics, feedback metrics, and market research to identify trends and patterns. Collaborating closely with stakeholders, including customers, internal teams, and subject matter experts, further enriches the requirements gathering process by incorporating diver"See full answer

    Software Engineer
    Analytical
    +2 more
Showing 301-320 of 715
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