Status: 6 years of experience as a backend engineer
Position: SDE2 at Amazon
Location: Seattle
Preparation: This was my first ever FAANG interview and only prepared for 2 weeks. Solved 30 leetcode medium and hard problems.
OA
Reorder log files (only passed 17/24 test cases)
Top K frequent elements (21/21 test cases passed)
Recruiter reached out next day and setup onsite.
Virtual Onsite:
Note: The problems I got were not from Leetcode but were loosely based on some common LC problems.
Round1: Full of LP questions. Think this round went well.
Round 2: LP questions for 30 mins. Coding question was a variant of this https://leetcode.com/problems/longest-substring-without-repeating-characters/solution/.
This was by far the worst round I had. Tried approaching the solution in an optimal way but the interviewer kept pushing me to solve it via brute force way first. Had a mind block and froze for a few mins but was able to finish the solution in O(n^3) time complexity. End code had a lot of bugs and the interviewer nudged me to fix all of them which isnt a good sign.
Round 3: 20mins of LP. System Design round: Design an online photo sharing application. This round went really well. My background is in distributed systems so this part seemed easy to me.
Round 4(most likely bar raiser) : 30mins of LP. Coding question was similar to https://leetcode.com/problems/analyze-user-website-visit-pattern/. Solved this question with O(n^3) TP and mentioned possible ways to optimize it. Dont think the interviewer liked my solution and I should have taken more time to come up with an optimal solution.
Round 5: 20mins of LP and a topological sort problem similar to https://leetcode.com/problems/alien-dictionary/. This round went well and I was able to finish the implementation with 10mins to spare.
Got an email couple of days later from my recruiter that I dint get the job.
Key Takeaways:
Finally, this was my first ever FAANG interview and now I am confident that I will be able to crack one of these sooner or later. Just need to keep practicing and come up with optimal solutions. My coding speed needs to improve a lot as well.