Skip to main content

Software Engineer Interview Questions

Review this list of 665 Software Engineer interview questions and answers verified by hiring managers and candidates.
  • Amazon logoAsked at Amazon 
    4 answers
    +1

    "We will not always have all the required data to make a decision quickly. We need to work with ambiguity effectively by tying up the available facts with intuition."

    Sankar S. - "We will not always have all the required data to make a decision quickly. We need to work with ambiguity effectively by tying up the available facts with intuition."See full answer

    Software Engineer
    Behavioral
    +2 more
  • Apple logoAsked at Apple 
    5 answers
    +2

    "To answer this, I will focus my efforts on explaining the most common type of API used in most modern software development applications - the REST API. For the purpose of simplicity, I will also keep the topics of Authorization and Authentication out of the mix. In essence, an API is a group of logic that takes in a specific set of inputs and responds with a specific set of outputs. This is analogous to going to a drive-thru and placing an order for a meal. When you give an API a bunch of"

    Pathworks P. - "To answer this, I will focus my efforts on explaining the most common type of API used in most modern software development applications - the REST API. For the purpose of simplicity, I will also keep the topics of Authorization and Authentication out of the mix. In essence, an API is a group of logic that takes in a specific set of inputs and responds with a specific set of outputs. This is analogous to going to a drive-thru and placing an order for a meal. When you give an API a bunch of"See full answer

    Software Engineer
    System Design
    +4 more
  • Microsoft logoAsked at Microsoft 
    2 answers

    "Sorted the array and stored the minimum difference in a variable and then traversed the array for the pairs having minimum difference"

    Aashka C. - "Sorted the array and stored the minimum difference in a variable and then traversed the array for the pairs having minimum difference"See full answer

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

    "· Listen both sides and without any bias. Support or focus on the problem rather than person. Take necessary steps in case there is middle ground its well and good if both parties agree. If not be honest and support the person who is correct. Ultimate goal is to be useful for overall project and company rather individual satisfaction. The approach should be fit into overall team goal."

    BePostive - "· Listen both sides and without any bias. Support or focus on the problem rather than person. Take necessary steps in case there is middle ground its well and good if both parties agree. If not be honest and support the person who is correct. Ultimate goal is to be useful for overall project and company rather individual satisfaction. The approach should be fit into overall team goal."See full answer

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

  • Meta logoAsked at Meta 
    2 answers

    "class TreeNode(var val: Int, var left: TreeNode? = null, var right: TreeNode? = null) fun isAverageOfDescendants(root: TreeNode?): Boolean { fun helper(node: TreeNode?): Triple { if (node == null) return Triple(0, 0, true) val (leftSum, leftCount, leftValid) = helper(node.left) val (rightSum, rightCount, rightValid) = helper(node.right) val totalSum = leftSum + rightSum val totalCount = leftCount + rightCount // If leaf n"

    Gaurav B. - "class TreeNode(var val: Int, var left: TreeNode? = null, var right: TreeNode? = null) fun isAverageOfDescendants(root: TreeNode?): Boolean { fun helper(node: TreeNode?): Triple { if (node == null) return Triple(0, 0, true) val (leftSum, leftCount, leftValid) = helper(node.left) val (rightSum, rightCount, rightValid) = helper(node.right) val totalSum = leftSum + rightSum val totalCount = leftCount + rightCount // If leaf n"See full answer

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

    "These are a set of utilities used to manage the heap memory as part of an application. The C standard library implements these functions. malloc(bytes) takes a number of bytes and returns a pointer to the start of the allocated buffer. If the allocation failed, a null pointer is returned instead. calloc(count, size) behaves like malloc(count * size), but also zero-initializes the allocated buffer, assuming the allocation succeeded. realloc(ptr, size) takes a pointer to a previously al"

    J R. - "These are a set of utilities used to manage the heap memory as part of an application. The C standard library implements these functions. malloc(bytes) takes a number of bytes and returns a pointer to the start of the allocated buffer. If the allocation failed, a null pointer is returned instead. calloc(count, size) behaves like malloc(count * size), but also zero-initializes the allocated buffer, assuming the allocation succeeded. realloc(ptr, size) takes a pointer to a previously al"See full answer

    Software Engineer
    Coding
    +1 more
  • Anthropic logoAsked at Anthropic 
    Add answer
    Software Engineer
    Artificial Intelligence
    +5 more
  • Amazon logoAsked at Amazon 
    3 answers

    "I started asking some questions regarding the constrains of the system: An antena is emitting a signal that says if the tagged device was out of the room where the interview was happening. I was able to decide which would be the schema for the Antena's message. The antena is sending the info of multiple users. The system doesn't need to push notification to the users when the user left the device behind. Upon reflection, this is what I recollected doing. I propuse the json schema a"

    Eduardo C. - "I started asking some questions regarding the constrains of the system: An antena is emitting a signal that says if the tagged device was out of the room where the interview was happening. I was able to decide which would be the schema for the Antena's message. The antena is sending the info of multiple users. The system doesn't need to push notification to the users when the user left the device behind. Upon reflection, this is what I recollected doing. I propuse the json schema a"See full answer

    Software Engineer
    System Design
  • Amazon logoAsked at Amazon 
    6 answers
    +3

    "Approach (BFS + Horizontal Distance) Assign a horizontal distance (HD) to each node. Root → HD = 0 Left child → HD = parent HD - 1 Right child → HD = parent HD + 1 Do a BFS (level order traversal). If a node with a given HD is seen for the first time, add it to the result. Ignore later nodes with the same HD (because only the top one is visible). After traversal, sort by HD and print nodes left to righ"

    Firdous A. - "Approach (BFS + Horizontal Distance) Assign a horizontal distance (HD) to each node. Root → HD = 0 Left child → HD = parent HD - 1 Right child → HD = parent HD + 1 Do a BFS (level order traversal). If a node with a given HD is seen for the first time, add it to the result. Ignore later nodes with the same HD (because only the top one is visible). After traversal, sort by HD and print nodes left to righ"See full answer

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

    "Constraints: 4-direction moves; no mode switching (pick exactly one of {1=bicycle, 2=bike, 3=car, 4=bus} for the full trip). Per-mode search: If a mode’s per-step time/cost are uniform, run BFS on allowed cells. Then totaltime = steps × timeperstep, tie-break by steps × costper_step. If time/cost vary by cell (given matrices), run Dijkstra per mode minimizing (totaltime, totalcost) lexicographically. Maintain the best ⟨time, cost⟩ per cell; relax when the new pair is strictly better. S"

    Rahul J. - "Constraints: 4-direction moves; no mode switching (pick exactly one of {1=bicycle, 2=bike, 3=car, 4=bus} for the full trip). Per-mode search: If a mode’s per-step time/cost are uniform, run BFS on allowed cells. Then totaltime = steps × timeperstep, tie-break by steps × costper_step. If time/cost vary by cell (given matrices), run Dijkstra per mode minimizing (totaltime, totalcost) lexicographically. Maintain the best ⟨time, cost⟩ per cell; relax when the new pair is strictly better. S"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • "Batch Packing Problem In Amazon’s massive warehouse inventory, there are different types of products. You are given an array products of size n, where products[i] represents the number of items of product type i. These products need to be packed into batches for shipping. The batch packing must adhere to the following conditions: No two items in the same batch can be of the same product type. The number of items packed in the current batch must be strictly greater than the number pack"

    Anonymous Goat - "Batch Packing Problem In Amazon’s massive warehouse inventory, there are different types of products. You are given an array products of size n, where products[i] represents the number of items of product type i. These products need to be packed into batches for shipping. The batch packing must adhere to the following conditions: No two items in the same batch can be of the same product type. The number of items packed in the current batch must be strictly greater than the number pack"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Amazon logoAsked at Amazon 
    1 answer
    Video answer for 'Design a Distributed Message Queue'

    "Good Discussion on the distributed messaging queues (Complex topic with lot of nuances) Liked the mind-map style drawing of requirements and metrics capture Touched on different types of queue styles (point to point, pub-sub, fan-out/fan-in) Storage and WAL usage was interesting Some distributed queue challenges that could be helpful to highlight / expand are: Message guarantee / semantics - Ordering of messages across different servers Replication Master slave architecture or Pe"

    Karthik R. - "Good Discussion on the distributed messaging queues (Complex topic with lot of nuances) Liked the mind-map style drawing of requirements and metrics capture Touched on different types of queue styles (point to point, pub-sub, fan-out/fan-in) Storage and WAL usage was interesting Some distributed queue challenges that could be helpful to highlight / expand are: Message guarantee / semantics - Ordering of messages across different servers Replication Master slave architecture or Pe"See full answer

    Software Engineer
    System Design
  • "Function signature for reference: def calculate(servers: List[int], k: int) -> int: ... To resolve this, you can use binary search considering left=0 and right=max(servers) * k so Example: servers=[1,4,5] First server handle 1 request in let's say 1 second, second 4 seconds and last 5 seconds. k=10 So I want to know the minimal time to process 10 requests Get the mid for timeline mid = (left+right)//2 -> mid is 25 Check how many we could process 25//1 = 25 25//4=6 25//5=5 so 25 + 6 +"

    Babaa - "Function signature for reference: def calculate(servers: List[int], k: int) -> int: ... To resolve this, you can use binary search considering left=0 and right=max(servers) * k so Example: servers=[1,4,5] First server handle 1 request in let's say 1 second, second 4 seconds and last 5 seconds. k=10 So I want to know the minimal time to process 10 requests Get the mid for timeline mid = (left+right)//2 -> mid is 25 Check how many we could process 25//1 = 25 25//4=6 25//5=5 so 25 + 6 +"See full answer

    Software Engineer
    Coding
  • Nvidia logoAsked at Nvidia 
    3 answers

    "I started off with developing microservices for the game and then incorporating kafka to make it scalable"

    Kiran M. - "I started off with developing microservices for the game and then incorporating kafka to make it scalable"See full answer

    Software Engineer
    System Design
  • Apple logoAsked at Apple 
    24 answers
    +21

    "func isValid(_ s: String) -> Bool { let pairs: [Character: Character] = ["(": ")", "{": "}", "[": "]"] var stack: [Character] = [] for char in s.characters { if let closing = pairs[char] { stack.append(closing) } else if stack.isEmpty || stack.removeLast() != char { return false } } return stack.isEmpty } `"

    Reno S. - "func isValid(_ s: String) -> Bool { let pairs: [Character: Character] = ["(": ")", "{": "}", "[": "]"] var stack: [Character] = [] for char in s.characters { if let closing = pairs[char] { stack.append(closing) } else if stack.isEmpty || stack.removeLast() != char { return false } } return stack.isEmpty } `"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • LinkedIn logoAsked at LinkedIn 
    Add answer
    Software Engineer
    System Design
  • Capital One logoAsked at Capital One 
    1 answer

    "Functional Rquirements: User should be able to read account balance user should be able to withdraw money from account user should be able to add money to account user should be able to create a new account user should be able to cancel an opened account All of the above for Checkings and Savings account User should be able to pay credit card bill (similar to adding balance to checking and savings account) Non functional Requirements: ACID transactions. consistency > availabi"

    Alok S. - "Functional Rquirements: User should be able to read account balance user should be able to withdraw money from account user should be able to add money to account user should be able to create a new account user should be able to cancel an opened account All of the above for Checkings and Savings account User should be able to pay credit card bill (similar to adding balance to checking and savings account) Non functional Requirements: ACID transactions. consistency > availabi"See full answer

    Software Engineer
    System Design
  • +2

    "class Solution { public boolean isValid(String s) { // Time Complexity and Space complexity will be O(n) Stack stack=new Stack(); for(char c:s.toCharArray()){ if(c=='('){ stack.push(')'); } else if(c=='{'){ stack.push('}'); } else if(c=='['){ stack.push(']'); } else if(stack.pop()!=c){ return false; } } return stack.isEmpty(); } }"

    Kanishvaran P. - "class Solution { public boolean isValid(String s) { // Time Complexity and Space complexity will be O(n) Stack stack=new Stack(); for(char c:s.toCharArray()){ if(c=='('){ stack.push(')'); } else if(c=='{'){ stack.push('}'); } else if(c=='['){ stack.push(']'); } else if(stack.pop()!=c){ return false; } } return stack.isEmpty(); } }"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Amazon logoAsked at Amazon 
    Add answer
    Video answer for 'Describe an experience working in a cross-functional team.'
    Software Engineer
    Behavioral
    +4 more
Showing 121-140 of 665