The phone screen went longer than expected, focusing heavily on implementation details. The interviewer really grilled me on my approach to a Least Recently Used (LRU) cache, asking how I'd combine a hashmap with a doubly linked list.
I felt well-prepared since I had gone through system design examples on PracHub, which made me comfortable discussing eviction policies. The later rounds included more technical questions and behavioral interviews, but in the end, I received an offer, though I ultimately decided to decline.
Overall, I’d say the process was average, with solid questions.
Design and implement a Least Recently Used (LRU) cache supporting get(key) and put(key, value) in $O(1)$ average time. Walk through combining a hashmap with a doubly linked list, eviction policy when capacity is exceeded, and how you'd extend it to handle thread-safe concurrent access.
The following metrics were computed from 2,382 interview experiences for the Amazon Software Engineer role.
Amazon's interview process for their Software Engineer roles is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Amazon's Software Engineer interview process.