Software Engineer Interview Questions

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

    "Try not to take hints from the interviewer for solving the problem. They may provide hints but it would impact the final decision "

    Laxman kishore K. - "Try not to take hints from the interviewer for solving the problem. They may provide hints but it would impact the final decision "See full answer

    Software Engineer
    Coding
    +1 more
  • Video answer for 'Design Google Docs.'
    Software Engineer
    System Design
  • +86

    "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
  • "from collections import deque from typing import List def longestsubarraydifflessthan_n(nums: List[int], N: int) -> int: """ Find the length of the longest contiguous subarray such that the difference between any two elements in the subarray is less than N. Equivalent condition: max(subarray) - min(subarray) < N Approach (Optimal): Sliding window with two monotonic deques: max_d: decreasing deque of indices (front is index of current max"

    Ramachandra N. - "from collections import deque from typing import List def longestsubarraydifflessthan_n(nums: List[int], N: int) -> int: """ Find the length of the longest contiguous subarray such that the difference between any two elements in the subarray is less than N. Equivalent condition: max(subarray) - min(subarray) < N Approach (Optimal): Sliding window with two monotonic deques: max_d: decreasing deque of indices (front is index of current max"See full answer

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

    "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
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Uber logoAsked at Uber 

    " def closest_palindrome(n: str) -> str: """ Finds the closest palindromic number to n (excluding itself). Assumptions: If two palindromes are equally close, return the smaller one. n is a positive integer represented as a string. Time Complexity: O(1) Space Complexity: O(1) """ length = len(n) num = int(n) Helper to build palindrome from a prefix def makepalindrome(prefix: int, isodd_length: bool) -> int: s = str(prefi"

    Ramachandra N. - " def closest_palindrome(n: str) -> str: """ Finds the closest palindromic number to n (excluding itself). Assumptions: If two palindromes are equally close, return the smaller one. n is a positive integer represented as a string. Time Complexity: O(1) Space Complexity: O(1) """ length = len(n) num = int(n) Helper to build palindrome from a prefix def makepalindrome(prefix: int, isodd_length: bool) -> int: s = str(prefi"See full answer

    Software Engineer
    Coding
    +1 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
  • Uber logoAsked at Uber 
    Software Engineer
    System Design
  • Amazon logoAsked at Amazon 
    Video answer for 'Tell me about a time you made a mistake.'
    +92

    "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
    +8 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
  • Microsoft logoAsked at Microsoft 
    Software Engineer
    Coding
    +1 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
  • Adobe logoAsked at Adobe 
    Video answer for 'Edit distance'
    +21

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

    "from typing import List def longestcommonprefix(a: List[int], b: List[int]) -> List[int]: prefix = [] for x, y in zip(a, b): if x == y: prefix.append(x) else: break return prefix `"

    Donald Y. - "from typing import List def longestcommonprefix(a: List[int], b: List[int]) -> List[int]: prefix = [] for x, y in zip(a, b): if x == y: prefix.append(x) else: break return prefix `"See full answer

    Software Engineer
    Coding
    +1 more
  • +27

    "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
  • Software Engineer
    Behavioral
    +1 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
  • 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
Showing 1-20 of 571