Status : 3rd Year/Junior, ECE, Undergrad
Position : SDE Intern at Amazon
Location : Vancouver, BC, Canada
Date : Nov 14, 2019
Experience: 1 prior SDE internship
Thanks to those in this commuity, who contributed helpful data like this OA database (both my questions were here), interview experiences, and questions/test-cases/solutions. I applied to Amazon (Canada) in summer and began hardcore-studying as a student having already done 13 Leetcode questions, an SDE internship (non-technical interview) in the auto industry, and a handful of projects. In any case, I did 90% of my interview-prep in the 1-month timeline below. I was lucky that this coincided with a 1-week vacation from school, but utlimately, I skipped 1 week of classes and bombed a few midterms.
That said, I had helpful background knowledge about tech internships from r/cscareerquestions and YouTube ( Chris Jereza & Joma ) from before I began studying.
Preparation (1 month)
- Two-weeks reviewing DS+A fundamentals with CTCI and AlgoExpert
- 1.5-week doing 30 Leetcode questions based on this Medium Article and previous candidates’ posts
- Purchased Leetcode Premium to do Amazon-tagged questions
- Studied my weak-sections in Elements of Programming Interviews (especially meta-algorithms)
- late Aug : applied online (resume only)
- early Oct : Amazon emailed OA1 to me
- mid Oct : OA1 (score of 7/7)
- mid Oct: OA2 (passed all tests)
- late Oct: OA3 (unsure of score)
- early Nov: notified of final interview
- mid Nov: final interview (virtual)
- mid Nov: received offer
OA1 consisted of 7 code-snippets that each had a logic-bug you’re supposed to fix. You do it in either Java, C, or C++. Personally, I didn’t study for this. Some of the code-snippets I got, were: sum of an int-array, bubble-sort, and printing even-numbers of a list.
Here’s a public List of OA2 questions . Evidently, it was 100% accurate for me.
To be clear, I passed all test-cases for OA2.
An SDE work simulation that evaluated your decision-making in managing multiple time-sensitive tasks as part of a team at Amazon. You should read this article on Amazon’s 14 Leadership Principles to better understand Amazon’s decsion-making values.
After the work-simulation, you got a set of SAT-style logic questions , which I hardly finished in time.
My interviewer was based in Palo Alto, CA and asked two behavioral questions:
- Have you ever gone out of your way to help a peer? (ownership)
- Have you ever had to make a tough decision without consulting anybody? (bias for action)
Whereas I had a story for Q1, I blanked on Q2 for a solid 5 minutes.
Then came two technical questions (40 min left):
I definitely got really really lucky. That said, I still stumbled quite a bit:
- Q1 : I first pointed the sorting method O(nlogn). My interviewer asked if I could do better, but I blanked, and started talking about logging char-frequencies for a solid 30-sec, before realizing we could just store the elements in a hash-map.
- Q2 : My interviewer told me to use Java or C++ (not my preferred languages). I asked if I could code in another language first, then translate it to C++. He agreed. I knew the inorder-traversal solution by heart, so this was no problem; but, afterwards I realized I made a syntactic error.
Nonetheless, I got my offer the following week.
Fun fact: 28-hours prior to my offer, on the Amazon Job Portal , my status changed from " Under Review " to " Application Moved to another Posting ".
After noticing this, I searched around the internet to see what it meant, but didn’t get a definitive answer.