Amazon SDE Intern Interview Experience — Coaching a Mock VO With BQ, Morse Code, and a Word Break II Follow-up

Company: Amazon

Role: Software Development Engineer (SDE) Intern

Round: Onsite

Seniority: Intern

Last week I ran a mock/practice VO (virtual onsite) session for someone prepping for their Amazon interview for the 2026 SDE intern role. It was BQ plus two coding questions. First, the BQ part: 1. How do you handle it when you run into difficulties at work? 2. When your team runs into difficulties, how do you motivate them and come up with a way to solve the problem? 3. Why did you choose Amazon? Then the coding part. Coding 1: You're given an array of strings words. Each word can be written as the concatenation of the Morse code for each of its letters. For example, "cab" can be written as "-.-..--..." (that is, the concatenation of "-.-.", ".-", and "-..."). We call this concatenation process a word's transformation. Transform every word in words and return the number of distinct transformations. The approach here: iterate over each word, iterate over each letter in the word, build up its Morse code, and use a set to record the distinct codes, then just return the size of the set. This one's easy — you've probably all run into it grinding LeetCode. Coding 2: Given a string s and a dictionary of strings wordDict, add spaces in s to build a sentence where every word in the sentence is in the dictionary. Return all such possible sentences in any order. Note that the same word in the dictionary can be reused multiple times in the segmentation. Building on the DP approach, I modified the dp array so each element is a vector. For element j in dp[i], it represents a word spanning from s[j] to s[i]. That way, the ways to split s end up stored as these (j, i) pairs, and you reconstruct s by searching backward from dp[s.size()] through these pairs and stitching the pieces together. Since the size of dp[i] isn't necessarily 1 (i.e., there isn't necessarily only one way to split), this needs to be written recursively. Coding 2 was basically a follow-up to coding 1, and it's on the harder side. The mock session went smoothly and stable as always — I gave him a pass.

Amazon SDE Intern Interview Experience — Coaching a Mock VO With BQ, Morse Code, and a Word Break II Follow-up

Amazon·Software Development Engineer (SDE) Intern·Jan 2026
OnsiteInterneasy

Last week I ran a mock/practice VO (virtual onsite) session for someone prepping for their Amazon interview for the 2026 SDE intern role. It was BQ plus two coding questions.

First, the BQ part:

  1. How do you handle it when you run into difficulties at work?
  2. When your team runs into difficulties, how do you motivate them and come up with a way to solve the problem?
  3. Why did you choose Amazon?

Then the coding part.

Coding 1: You're given an array of strings words. Each word can be written as the concatenation of the Morse code for each of its letters. For example, "cab" can be written as "-.-..--..." (that is, the concatenation of "-.-.", ".-", and "-..."). We call this concatenation process a word's transformation. Transform every word in words and return the number of distinct transformations.

The approach here: iterate over each word, iterate over each letter in the word, build up its Morse code, and use a set to record the distinct codes, then just return the size of the set. This one's easy — you've probably all run into it grinding LeetCode.

Coding 2: Given a string s and a dictionary of strings wordDict, add spaces in s to build a sentence where every word in the sentence is in the dictionary. Return all such possible sentences in any order. Note that the same word in the dictionary can be reused multiple times in the segmentation.

Building on the DP approach, I modified the dp array so each element is a vector. For element j in dp[i], it represents a word spanning from s[j] to s[i]. That way, the ways to split s end up stored as these (j, i) pairs, and you reconstruct s by searching backward from dp[s.size()] through these pairs and stitching the pieces together. Since the size of dp[i] isn't necessarily 1 (i.e., there isn't necessarily only one way to split), this needs to be written recursively.

Coding 2 was basically a follow-up to coding 1, and it's on the harder side. The mock session went smoothly and stable as always — I gave him a pass.

Curated and edited by PracHub

Practice the questions from this interview

Amazon SDE Intern Interview Experience — Coaching a Mock VO With BQ, Morse Code, and a Word Break II Follow-up | Amazon Interview Experience