

Updated by Amazon candidates

Software Development Engineer I Interview Experience
Interview process
After the online assessment, I got three rounds of interview back to back in one day. The technical question is a simplified version of a hard LeetCode question. The interviewer did not ask me to optimize my answer to use tries, which I believe is the most efficient solution. Instead, I completed the brute force DFS / BFS solution only and the interviewer was satisfied. I was asked to explain my code in depth though, talking through how recursion works and how iterative variations are usually more efficient since it does not include the function call stack overhead. I was grilled hard in the behavioral interview, where I was asked multiple questions. From my experience, the interviewer expected each answer to hit multiple leadership principles.
- Online assessment
- Technical interview
Interview tips
My biggest suggestion is to literally verbatim say the names of 4-6 Leadership Principles when answering each of the behavioral questions, and try to minimize the overlap across different answers.
Company culture
The whole process feels pretty rushed since this is New Grad general hire instead of team specific position. The interviewers are from different teams and their approaches and standards varied significantly.
Questions asked
Question types asked
Specific questions asked
You're given an integer array, and your goal is to transform every element into k by performing a series of operations. Each operation allows you to pick a segment ending at the last element and either increase or decrease every number in that segment by 1. Your task is to determine the smallest number of operations needed to reduce all numbers in the array to k.
A certain number transformation process follows a structured pattern. Starting with a sequence of digits, the process involves repeatedly summing adjacent pairs of numbers. After each sum, only the last digit (the least significant one) is kept. This operation is performed iteratively, reducing the sequence by one digit in each step, until only two digits remain. These final two digits represent the output of the transformation. Given an initial sequence of digits, apply this process to determine the final two-digit result. Your output should be a string representing these two digits.
Get full access with a membership, or share your experience to try it free.