Preparing for an interview? Check out Cracking the Coding Interview
Published on

Amazon | SDE2 | Seattle | 2024 [Accepted]

Author
  • Shared Anonymously

Sharing my Amazon interview experience as a Master’s new grad with 4 YoE in software development outside of the US

May 23rd: Recruiter reached out via Linkedin

June 21st: Completed the OA

  • 2 coding questions that can be solved with greedy algorithms
  • work simulation that involved system design decisions
  • work style assessment

June 24th: Recruiter informed that I passed the OA
July 24th: Virtual Onsite

  • 2 LP questions before each techincal question

  • I did a lot of mock interviews with current Amazon employees which I think was very helpful. All interviewers were very satisfied with my stories.

  • System Design

  • design a platform for amazon employees to watch training videos, similar to design YouTube

  • I learn most of the system design principles from my past work experience. I just watched youtube videos to know the format and brushed up my knowledge.

  • Coding:

  • word search

  • I started with BFS, figured out along the way that DFS was better but interviewer said to just keep doing BFS

  • Discussed how I would implement DFS but did not actually write the code

  • Couldn't figure out the exact time and space complexity but did talk through the general idea of what was happening in my algorithm and the interviewer seemed to be satisfied

  • Given a file containing hourly and monthly employee salary (wage, employee_id, manager_id) calculate the total compensation by manager id

  • Talked about how to access data, using hashmap to aggregate employee by manager_id, caching result, how it would fit in memory etc.

  • Interview asked follow up question about how I would implement this in production. I suggested using RDMBS with caching layer and batch job to update/aggregate the salary data.

  • Calculate K-most popular items in a stream. (event_id, item_id, timestamp)

  • At first, I thought it was similar to top-k-frequent-elements but the new data keeps coming so heap isn't very efficient. I did implement it with hashmap counter and heap at first but found a problem when item already in the heap is added and need to rebuild the heap. Ended up just using an array and sort on every new event.

  • Follow up question: what if we have a sliding window for events in the last X hours only. Didn't have time to implement the follow up question but talked about how I would use a queue to keep track of events in the current window.

  • Overall, I couldn't come up with an optimal solution but the interviewer was satisfied with how I talked through my reasoning and why I chose each data structure

  • Might be similar to LFU cache

July 29th: offer given

ReportMark as Helpful