This article discusses one of the most sought-after positions in all of tech: software engineer at Amazon. This article takes a look at 1,300 experiences – all accumulated from Glassdoor.

1. Binary Trees

It appears Amazon puts a large emphasis on knowing the ins and outs of binary trees, as they were the most common type of question people reported they were asked. Most — if not all — questions were related to traversing, manipulating, reading, or building a binary tree level by level.

The most common word-for-word binary tree question was “Write a function to check if a binary tree is a binary search tree.”

Examples of other binary tree questions asked were:

  • “Given the root node and the values of any two nodes in a binary search tree, return the smallest subtree that contains the two nodes as a TreeNode.”
  • “Given two sets of trees and ignoring the content of the nodes, describe rules that would define whether or not these two trees are equivalent.”
  • “Given a binary search tree, compute the sum of all nodes in the tree.”
  • “Given a tree, serialize it into a string that can later be parsed and used to rebuild the original tree.”

2. System Design

Ask anyone and they’ll tell you that system design or software design problems are an integral part of any interview. And if you want to do well, you have to prepare for these questions.

System design questions were the second-most frequently asked questions during the interviews at Amazon. The questions ranged from designing a recommendation player to designing a news website.

Some examples of system design questions asked were:

  • “Design the implementation of a two-pixel game — specifically how to implement moving boxes in a puzzle game.”
  • “How would you design OO classes that describe mathematical expression?”
  • “How would you begin to design software for an elevator system?”
  • “How would you design a ‘latest viewed item list’-type function for Amazon?”

3. Array Coding Problems

Technical questions involving arrays were seen quite often throughout the interviews. No need to worry, as most of the questions were not high-level or complex. They were more like questions you would see in the second or third year of university.

The questions ranged from indexing, manipulating, and subsetting arrays to joining or merging two different arrays.

Some examples of array questions asked were:

  • “If I give you an array of N integers, find the largest three numbers that will result in the largest product.”
  • “Given an array of integers arranged in a way where they are first in a strictly increasing sequence and then after a certain point they are arranged in a strictly decreasing sequence, find the max value in that array. For example, [3,6,8,13,20,35,33,30,21,17,14,2,1,-2] : 35 is the max in this array.”
  • “Given two lists of integers, write a function that returns true if there are two numbers in the array such that their sum is the number given.”
  • “You and an opponent take turns choosing numbers — either the first or the last element in an unsorted array — and all numbers are exhausted. The winner will be the one who has a larger cumulative total sum of picked numbers. Code up the algorithm so that player 1 will be the winner.”

4. Personal Projects

The staple of any interview is asking questions pertaining to past experience and projects. The data obtained confirms this, as questions pertaining to projects one did in the past were the fourth-most commonly asked questions.

The project questions that appeared were more surface-level and basic rather than requiring in-depth and high-level explanations.

Some examples of the questions asked were:

  • “What’s one time you took a risk with one of your projects, and how did it pay off?”
  • “Describe the most difficult part of a project and how you solved it.”
  • “Do you have experience when your project is near the deadline, but you still have many parts unfinished? How did you deal with that?”
  • “Describe a challenging project or work you’ve done. What’s the greatest gain of this project?”

5. Linked List Coding Problems

“A linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next.” — Wikipedia

The questions pertaining to linked lists revolved around iterating, reversing, sorting, and manipulating different linked lists.

Some examples of linked list questions asked were:

  • “How would you find the middle element of a linked list?”
  • “Reverse a linked list, both recursively and iteratively.”
  • “Implement deep copy on a linked list where nodes also have a pointer to a random other node.”
  • “Find the Kth element from last in the linked list.”

Most-Read Articles

10 Tips To Become A Better Software Engineer

2nd April, 2021

Practical advice from a programmer with more than 12 years in the field.

Read more

How To Become A Golang Developer: A 6-Step Career Guide

6th April, 2021

Go is an in-demand language across the board. Here are the steps to become an employable and modern Go developer.

Read more

5 Most Asked Qs In The Amazon Software Engineer Interview

11th June, 2021

Analyzing over 1,300 personal experiences of those who’ve gone through the process.

Read more

World-class articles, delivered weekly.