Amazon Software Engineer Interview Questions

Review this list of 106 Amazon software engineer interview questions and answers verified by hiring managers and candidates.
  • Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 
    Video answer for 'Design a URL shortener.'
    +19

    "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
  • Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 

    "I saw this question in one of my interviews."

    Ven E. - "I saw this question in one of my interviews."See full answer

    Software Engineer
    System Design
    +2 more
  • Amazon logoAsked at Amazon 
    Video answer for 'Given an nxn grid of 1s and 0s, return the number of islands in the input.'
    +9

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

  • Amazon logoAsked at Amazon 
    Video answer for 'How do you consider the impact of your work on the world?'
    +10

    "this is not a helpful interview, she seems so unprepared, confusing, unable to netting it out :("

    Anonymous Giraffe - "this is not a helpful interview, she seems so unprepared, confusing, unable to netting it out :("See full answer

    Software Engineer
    Behavioral
    +1 more
  • "Let’s say the matrix is m x n (i.e., m rows and n columns). Start from the top-right corner of the matrix. Move left if you see a 1. Move down if you see a 0. Keep track of the row index where you last saw the leftmost 1 — that row has the most 1s. public class MaxOnesRow { public static int rowWithMostOnes(int matrix) { int rows = matrix.length; int cols = matrix[0].length; int maxRowIndex = -1; int j = cols - 1; /"

    Khushbu R. - "Let’s say the matrix is m x n (i.e., m rows and n columns). Start from the top-right corner of the matrix. Move left if you see a 1. Move down if you see a 0. Keep track of the row index where you last saw the leftmost 1 — that row has the most 1s. public class MaxOnesRow { public static int rowWithMostOnes(int matrix) { int rows = matrix.length; int cols = matrix[0].length; int maxRowIndex = -1; int j = cols - 1; /"See full answer

    Software Engineer
    Coding
    +1 more
  • Amazon logoAsked at Amazon 
    +37

    "from typing import List def two_sum(nums: List[int], target: int) -> List[int]: prevMap = {} for i, n in enumerate(nums): diff = target - n if diff in prevMap: return [prevMap[diff], i] else: prevMap[n] = i return [] debug your code below print(two_sum([2, 7, 11, 15], 9)) `"

    Anonymous Roadrunner - "from typing import List def two_sum(nums: List[int], target: int) -> List[int]: prevMap = {} for i, n in enumerate(nums): diff = target - n if diff in prevMap: return [prevMap[diff], i] else: prevMap[n] = i return [] debug your code below print(two_sum([2, 7, 11, 15], 9)) `"See full answer

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

    "Functional Requirement Monitor health, metrics Alert in case of failure/anomaly Visualize the live health Analyse machines on periodic basis Non Functional Should not exert load on machines low latency Highly scalable Logs/Metrics Gathering push - machine gather and send to system and low priority background thread along with batching pull - heart beat check (for offline machines) Processing Real time streaming using Kafka/kinesis + Flink TimeSeries database for stor"

    Sourabh G. - "Functional Requirement Monitor health, metrics Alert in case of failure/anomaly Visualize the live health Analyse machines on periodic basis Non Functional Should not exert load on machines low latency Highly scalable Logs/Metrics Gathering push - machine gather and send to system and low priority background thread along with batching pull - heart beat check (for offline machines) Processing Real time streaming using Kafka/kinesis + Flink TimeSeries database for stor"See full answer

    Software Engineer
    System Design
    +2 more
  • Amazon logoAsked at Amazon 

    "I faced a problem about components re-rendering's and unnecessary requests API's which was causing performance complications in my applicactions. I had a structure that create, edit and delete task, so GET, POST, PUT and DELETE API's methods request was necessary and bring that to compliance without compromissing the performance is hard. I started involving componentes and async functions into the useMemo's and useEffect's to have more control, another improvement was take be careful with global"

    Rolemberg J. - "I faced a problem about components re-rendering's and unnecessary requests API's which was causing performance complications in my applicactions. I had a structure that create, edit and delete task, so GET, POST, PUT and DELETE API's methods request was necessary and bring that to compliance without compromissing the performance is hard. I started involving componentes and async functions into the useMemo's and useEffect's to have more control, another improvement was take be careful with global"See full answer

    Software Engineer
    Technical
    +2 more
  • "Here is my first shot at it. Please excuse formatting. To find the maximum depth of the dependencies given a list of nodes, each having a unique string id and a list of subnodes it depends on, you can perform a depth-first search (DFS) to traverse the dependency graph. Here's how you can implement this: Represent the nodes and their dependencies using a dictionary. Perform a DFS on each node to find the maximum depth of the dependencies. Keep track of the maximum depth encountered dur"

    Tes d H. - "Here is my first shot at it. Please excuse formatting. To find the maximum depth of the dependencies given a list of nodes, each having a unique string id and a list of subnodes it depends on, you can perform a depth-first search (DFS) to traverse the dependency graph. Here's how you can implement this: Represent the nodes and their dependencies using a dictionary. Perform a DFS on each node to find the maximum depth of the dependencies. Keep track of the maximum depth encountered dur"See full answer

    Software Engineer
    Coding
    +1 more
  • Amazon logoAsked at Amazon 

    "I told a story about having good intentions to help out a superior with a problem but I did so without seeking buy-in (permission) first. While I did solve the problem and provided value to him and my other colleagues, I was reprimanded for crossing boundaries and not respecting his privacy (I accessed his computer without his permission to deliver a resolution to a problem). While I had good intentions and the outcome was good, my approach left me with a negative mark and a life long lesson r"

    Zakery K. - "I told a story about having good intentions to help out a superior with a problem but I did so without seeking buy-in (permission) first. While I did solve the problem and provided value to him and my other colleagues, I was reprimanded for crossing boundaries and not respecting his privacy (I accessed his computer without his permission to deliver a resolution to a problem). While I had good intentions and the outcome was good, my approach left me with a negative mark and a life long lesson r"See full answer

    Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 

    "Our team were developing a HQ trivia for fitness. So at that moment our focus was developing an eye-catching animation for both iOS and Android. By the way, implementing an animation were hard without the progress of it. So we wanted to see an immediate progress. So I decided to use tools or libraries such as Lottie or Kite. Then it increased the quality and the productivity dramatically. So our designer were happy with it and also our dev team could reuse the code from the designed animation fr"

    Woongshik C. - "Our team were developing a HQ trivia for fitness. So at that moment our focus was developing an eye-catching animation for both iOS and Android. By the way, implementing an animation were hard without the progress of it. So we wanted to see an immediate progress. So I decided to use tools or libraries such as Lottie or Kite. Then it increased the quality and the productivity dramatically. So our designer were happy with it and also our dev team could reuse the code from the designed animation fr"See full answer

    Software Engineer
    Behavioral
    +1 more
  • Amazon logoAsked at Amazon 
    +3

    "Should this question be BST, not just BT? Otherwise it would not be possible to reconstruct the tree solely based on the array regardless of its order"

    TreeOfWisdom - "Should this question be BST, not just BT? Otherwise it would not be possible to reconstruct the tree solely based on the array regardless of its order"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Amazon logoAsked at Amazon 
    Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 

    "To recount an experience from my last project . We were at the initial stages of designing a new data platform to enhance our trading analytics capabilities. The conflict arose over the selection of a data processing framework. I was advocating for Apache Spark due to its scalability and performance benefits, especially for handling large volumes of derivatives data. Another senior team member preferred a different technology they had more experience with, which they believed would be easier to"

    Scott S. - "To recount an experience from my last project . We were at the initial stages of designing a new data platform to enhance our trading analytics capabilities. The conflict arose over the selection of a data processing framework. I was advocating for Apache Spark due to its scalability and performance benefits, especially for handling large volumes of derivatives data. Another senior team member preferred a different technology they had more experience with, which they believed would be easier to"See full answer

    Software Engineer
    Behavioral
    +1 more
  • Amazon logoAsked at Amazon 
    Software Engineer
    Behavioral
  • Amazon logoAsked at Amazon 
    +1

    "To determine if a graph is not a tree, you can check for the following conditions: Presence of cycles: A graph is not a tree if it contains cycles. In a tree, there should be exactly one unique path between any two vertices. If you can find a cycle in the graph, it cannot be a tree. Insufficient number of edges: A tree with N vertices will have exactly N-1 edges. If the graph has fewer or more than N-1 edges, then it is not a tree. Disconnected components: A tree is a connected graph, m"

    Vaibhav C. - "To determine if a graph is not a tree, you can check for the following conditions: Presence of cycles: A graph is not a tree if it contains cycles. In a tree, there should be exactly one unique path between any two vertices. If you can find a cycle in the graph, it cannot be a tree. Insufficient number of edges: A tree with N vertices will have exactly N-1 edges. If the graph has fewer or more than N-1 edges, then it is not a tree. Disconnected components: A tree is a connected graph, m"See full answer

    Software Engineer
    Coding
    +2 more
  • Amazon logoAsked at Amazon 

    "SQL databases are relational, NoSQL databases are non-relational. SQL databases use structured query language and have a predefined schema. NoSQL databases have dynamic schemas for unstructured data. SQL databases are vertically scalable, while NoSQL databases are horizontally scalable."

    Ali H. - "SQL databases are relational, NoSQL databases are non-relational. SQL databases use structured query language and have a predefined schema. NoSQL databases have dynamic schemas for unstructured data. SQL databases are vertically scalable, while NoSQL databases are horizontally scalable."See full answer

    Software Engineer
    Technical
    +4 more
  • Amazon logoAsked at Amazon 

    "Colleague moved to a different role, so I decided to fill in and did outshine in showing results within the group."

    Raunak K. - "Colleague moved to a different role, so I decided to fill in and did outshine in showing results within the group."See full answer

    Software Engineer
    Behavioral
    +2 more
Showing 61-80 of 106