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 
    2 answers

    "I told a story about how our team was focussed on moving a key metric i.e. NPS and to do that we build 3 top requested user feature. Post release the detractors % didn't move even though the detractors request for features shipped went down. Then I connect with users and did some analysis post which we realised that we need to pivot our focus from shipping features to enabling complete workflows for our users i.e. shipping all those feature which are used together in a feature as then only users"

    Aditya S. - "I told a story about how our team was focussed on moving a key metric i.e. NPS and to do that we build 3 top requested user feature. Post release the detractors % didn't move even though the detractors request for features shipped went down. Then I connect with users and did some analysis post which we realised that we need to pivot our focus from shipping features to enabling complete workflows for our users i.e. shipping all those feature which are used together in a feature as then only users"See full answer

    Software Engineer
    Behavioral
    +2 more
  • Apple logoAsked at Apple 
    36 answers
    +30

    "we can use two pointer + set like maintain i,j and also insert jth character to set like while set size is equal to our window j-i+1 then maximize our answer and increase jth pointer till last index"

    Kishor J. - "we can use two pointer + set like maintain i,j and also insert jth character to set like while set size is equal to our window j-i+1 then maximize our answer and increase jth pointer till last index"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • "This was a 60 minute assessment. The clock is ticking and you're being observed by a senior+ level engineer. Be ready to perform for an audience. The implementation for the system gets broken up into three parts: Implement creating accounts and depositing money into an account by ID Implement transferring money with validation to ensure the accounts for the transfer both exist and that the account money is being removed from has enough money in it to perform the transfer Implement find"

    devopsjesus - "This was a 60 minute assessment. The clock is ticking and you're being observed by a senior+ level engineer. Be ready to perform for an audience. The implementation for the system gets broken up into three parts: Implement creating accounts and depositing money into an account by ID Implement transferring money with validation to ensure the accounts for the transfer both exist and that the account money is being removed from has enough money in it to perform the transfer Implement find"See full answer

    Software Engineer
    Coding
    +1 more
  • 4 answers
    Video answer for 'Design Google Docs.'
    +1

    "Designing a web-based word processor like Google Docs requires a robust system capable of handling real-time collaboration, high availability, and massive data consistency. 1. High-Level Architecture The system follows a microservices architecture to manage different concerns independently: Client Side: A web or mobile application that handles the UI and local state. Load Balancer: Distributes incoming traffic across multiple web servers to ensure high availability. **Web Serve"

    Divya G. - "Designing a web-based word processor like Google Docs requires a robust system capable of handling real-time collaboration, high availability, and massive data consistency. 1. High-Level Architecture The system follows a microservices architecture to manage different concerns independently: Client Side: A web or mobile application that handles the UI and local state. Load Balancer: Distributes incoming traffic across multiple web servers to ensure high availability. **Web Serve"See full answer

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

    "ingestion, processing & storage layer to handle document processing client ->API gateway/entry point->object storage-> queue-> worker-> database data flow: client initiates document upload + status processing API gateway (upload endpoint: authenticates & authorizes request, creates pre-assigned url to upload document); status endpoint object storage - stores uploaded document unstructured data (images, pdfs, docx etc) via preassigned url Message queue to decouple ingestion from proc"

    Tracy M. - "ingestion, processing & storage layer to handle document processing client ->API gateway/entry point->object storage-> queue-> worker-> database data flow: client initiates document upload + status processing API gateway (upload endpoint: authenticates & authorizes request, creates pre-assigned url to upload document); status endpoint object storage - stores uploaded document unstructured data (images, pdfs, docx etc) via preassigned url Message queue to decouple ingestion from proc"See full answer

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

  • Amazon logoAsked at Amazon 
    2 answers
    Video answer for 'Implement k-means clustering.'

    "at first I want to know number of cluster I will put random number if I don't know and I will use method called Elbow method or Silhouette Score ,Gap Statistic and Davies–Bouldin Index to know the best number of cluster and I will use scikit-learn library to import kmeans from sklearn.cluster import KMeans kmeans = KMeans(nclusters=2, randomstate=0) kmeans.fit(X) and X this my data "

    Taheia S. - "at first I want to know number of cluster I will put random number if I don't know and I will use method called Elbow method or Silhouette Score ,Gap Statistic and Davies–Bouldin Index to know the best number of cluster and I will use scikit-learn library to import kmeans from sklearn.cluster import KMeans kmeans = KMeans(nclusters=2, randomstate=0) kmeans.fit(X) and X this my data "See full answer

    Software Engineer
    Analytical
    +5 more
  • Amazon logoAsked at Amazon 
    4 answers
    +1

    "Situation - A time I dealt with conflict while on a team was while I was working at Shopify on physical and digital gift card refund point of sale solutions. The situation was that we were dealing with complex technical constraints including not changing particular UI components behavior to act as they should be intended. On the refund screen, the existing design was using a toggle on the same screen to bring up a modal for gift card selection to either select digital or physical options. Thi"

    Ben G. - "Situation - A time I dealt with conflict while on a team was while I was working at Shopify on physical and digital gift card refund point of sale solutions. The situation was that we were dealing with complex technical constraints including not changing particular UI components behavior to act as they should be intended. On the refund screen, the existing design was using a toggle on the same screen to bring up a modal for gift card selection to either select digital or physical options. Thi"See full answer

    Software Engineer
    Behavioral
    +5 more
  • Adobe logoAsked at Adobe 
    18 answers
    Video answer for 'Given an nxn grid of 1s and 0s, return the number of islands in the input.'
    +15

    " from typing import List def getnumberof_islands(binaryMatrix: List[List[int]]) -> int: if not binaryMatrix: return 0 rows = len(binaryMatrix) cols = len(binaryMatrix[0]) islands = 0 for r in range(rows): for c in range(cols): if binaryMatrixr == 1: islands += 1 dfs(binaryMatrix, r, c) return islands def dfs(grid, r, c): if ( r = len(grid) "

    Rick E. - " from typing import List def getnumberof_islands(binaryMatrix: List[List[int]]) -> int: if not binaryMatrix: return 0 rows = len(binaryMatrix) cols = len(binaryMatrix[0]) islands = 0 for r in range(rows): for c in range(cols): if binaryMatrixr == 1: islands += 1 dfs(binaryMatrix, r, c) return islands def dfs(grid, r, c): if ( r = len(grid) "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Meta logoAsked at Meta 
    4 answers
    Video answer for 'Design a streaming service like Netflix.'
    +1

    "using a relational database isn't a good choice for this system! we need more availability here than consistency (CAP theorem)"

    Anonymous Capybara - "using a relational database isn't a good choice for this system! we need more availability here than consistency (CAP theorem)"See full answer

    Software Engineer
    System Design
    +2 more
  • Amazon logoAsked at Amazon 
    11 answers
    Video answer for 'Design Uber Eats.'
    +8

    "basic drew the diagram"

    Aswath B. - "basic drew the diagram"See full answer

    Software Engineer
    System Design
    +2 more
  • Adobe logoAsked at Adobe 
    66 answers
    Video answer for 'Product of Array Except Self'
    +60

    "If 0's aren't a concern, couldn't we just multiply all numbers. and then divide product by each number in the list ? if there's more than one zero, then we just return an array of 0s if there's one zero, then we just replace 0 with product and rest 0s. what am i missing?"

    Sachin R. - "If 0's aren't a concern, couldn't we just multiply all numbers. and then divide product by each number in the list ? if there's more than one zero, then we just return an array of 0s if there's one zero, then we just replace 0 with product and rest 0s. what am i missing?"See full answer

    Software Engineer
    Data Structures & Algorithms
    +3 more
  • Amazon logoAsked at Amazon 
    8 answers
    +5

    "A few months ago I joined a micro-services platform engineering team as their manager, at that time my team was struggling to deliver towards an upcoming production deadline for a customer facing product. Production date had been moved 5 times already and there were about 40% of product features which were remaining to be tested and signed off to move to production . I was made responsible to deliver the release of this product within the deadline and turnaround the software delivery throughput."

    Shuchi A. - "A few months ago I joined a micro-services platform engineering team as their manager, at that time my team was struggling to deliver towards an upcoming production deadline for a customer facing product. Production date had been moved 5 times already and there were about 40% of product features which were remaining to be tested and signed off to move to production . I was made responsible to deliver the release of this product within the deadline and turnaround the software delivery throughput."See full answer

    Software Engineer
    Behavioral
    +2 more
  • "Functional requirements: user can send an input and wait for the result Group up to 100 individual requests in to single GPU The system should should send results back to the user who requested it when done Non functional requirements: Minimize the waiting between two batches of execution/ reduce idle time error message if a batch faiils Scale to support multiple GPUs Core Entities: Request Batch Result API Design: POST /predict -> {requestid: "", response: ""} req"

    Alok S. - "Functional requirements: user can send an input and wait for the result Group up to 100 individual requests in to single GPU The system should should send results back to the user who requested it when done Non functional requirements: Minimize the waiting between two batches of execution/ reduce idle time error message if a batch faiils Scale to support multiple GPUs Core Entities: Request Batch Result API Design: POST /predict -> {requestid: "", response: ""} req"See full answer

    Software Engineer
    Artificial Intelligence
    +5 more
  • Google logoAsked at Google 

    Tree Node.

    IDE
    Easy
    26 answers
    Video answer for 'Tree Node.'
    +22

    "-- Write your query here select id, (case when p_id is null then 'Root' when pid in (select id from treenode_table) and id in (select pid from treenode_table) then 'Inner' else 'Leaf' end) as node_types from treenodetable order by 1; `"

    Anonymous Roadrunner - "-- Write your query here select id, (case when p_id is null then 'Root' when pid in (select id from treenode_table) and id in (select pid from treenode_table) then 'Inner' else 'Leaf' end) as node_types from treenodetable order by 1; `"See full answer

    Software Engineer
    Coding
    +1 more
  • Freshworks logoAsked at Freshworks 
    5 answers
    +2

    "Designing a Price Drop Tracker system like CamelCamelCamel involves creating a platform that tracks price changes for products on various e-commerce websites and notifies users when prices drop. Here’s a detailed system design for such a service: Functional Requirements User Registration and Authentication\: Users can register and log in. Support for social media logins (e.g., Google, Facebook). Product Tracking\: Users can add products to their watchlist for"

    Scott S. - "Designing a Price Drop Tracker system like CamelCamelCamel involves creating a platform that tracks price changes for products on various e-commerce websites and notifies users when prices drop. Here’s a detailed system design for such a service: Functional Requirements User Registration and Authentication\: Users can register and log in. Support for social media logins (e.g., Google, Facebook). Product Tracking\: Users can add products to their watchlist for"See full answer

    Software Engineer
    System Design
    +1 more
  • Amazon logoAsked at Amazon 
    3 answers

    "I followed STAR format"

    Shashikant A. - "I followed STAR format"See full answer

    Software Engineer
    Behavioral
    +3 more
  • Amazon logoAsked at Amazon 
    23 answers
    Video answer for 'Design a URL shortener.'
    +20

    "I studied Exponent's TinyURL system design video. My interviewer was asking many detailed questions on API design, schema, as well as data required to store. I found system design questions are bit high level instead of depth. I think should have detail design of API, schema and some additional flavors."

    Yag S. - "I studied Exponent's TinyURL system design video. My interviewer was asking many detailed questions on API design, schema, as well as data required to store. I found system design questions are bit high level instead of depth. I think should have detail design of API, schema and some additional flavors."See full answer

    Software Engineer
    System Design
    +1 more
  • Adobe logoAsked at Adobe 
    54 answers
    +50

    "Arrays.sort(inputarray) sliding window with a size of 2. Check for the sum in the sliding window. subtract the start when window moves"

    Sridhar R. - "Arrays.sort(inputarray) sliding window with a size of 2. Check for the sum in the sliding window. subtract the start when window moves"See full answer

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

    "1. Requirements Analysis Functional Requirements Video streaming with multiple quality levels Content browsing and search Continue watching functionality Content recommendations Non-Functional Requirements Low latency video delivery (<2s startup time) High availability (99.99% uptime) Scalability to handle millions of concurrent streams API response time < 100ms 2. Microservices Architecture Core Microservices Content Service Content metadata mana"

    Reno S. - "1. Requirements Analysis Functional Requirements Video streaming with multiple quality levels Content browsing and search Continue watching functionality Content recommendations Non-Functional Requirements Low latency video delivery (<2s startup time) High availability (99.99% uptime) Scalability to handle millions of concurrent streams API response time < 100ms 2. Microservices Architecture Core Microservices Content Service Content metadata mana"See full answer

    Software Engineer
    System Design
  • Adobe logoAsked at Adobe 
    13 answers
    Video answer for 'Merge k sorted linked lists.'
    +7

    "A much better solution than the one in the article, below: It looks like the ones writing articles here in Javascript do not understand the time/space complexity of javascript methods. shift, splice, sort, etc... In the solution article you have a shift and a sort being done inside a while, that is, the multiplication of Ns. My solution, below, iterates through the list once and then sorts it, separately. It´s O(N+Log(N)) class ListNode { constructor(val = 0, next = null) { th"

    Guilherme F. - "A much better solution than the one in the article, below: It looks like the ones writing articles here in Javascript do not understand the time/space complexity of javascript methods. shift, splice, sort, etc... In the solution article you have a shift and a sort being done inside a while, that is, the multiplication of Ns. My solution, below, iterates through the list once and then sorts it, separately. It´s O(N+Log(N)) class ListNode { constructor(val = 0, next = null) { th"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
Showing 81-100 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