Software Engineer Interview Questions

Review this list of 495 software engineer interview questions and answers verified by hiring managers and candidates.
  • +85

    "Recently, I had to make a decision that I could automate a part of a process now and help the operations team reducing 9 hours of manual work to 60 minutes for one client. The second option was to fully automate the end to end process that would take 4 weeks of development, but fully automate the process and that could be rolled out across the board. The process was to change the member's paperless preference to paper when a sent email gets bounced 3 times in a row and inform her with a paper"

    Anonymous Aardvark - "Recently, I had to make a decision that I could automate a part of a process now and help the operations team reducing 9 hours of manual work to 60 minutes for one client. The second option was to fully automate the end to end process that would take 4 weeks of development, but fully automate the process and that could be rolled out across the board. The process was to change the member's paperless preference to paper when a sent email gets bounced 3 times in a row and inform her with a paper"See full answer

    Software Engineer
    Behavioral
    +5 more
  • Apple logoAsked at Apple 
    +8

    "Whatever your situation is, the correct answer is: "I'm very happy with my current job (expand on your experience, ability to deliver, team, achievements etc). But when I saw this opportunity, I had find out more." You essentially want to sounds interested, but clarify that your current situation is great."

    Bjorn L. - "Whatever your situation is, the correct answer is: "I'm very happy with my current job (expand on your experience, ability to deliver, team, achievements etc). But when I saw this opportunity, I had find out more." You essentially want to sounds interested, but clarify that your current situation is great."See full answer

    Software Engineer
    Behavioral
    +1 more
  • Visa logoAsked at Visa 
    +30

    "You shouldn't hire me if you're looking for someone to simply write code in large volumes without considering the bigger picture. I'm someone who thrives on solving root problems, building, cohesive systems, and ensuring stakeholder alignment. If the priority is speed over thoughtful analysis, I might not be the best fit. However, if you're looking for someone who can drive meaningful and scalable solutions, collaborate effectively, and contribute to long-term success, then I believe I'd bring s"

    Nicola R. - "You shouldn't hire me if you're looking for someone to simply write code in large volumes without considering the bigger picture. I'm someone who thrives on solving root problems, building, cohesive systems, and ensuring stakeholder alignment. If the priority is speed over thoughtful analysis, I might not be the best fit. However, if you're looking for someone who can drive meaningful and scalable solutions, collaborate effectively, and contribute to long-term success, then I believe I'd bring s"See full answer

    Software Engineer
    Behavioral
    +4 more
  • Amazon logoAsked at Amazon 
    Video answer for 'Tell me about a time you made a mistake.'
    +90

    "Let me tell you about a time where a website I managed suddenly showed slow performance and the mistake on our side was it was unnoticed until a user reported the issue to management. As a PM for that project, I took full responsibility of the situation and worked with the engineering team to quickly resolve it. This mistake taught me the importance of focusing and monitoring non functional requirements as well in addition to new feature development /adoption where I was mostly spending my time"

    Sreenisha S. - "Let me tell you about a time where a website I managed suddenly showed slow performance and the mistake on our side was it was unnoticed until a user reported the issue to management. As a PM for that project, I took full responsibility of the situation and worked with the engineering team to quickly resolve it. This mistake taught me the importance of focusing and monitoring non functional requirements as well in addition to new feature development /adoption where I was mostly spending my time"See full answer

    Software Engineer
    Behavioral
    +6 more
  • Databricks logoAsked at Databricks 

    "High Level Architect Client v API Gateway v Object Storage v Message Queue v Worker v Database Client should can document with a web site or directly with API services. API Gateway should be used for upload document,get document info and state. Object storage should be used for original document and send event to Message Queue for starting. Message Queue is neccessary because there are millions of document should be process each time. Worker can get text from document with OCR. Database shoul"

    Berk C. - "High Level Architect Client v API Gateway v Object Storage v Message Queue v Worker v Database Client should can document with a web site or directly with API services. API Gateway should be used for upload document,get document info and state. Object storage should be used for original document and send event to Message Queue for starting. Message Queue is neccessary because there are millions of document should be process each time. Worker can get text from document with OCR. Database shoul"See full answer

    Software Engineer
    System Design
    +2 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • "Build a counter using queue, one queue per service ("a", "b") and one with just timestamps to get the overall load. Build rate limiter service using the counter and interviewer asked if there rate limiter might use a different instance of a counter"

    Chethan N. - "Build a counter using queue, one queue per service ("a", "b") and one with just timestamps to get the overall load. Build rate limiter service using the counter and interviewer asked if there rate limiter might use a different instance of a counter"See full answer

    Software Engineer
    Coding
  • Apple logoAsked at Apple 

    "\# An program that prints out the peak elements in a list of integers. Pseudocode: 1. Define a function that takes a list of integers as input. 2. Initialize an empty list to store the peak elements. 3. Loop through the list of integers. 4. For each element, check if it is greater than its neighbors. 5. If it is, add it to the list of peak elements. 6. Return the list of peak elements. def findpeakelements(nums): if not nums: return [] peaks = [] n = len(nums"

    Frederick K. - "\# An program that prints out the peak elements in a list of integers. Pseudocode: 1. Define a function that takes a list of integers as input. 2. Initialize an empty list to store the peak elements. 3. Loop through the list of integers. 4. For each element, check if it is greater than its neighbors. 5. If it is, add it to the list of peak elements. 6. Return the list of peak elements. def findpeakelements(nums): if not nums: return [] peaks = [] n = len(nums"See full answer

    Software Engineer
    Coding
    +1 more
  • Google logoAsked at Google 
    +7

    "So here is what I would do if I had to designing a system to log messages in order involves several considerations, including the choice of software, hardware, storage mechanisms, and scalability. Here’s how I would approach this: 1. Requirements Analysis: Message Format: Define the structure of the messages to log (e.g., text, JSON). Volume: Estimate the expected volume of messages per second. This will help in determining the infrastructure requirements. **Order Guarantee"

    Theodore (teddy) W. - "So here is what I would do if I had to designing a system to log messages in order involves several considerations, including the choice of software, hardware, storage mechanisms, and scalability. Here’s how I would approach this: 1. Requirements Analysis: Message Format: Define the structure of the messages to log (e.g., text, JSON). Volume: Estimate the expected volume of messages per second. This will help in determining the infrastructure requirements. **Order Guarantee"See full answer

    Software Engineer
    System Design
  • "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
    Coding
    +1 more
  • Amazon logoAsked at Amazon 
    +60

    "I most want to communicate a few principals of conflict resolution that I believe were integral in this situation, which are mutual respect, a results orientation, an unwavering focus on the user. To that end, here’s how I’d like to structure this answer: First, I’ll tell you about the project we were working on, to provide some background for you. Second, I’ll describe the disagreement. Third, I’ll describe how we arrived at a solution, and finally, I’ll discuss how those 3 conflict resolut"

    Ross B. - "I most want to communicate a few principals of conflict resolution that I believe were integral in this situation, which are mutual respect, a results orientation, an unwavering focus on the user. To that end, here’s how I’d like to structure this answer: First, I’ll tell you about the project we were working on, to provide some background for you. Second, I’ll describe the disagreement. Third, I’ll describe how we arrived at a solution, and finally, I’ll discuss how those 3 conflict resolut"See full answer

    Software Engineer
    Behavioral
    +5 more
  • Adobe logoAsked at Adobe 
    Video answer for 'Edit distance'
    +20

    "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
  • Amazon logoAsked at Amazon 
    +3

    "Inorder traversal of the tree should be the solution for this problem."

    Balasubramanian R. - "Inorder traversal of the tree should be the solution for this problem."See full answer

    Software Engineer
    Coding
    +1 more
  • Anthropic logoAsked at Anthropic 
    Software Engineer
    System Design
  • Anthropic logoAsked at Anthropic 
    Software Engineer
    Behavioral
    +5 more
  • Google logoAsked at Google 
    Software Engineer
    Coding
    +1 more
  • Amazon logoAsked at Amazon 

    "The below system design addresses the requirements for a scalable distributed onboarding service, focusing on robust data validation, asynchronous processing, real-time aggregation, and efficient querying of metadata. Core Principles: Asynchronous Processing: Decouple components to ensure high throughput and responsiveness. Scalability & Elasticity: Utilize technologies that can scale horizontally to handle varying loads. Data Durability & Integrity: Ensure no data l"

    Anonymous Mongoose - "The below system design addresses the requirements for a scalable distributed onboarding service, focusing on robust data validation, asynchronous processing, real-time aggregation, and efficient querying of metadata. Core Principles: Asynchronous Processing: Decouple components to ensure high throughput and responsiveness. Scalability & Elasticity: Utilize technologies that can scale horizontally to handle varying loads. Data Durability & Integrity: Ensure no data l"See full answer

    Software Engineer
    System Design
  • +26

    "We had a huge launch on September 1st of this year where we completely redesigned our application from the grounds up and also migrated to a new platform (React.JS). This project took us 8 months and the launch was a huge deal for the team. Unfortunately the launch wasn't as smooth as we expected and despite doing multiple rounds of QA, some major issues cropped up in the core part of the app right after launch and our client was quite upset since it was disrupting their day-to-day workflow. "

    Aabid S. - "We had a huge launch on September 1st of this year where we completely redesigned our application from the grounds up and also migrated to a new platform (React.JS). This project took us 8 months and the launch was a huge deal for the team. Unfortunately the launch wasn't as smooth as we expected and despite doing multiple rounds of QA, some major issues cropped up in the core part of the app right after launch and our client was quite upset since it was disrupting their day-to-day workflow. "See full answer

    Software Engineer
    Behavioral
    +7 more
  • +42

    "A clarifying question: Is this question asking about when I met a tight deadline in a project or how did I manage a project that had a tight deadline? The answer uploaded to this question is good, I would also add 'creating a critical path from overall project schedule and then making sure that none of the deliverables in the critical path are sacrificed in order to meet the tight deadline' as an action taken."

    Ushita S. - "A clarifying question: Is this question asking about when I met a tight deadline in a project or how did I manage a project that had a tight deadline? The answer uploaded to this question is good, I would also add 'creating a critical path from overall project schedule and then making sure that none of the deliverables in the critical path are sacrificed in order to meet the tight deadline' as an action taken."See full answer

    Software Engineer
    Behavioral
    +5 more
  • Databricks logoAsked at Databricks 

    "class Solution: each cell in grid has (mode,time,cost) start and end cells are given def init(self, grid, rowstart, colstart, rowend, colend): self.inf = (float("inf"), float("inf")) self.grid = grid self.rowstart = rowstart self.rowend = rowend self.colstart = colstart self.colend = colend def minPath(self): min_paths = [] for mode in [1,2,3,4]: for rowadj, coladj in [(1,"

    Milad P. - "class Solution: each cell in grid has (mode,time,cost) start and end cells are given def init(self, grid, rowstart, colstart, rowend, colend): self.inf = (float("inf"), float("inf")) self.grid = grid self.rowstart = rowstart self.rowend = rowend self.colstart = colstart self.colend = colend def minPath(self): min_paths = [] for mode in [1,2,3,4]: for rowadj, coladj in [(1,"See full answer

    Software Engineer
    Coding
    +1 more
  • Video answer for 'Employee Earnings.'
    +40

    "SELECT employees.first_name, managers.salary AS manager_salary FROM employees LEFT JOIN employees AS managers ON employees.manager_id = managers.id WHERE employees.salary > managers.salary `"

    Tiffany A. - "SELECT employees.first_name, managers.salary AS manager_salary FROM employees LEFT JOIN employees AS managers ON employees.manager_id = managers.id WHERE employees.salary > managers.salary `"See full answer

    Software Engineer
    Coding
    +4 more
Showing 1-20 of 495