Amazon Software Engineer Interview Experience
Amazon · Mid level
Interview process
The process was more rigorous than anything I’d done at other big tech companies, but the recruiter was actually accurate and helpful on what to prepare, which is rare and I really appreciated that. A few things caught me off guard: one round had a heavy focus on low-level system design and concurrency, which wasn't explicitly mentioned in the initial prep guide.
What went well was the structure of the technical rounds they felt very practical and less like abstract LeetCode puzzles. The interviewers were engaged and gave good hints when I got stuck. What didn’t go well was my time management in the coding round; I spent too long optimizing a solution that was already passing the test cases, which left less time for the follow-up questions at the end.
Interview rounds · 3
- 1
Recruiter screen
Behavioral- Q1. Why do you want to join Amazon?
- Q2. What is your strongest technical expertise?
- 2
Online assessment
BehavioralCodingSystem DesignTechnical- Q1. Given a tree with N nodes, each node has an integer value A[i] . We need to remove exactly one edge such that the tree is split into two connected components. For every possible edge removal, calculate: | sum(component1) - sum(component2) | Return the 1-based index of the edge that produces the minimum possible difference. Example N = 7 Edges: 1 2 1 3 2 4 2 5 3 6 3 7 A: 3 6 5 3 2 3 5 The total sum is 27 . If we remove edge 1 (1-2) : Component 1 = {2,4,5} -> sum = 11 Component 2 = {1,3,6,7} -> sum = 16 Difference = 5 If we remove edge 2 (1-3) : Component 1 = {3,6,7} -> sum = 13
- 3
Technical round
CodingBehavioral- Q1. Problem Statement: You are given a straight highway represented by a number line. There are N existing gas stations located at integer positions given in a sorted array stations. You need to build exactly K new gas stations at any integer or real-number coordinates along the highway. Your goal is to minimize the maximum distance between any two adjacent gas stations (including both the existing and the newly built ones). Return the minimum possible value of this maximum distance. Input: stations: An array of integers representing the positions of the existing gas stations. (Sorted in ascending order). K: An integer representing the number of new gas stations to add. Output: A floating-point number representing the minimized maximum distance between adjacent gas stations. Answers within 10^-5 of the actual answer will be accepted. Constraints: 1 <= stations.length <= 10^5 0 <= stations[i] <= 10^8 1 <= K <= 10^6
Tips from the candidate
I'd tell a friend to brush up on concurrency and distributed systems basics. Don't just grind LeetCode; practice writing clean, modular code and explaining your thought process out loud. I was surprised by how much they valued communication over raw coding speed they really wanted to see how I collaborated and handled pushback.
My advice would be to spend a week doing mock interviews where you talk through your design decisions. Also, definitely review the company's tech blog and recent product launches they asked specific questions about their architecture and how I would improve it. Make sure you leave time to ask them thoughtful questions about their tech stack.
Company culture
The team seemed incredibly collaborative. During the panel interview, the engineers didn't just evaluate me; they debated technical trade-offs among themselves, which made it feel like a place where ideas are judged on merit rather than seniority. The culture also seems very transparent. The hiring manager was upfront about the challenges the team is currently facing, which I really appreciated. It felt like they were looking for a partner to solve problems, not just a code monkey.