Amazon Interview Experience for SDE-I (On-Campus)
I appeared for Amazon SDE-I FTE(Full Time Equivalent) hiring process through my college campus, in March 2021. First, there was an Online Coding Round and it was followed by three rounds of virtual interview process.
Hey geek! It's time to become a success story instead of reading them. Check out our most renowned DSA Self Paced Course, now at a student-friendly price and become industry ready. And if you are looking for a more complete interview preparation resource, check out Complete Interview Preparation Course that will prepare you for the SDE role of your dreams!
Feeling prepared enough for your interview? Test your skills with our Test Series that will help you prepare for top companies like Amazon, Microsoft, TCS, Wipro, Google and many more!
Online Coding Round: From the Online Coding Round, about 40 candidates were shortlisted for the interview process which was held in the next week.
- In the online coding round, two questions (different questions to different candidates) were asked, one a bit tricky and the other one easier. I actually ended up doing neither with complete success (:3).
- In my first question, I remember I passed about 8 out of the 13 total test cases and passed only 2 out of the 9 in the other one. I thought I had no chances for qualifying through but when the shortlist was published, I ended up being quite high up in the list. I was surprised but later what I learned was, the developers who make those questions, actually go through your code thoroughly and find out whether you used the correct logic (or at least close to it) or not.
- If your logic seems fine, and you miss a few edge cases and end up not passing every test case, you’ll still have decent chances of going through (like me!). So, do focus on your logic as well!
Interview Round 1:
- Coming to the first round of the interview process, I was asked to brief myself and how I developed my interest for such a software role.
- Then the interviewer moved on to a few coding questions after providing me with a live coding link where I had to write my code (just the required functions/classes/structures not the whole code from top to bottom).
- He asked me to find an element in a rotated array that was otherwise sorted(https://practice.geeksforgeeks.org/problems/search-in-a-rotated-array4618/1). I told him I can provide him with a binary search solution which will take O(log n) time.
- Learning that I already know the approach, he moved on and asked me to write a function to find the Lowest Common Ancestor in a Binary Tree(https://practice.geeksforgeeks.org/problem-page.php?pid=700221). I wrote the code successfully and ran a few manual test cases on it. After that, he modified the LCA question a bit and asked my approach. I shared what I thought but it was not 100% correct so he told me the correct approach to that.
- Then he asked me another question: https://practice.geeksforgeeks.org/problems/maximum-gap3845/1
- He asked me to solve it in O(n) time complexity and after thinking for sometime, I told him what approach I thought of. I didn’t know Pigeonhole Sorting technique, and tried to solve it using stacks but couldn’t arrive at a proper solution in that limited time. But the interviewer was happy with my approach and told me “Quite close”.
- Within a couple of hours, I received a call and got notified that my second round of interviews was scheduled in an hour.
Interview Round 2:
- After briefing myself just like the previous round, the interviewer asked me about my Machine Learning Project and then moved on to a coding question.
- He asked me about the Circular Tour problem ( https://practice.geeksforgeeks.org/problems/circular-tour/1 ) which was actually new to me because I didn’t solve it before. When the interviewer asked me what extra data structure I would like to use, he was quite surprised when I told him that I wouldn’t need any of it (not even a queue since its solution is quite popular, as I have learned after my interview). I solved it in O(n) time complexity and O(1) space complexity and took about 15-20 minutes to think of the approach.
- We later went on to check a few test cases manually and inside my code, I found out a couple of mistakes and corrected them. In the end, he was actually quite happy with my approach, and we had a little discussion about the Big O, theta, Omega notations before the interview ended.
- After the second round, I was quite confident that I shall get shortlisted for the third round which was indeed true after I received the mail which said the final and third round was scheduled for the next morning.
- Now some tension started creeping in my mind as I could actually see the finishing line inside my head. I didn’t sleep well at all and was ready for the interview quite early in the morning.
Interview Round 3:
- After talking about my past, the interviewer thoroughly asked me about my project and the concepts I used in it.
- He actually worked on those concepts beforehand, so he asked me every detail of it and I actually enjoyed having that conversation because for the first time one was truly interested in what I did (;3).
- Then he asked me a few behavioral questions based on their leadership principles (very important!).
- Next, he asked me to implement any cache and write the get() and set() function. I had no idea of cache as it wasn’t in my curriculum since am from an Electrical Engineering background. But I had a little idea about how LRU cache works and tried to implement it using an array list and a hashmap.
- Those of you who have already solved this question can realize that I couldn’t arrive at an optimal solution, actually, I was far from it :(. But I tried and tried and implemented every bit of idea which clicked inside my head within that stipulated time of 1 hour. In the end, he told me that he will look at my approach offline and wished me good luck.
- I was actually very disappointed that I wasn’t able to solve the cache problem which quite a few of my friends knew already. It’s actually difficult if one doesn’t have any idea how it works, so I didn’t blame myself for it, rather was quite happy about how everything went. But within a week, I was ecstatic to find out that I was selected and my name along with 7 other students from my university! Surely they did like my thought process and attitude in the last round because otherwise, my working solution was nowhere near the optimal one. The feeling was unreal and can be never replaced by anything else 🙂
Few important tips:
- Work on your logic and focus more on how you approach a problem and less on the result.
- Go through the leadership principles of Amazon thoroughly and pay great importance to any kind of behavioral questions that might come your way. Also, give importance to the STAR format of solving a given situation since Amazon stresses extremely on these things.
- Whenever you write a code, always try to deduce the Time and Space Complexity of your code because it is extremely vital for qualifying the rounds of any coding interview process.
- Don’t get tensed at all before your interviews unnecessarily because trust me Amazon interviews are interactive, not interrogative. So it’s actually a discussion you have with your interviewer to try and reach a solution to a given situation. Be careful about the time at hand because Amazon interviews are strictly about 45-60 minutes.
Lastly, if I can get into Amazon, trust me ANYONE can. Without inflating myself at all, I will say that I was extremely focused and dedicated to what I want to achieve and worked smartly towards it. Enjoy the feeling of your code running successfully and work on what’s at hand today by keeping an eye on the bigger goal. Always take a break when necessary and make sure the whole process doesn’t stress you out. I am sure you’ll all do great! Best of luck 🙂
This interview experience is contributed by Supratik Mitra.