Amazon | SDE1 | Seattle | Jan 2020 [Offer]
Anonymous User
2389

YOE: 1 year full-time
Current job: Amazon CSA

I joined as a CSA at AWS in the hopes of having a better chance of getting interviews for SDE roles at Amazon. I used the internal Job Finder tool to find openings and contacted Hiring Managers for interviews. I got an interview with an internal team that develops a web portal for providing cloud support to Enterprise, Business, and Developer support.

Round 0

This round was the equivalent of a phone interview. This interview did happen face to face though.

You have a list of customer reviews for a product. We have a dictionary of words where each word has a goodness rating. For example, the structure would be as follows.

Word - rating
Bad - 1
Good - 3
Awesome - 5

Now, we need to sort the list of reviews based on goodness level.

I thought this was a great problem as we have options to use a good amount of data structures. The first part is to get the aggregate amount of goodness in each customer review. Traverse through the words in each review and look up their goodness value in the dictionary and keep the sum stored. Now, you can create a pairing between the review and total goodness value and insert them in a custom max heap. Keep doing this for all the reviews and you have the result stored in the heap. Finally, you can pop the elements in the heap and return the list of reviews in sorted order. A similar problem would be [1].

Onsite
4 interviews with a mixture of coding, behavioral, and system design questions.

Round 1

You have a list of locations with “Name”, “Type” and “Coordinates”. There is a stream of data of locations coming in. Design a data structure that will give you the Kth Closest type of location anytime. For example, give me the 2nd closest church or 4th closest restaurant. The interviewer was more concerned about my choice of data structures and time complexities involved more than coding. I went by using an unordered map with key as "Type" of location and value being a collection of locations that match said type, organized as max heaps. A similar problem would be [2]. I also explained some basic concepts from [5] since the interview was more design-oriented.

Round 2

Given a 2D map of 1s and 0s where 1 is a star and 0 is space, find the number of constellations. This is a standard LeetCode question [3]. The interviewer asked me variations of the same question which were not too hard. Since I already knew the solution, this round was comparatively easy. I also had a fun conversation with the interviewer where she asked me if given complete freedom to work on my brand new product, what would it be?

Round 3 (Manager)

This was an out and out behavioral round where we went over multiple Leadership principles. We also discussed my experiences as an AWS CSA and being a TA at OSU.

Round 4

We spent a good 10 - 15 mins discussing my projects because he seemed interested in my thesis on Computational Sprinting which I did at OSU.

How to find if a string is a palindrome? Follow up - Find the minimum of additions to be done to a string to make it a palindrome [4]. I struggled at the start as I was going for O (N) based solution (which doesn't exist) but finally, I went with a recursion based solution. We can use DP with memoization to save up on time spent.

Behavioral Questions

Please read the AWS Leadership Principles which will be asked every time. Having a story of how you have carried out or displayed the said value should be enough.

The manager reached out by the end of the week and informed me that I will be getting the offer.

References:
[1] - https://leetcode.com/problems/top-k-frequent-words/
[2] - https://leetcode.com/problems/k-closest-points-to-origin/
[3] - https://leetcode.com/problems/number-of-islands/
[4] - https://leetcode.com/problems/minimum-insertion-steps-to-make-a-string-palindrome/
[5] - https://github.com/donnemartin/system-design-primer

Comments (4)