[NDA] Amazon | SDE1 | Seattle | Jun 2020 [Offer]
Anonymous User
11904

Even if it sounds cliche and has been repeated multiple times, I would really like to thank the leetcode community. For the past 2 months leetcode has been my to go and this community has been really helpful.

Background: MS in CS from not so renowned university currently working as a SWE in one of the bigger companies in the Bay Area.

I would include an in depth walkthrough of my journey starting from April leading up to the interview day. For those who are specifically here for the interview experience, skip to the end.

So up until April, I had like some where around 50 questions solved on Leetcode. But the approach I took was very bad. I used to try solving a question and if I wasn't able to find a solution, I directly used to jump to the optimal solution, read it once thinking I know the solution now, copy paste the solution and submit it. This is infact the worst way of solving questions. You see, we end up storing the solution in our short term memory thinking that we will be able to easily solve it the next time we see it. But once you try to solve the same question after months or maybe even weeks, poof, it almost seems like you're seeing it for the first time. As I continue writing this post, I'll go on to explaining what was the approach I started using and how it helped me understand questions better.

So it all started in April. Seeing the economy crumbling and all the lay offs happening around me, made me realize that even I could end up getting hit by it. And I was no where close to being interview ready. I couldn't even solve simple questions on Binary Trees. I had to start somewhere and I had to start quickly. So I started slowly, doing a couple of questions a day. I had a hard time solving even the easy questions. I knew I had to get my fundamentals right first.

The very next day, I was contacted by a recruiter from Amazon and he sent me the Online Assessment. Thankfully for me, the questions were on string manipulation and were on the easier side. I received the invitation for virtual on-site a couple of days later. The timing couldn't have been better. I now had an actual motivation to be interview ready.

Going back to the fundamentals, I started going through CTCI for all the topics I was having a tough time with. I went through each of the data structures and solved the related questions on paper (to get the whiteboarding experience). Another material that really helped me was the youtube videos of MIT Opencourseware 6006. Well, it's MIT, it's ought to be good, right? Just kidding, though the course is really very good and I would highly recommend people to go and check it out.

The biggest problem was working from 9-5 and then preparing for interviews. But because of covid, it was easier to manage since I did not have to waste 2 hours a day on travelling. People say I have solved 500 questions, or I prepared for a year. Yes, practicing is definitely important but you know what is something that's far more important that people forget to mention? Consistency and Discipline. Consistency and discipline is by far the most underrated but the most import thing. You have to wake up each day and you have to push yourself to be better than yesterday. This is my leetcode submissions for the past 1 year.
image

Starting April, I tried to be as consistent as I possibly could (the missed days just goes to show that you need not be perfect, but you gotta keep trying). Trying to solve anywhere from 2-15 questions a day. But this time it wasn't just copy pasting. I used to try for around 30 mins and at least come up with a brute force solution. Then look at the optimal solution and try to find a path from my brute force solution to the optimal one. Because even in life, you aren't going to get the optimul solution instantly. You will have to start from the brute force most of the times. This method actually helped a lot since I could break down the problem and understand it more in depth.

My interview was scheduled for end of May which was then postponed to June. Honestly, two months weren't enough to start things from scratch. But I wasn't ready to give up. I had to give it my best shot and make the best use out of the time I had.

During the last 2-3 weeks, I started using P-R-A-M-P for practicing interveiwes. I would highly recommend this since you it gives you an interview like experience and also helps you practice answering questions to a random person. I realized this because I had another big interview in May which I messed up because I panicked and went numb.

By the end of May I was pretty confident in myself. I knew I had done the best I possibly could in the little amount of time I had. I had proper 8 hours of sleep the night before the interview.

Now for the interview experience. Sadly, because of the NDA I can't give out specific questions but I'll try to give the best information out as possible.

Online Assessment (OA):
Both questions on array manipulation and both of them are available here
https://leetcode.com/discuss/interview-question/344650/Amazon-Online-Assessment-Questions

Virtual On-site:

Round 1:
40 mins of Coding.
This was the bar raiser. He did not follow the usual trend by starting with LPs first. Instead he jumped directly to the coding question. It was leetcode hard question on string manipulation. I had never seen this question before and again, I started to panic and I went numb, again! For the first 15 minutes, I wasn't able to come up with anything. I knew I had to calm myself down or else my chances of getting a job in Amazon was over. I eventually calmed down and came up with a recursive solution. The interviewer was, for the most part, satisfied with my solution.
15 mins of LP.
5 mins of reverse interview.

Round 2:
It was with the SDM.
15 mins of LP
40 mins of System Design.

Honestly, I wasn't prepared for this since it was a SDE 1 role but I gave the best solution I possibly could.
5 mins reverse interview.

Round 3:
15 mins of LP.
40 mins of OOAD.

He started with a simple problem, went on adding modifications and I kept coding simultaneously. This was a really good round.
5 mins of reverse interview

Round 4:
15 mins of LP.
40 mins of Coding.

He asked me a medium question on arrays and I was able to code it up in 20 mins. We still had a lot of time left so he asked me a follow up question which was a leetcode hard. Since there was lesser time, I was only able to write up a psuedo code and we walked through a couple of test cases. This was by far the best round.
5 mins of reverse interview.

At the end of the interview, I was happy with my performance since I knew I couldn't have performed any better than this.

I would suggest buying leetcode premium since it helps you solve the company specific questions and also helps you sort questions using frequency. It is definitely value for money. Also even though there weren't any questions from Top questions from Amazon in Explore section, I would still highly suggest solving all of those.

As I kept saying thoughout my experience. All you have to do is stay consistent. I have been through the entire process and I know how stressful it can be. Some days are harder than the others. But you gotta think about your end goal and how badly you want it.

I hope my experience helps others who are trying to prepare for their upcoming interviews. All the very best.

Resources:

C-R-A-C-K-I-N-G the coding interview (CTCI)

MIT Opencourseware 6006 (Youtube)

P-R-A-M-P (Interview Prep)

Comments (26)