I recently went through Amazon SDE interview process. Hopefully my experience is useful for others :
Online Assessment , AMCAT based :
- String manipulation , relatively easy using java StringTokenizer.
- Create a Binary Search Tree , insert elements, and perform a variation of search. Simple enough.
Onsite was remote, with 4 rounds :
- First round was System Design. Standard question , design recommender system . Went OK, donnemartin's SystemDesign primer really helped. I wish they had kept this to be the last round , so that I could use the starter brain energy for tougher questions .
- Second round was to count the number of occurrence of characters in a given string, in decreasing order of frequency. Easily done using Priority Queues.
- Third round really threw me off. They asked me to design a 'grep' like utility, but didn't specify if I was to concentrate on object design, overall design, or on some specific function. I was all over the place, but at the end I felt like I didn't do this well. I wish the interviewer had made the expectations clear.
- Fourth round was standard Leetcode medium question. Given a range of numbers 0..N , and pair of numbers between 0 and N , count the number of sets. The question reeked of Union Find, which I couldn't code in time, even though the approach was accepted. I wish I had thought to use graph connected components as the approach. That was a more straightforward approach.
Most likely I am rejected, but after the way the third round was conducted, I lost a little bit of respect for Amazon. They should be crystal clear in expectations.