Hi everyone,
I have learnt a lot from the leetcode community and would like to share my experience for all you hardworkers out there!
Status: New grad, BA - top 50 CS school, International student in a top Canadian University
Position: New Grad / SDE1 at Amazon
Final Round Interviews Date: 29 Jan 2020
Interview Timeline
Applied - 15th September (with referral)
1st OA received - 9th November
OAs completed - 21st November
OAs completion email - 25th November
Final Interviews scheduling email - 18th January
I booked a slot for January 23 but HR soon reached out saying the slots were filled and I'll be reached out again when more interview slots open up.
Final round interviews (3) scheduled - 29th January
Waitlist email - 3rd February
Offer - 11th March
OA questions
Passed all test cases for both.
Other assessments went fine too.
Final Round Interviews:
I should probably mention that I had gone back home after college ended for me in December and so there was a time difference of 12 hours. So I basically had to interview from 2am to 5am.
Round 1
LP: Very general questions
TECHNICAL: Custom Question - What data structure would be able to depict a very basic social media network. I answered (graph) and then he was like okay design the classes and everything. So I asked a couple of questions and he seemed to want a very basic graph with just the person name and a list of his friends as attributes. Thereafter, he asked me to make a recommendation system wherein given a person, the algo should output the list of friends he should be recommended. I asked him questions here too and worked out a simple BFS solution. Then, I talked about edge cases, however, I missed an important one which he pointed out and so I quickly introduced a set to resolve the issue. For some reason, he thought that my code was wrong initially and confronted me about it but I rechecked and told him that it is indeed correct. He looked again and then realised his mistake. This took away some time though. Thereafer, he asked me to modify the code so as to only a specified number of recommendations are shown. I said the algo verbally and quickly modified my code for it. I missed out on telling one little thing because of time (that a heap will be used to filter out) which I felt bad about later since it seems trivial. However, the interviewer seemed very happy and I was sure that my interviews had kicked off well.
Round 2
LP: Specifics from my previous experience - what did I do in this role etc. Turned out the work i did during my internship and his first gig ever were very similar so we bonded well over the talks from it. He just basically dived deep into this one experience I had had and kept asking me questions to test both my technical knowledge pertaining to it and my behavior to some circumstances while I worked there.
TECHNICAL: Strange Question - Given a list of words, print all words which has components (words too) of itself in the list. For example - and input of [rockstar, rocks, stars, rock, super, high, way, highways, superhigh] would yield output - superhigh = super + high. and nothing else. I was stumped at first but I quickly arrived at a brute force n^3 solution. Thereafter, I got lost quite a few times but kept talking. My interviewer gave me a lot of hints and a lot of direction for this question I think and in the end I wrote a good piece of code for it and he was happy. I felt that if I get a rejection, it would probably be because of this interview since it felt as if I didn't arrive at the optimal soution myself.
EDIT: Question Concatenated Words
Round 3
LP: Very general questions again
TECHNICAL: Reorder Linkedlist - this one I got lucky cause I had solved this before. However, I kind of blanked out for a couple minutes when I saw the question. But then I thought for a few minutres and arrived at the solution and after discussing the optimal approach, started coding it. However, at this point I was extremely tired and couldn't think straight it was 4am. I think that kind of made me lose my thoughts and I wavered a few times and was generally way slower than I would be considering I knew the algo. Towards the end of the interview time, I did a silly mistake in one area which I pointed out but was too late to correct it. The interviewers (one was shadowing I believe) seemed very happy though so I felt as if I did finee on this one too.
I got my offer a month and a half after my interview - I am grateful about it nevermind the long frustrating wait.
Some background, some advice
I wanted to mention that this has come after a very tough year for me. I interned at a tier 2 company in summer 2018 and felt confident (perhaps overconfident) that I'll be able to score tier 1 internships next summer. And that confidence was crushed, shattered countless number of times the entire 2018-2019 year because the rejections flowed through my inbox on a daily basis. It was particularly devastating since I had set some expectations for myself and I was failing miserably at attaining these to say the least. I was not even getting jobs I wouldn't want at all. I started blaming myself - started stressing and doubting my abilities.
I worked a regular job that my college offered during the summer of 2019 since I was refused everywhere I sought employment. All summer was spent stressing and preparing for the next season - the full time application season. The season started very rocky actually so I was again quite low for a while actually - I must point that out. It wasn't like I worked really hard for a summer and everything fell in place. Not at all. The process was gruelling and long. I started to get so stressed that before my Microsoft and Google final Interviews, I got too sick - it was as if my body had started to exhibit this heightened stress and I felt helpless
Anyway, my point was that
If you ask me what I loved the most about 2019, I would say, without a doubt, the times my girlfriend "forced" me out to enjoy the beautiful summer. And I remember I used fight with her that I want to prep lol. Literally, the entire time spent on leetcode is one hazy memory, but the times spent together with her are vivid in my head and still don't fail to bring a smile to my face. You might say now that I have an offer I am saying all this, but to be brutally honest, this was my answer even like 6 months ago. I don't remember how I came to realise it but I'm so glad I did realise it.
Resources
I think I must have done around 200 LC questions in total. I used premium and I definitely think it's helpful - would recommend. I used groking the DP interview too cause I just always struggled with DP. It was useful too. I did 75% of the CTCI too (mostly in the summer). For Amazon, in particular, I didnt do much for the LPs - just memorized what they were and thought of them on the spot when a question was asked.