Amazon | SDE2 | Seattle | August 2020 [Offer]
Anonymous User
5252

Status: 3 years of experience, Currently Employed as Technical Consultant (some coding, some consulting), BS CS Top 100 CS school
Position: SDE 2
Location: Seattle, WA
Date: August 2020

Applied to several positions online and finally got contacted by a recruiter in late July. Took the online assessment and heard back in a week that they wanted to move forward and scheduled virtual onsite interview for 3 weeks later.

For prep I did ~150 leetcode questions (Right now I have 88 easy, 81 medium, and 19 hard questions complete, but around 30 are from when I was job searching out of college). I did 3 mock interviews with a friend where I would interview him on a leetcode question, then he would interview me and we would give each other feedback. I also took 2 paid mock interviews from Amazon employees on a well known interviewing service: a technical interview and a system design interview. These were definitely worth the money in my opinion. For behavioral I started by trying to get two examples for each LP, but that was too arduous so I just spent ~5 hours and made a list of what I thought were some of the more impactful moments of my career and related those to the leadership principals. I only got around 15 examples total, and there were gaps (ie I did not have any examples for frugality, as I am not a manager and have never been involved in a financial decision). I spent an hour on video chat with my significant other receiving mock interview questions. I told her to not give me any positive feedback at all and to dig into the questions and poke holes. I did not use the STAR method as I find that I was spending too much time trying to distinguish S and T, and the interviewers almost always ask for R as a followup question, which I feel like is a way better flow of conversation, rather than just dumping you experience and lessons learned on them in a single monolouge.

Onsite Round 1 (Bar Raiser) - 1 hour:
I assume this was the bar raiser because he was the only interviewer that was not in the domain that I was interviewing for. This round was entirely behavioral. I was able to provide decent examples for all the questions he asked. He dug deep and got the details of each example. Sometimes he questioned the impact of some of the stories and I had to be honest when my story was not of huge consequence. The last five minutes I asked him general questions about amazon. Ultimately I thought I did really well on this round.

Onsite Round 2 (Hiring Manager) - 1 hour:
There were two people in this interview, both were Engineering Managers. One was shadowing the newer one who was giving the interview. First Leadership Principal question I didn't have a great example for and stumbled a bit, but gave a loosely connected example, he asked for another example and I gave him another example that sort of fit the criteria. He moved on to the next question which I thought went a little bit better. He was satisfied and we moved on to a System Design question. At this point I only had 30 minutes left in the interview. I got all the functional requirements and was working my way to the non-functional requirements, but he started pushing me past that. I started creating a data schema and he said ok thats fine but lets draw the design. I started with the first functional requirement I identified, but he said he was more interested in the second functional requirement. I came up with some ideas, and he came up with some issues with my ideas. I tried to address them but I felt like he wasn't happy with my design. There were a few minutes for reverse interview questions and I asked some pretty good questions in my opinion.

Break - 30 minutes:
Felt pretty bad about the last interview but shook it off, got some water, ate a power bar, and refocused for two more.

Onsite Round 3 (Coding Round) - 1 hour:
Interviewer was an SDE 2 and was shadowed by a new employee. Gave brief introductions and jumped right into a coding question. The questions was a variation of a leetcode medium question. I had never seen this problem before but I had solved something with a similar approach and realized the approach would work here. I instantly said the solution which was to use a hashmap and he asked me to walk through some examples of how my code would work. I did and he agreed that it would work so I coded it out. This all took about 10 minutes. We then moved on to LP questions of which there were two. I had pretty decent examples and he did not dig as deeply as the other two interviewers. He was happy with my answers and we had 30 minutes left so he asked if I wanted to do another coding problem. I said sure. He gave me a parentheses question that I am pretty sure is not on leetcode. I started out talking through my thought process. I got close to the correct answer, but didn't make the final mental jump to the correct solution. I got confused a couple times by the examples he gave and their outputs, so I had to reclarify the rules a few times. After some back and forth of me and him talking about possible solutions, he hinted towards a data structure that I could use and I finally made it to the optimal solution. We had about 5 minutes left and I asked reverse interview questions. He was really fun to talk to and seemed to really enjoy answering my questions.

Onsite Round 4 (Coding Round) - 1 hour:
Interview was another SDE 2, we started out with a few behavioral questions. I had decent examples and was able to talk through them effectively and demonstrate what I learned from them. I felt like we connected on shared experiences in the industry. That lasted 20 minutes and we moved on to the coding question. I recognized the question as a medium leetcode question relating to trees that I had solved. It was literally a daily leetcode problem from that week. I told him that I had seen it before. He was a bit hesitant but said lets do it anyway and we can do another questior if we solve it quickly. So I talked through my solution and he wasn't fully on board but instructed me to code it up just so we have something down. As I began coding I realized that there was a variation from the leetcode version that made this problem more difficult. I worked through it and eventually got the solution down, but it was really messy. We talked about the run time complexity and decided that my solution was O(n^2) worst case. The optimal solution was O(n). I was kicking myself because in my prep I had literally solved it unoptimally in the daily question, read the solution, but didnt take the time to fully understand the optimal solution and internalize it because I got a big green success when I hit submit. I had some reverse interview questions and he was really enthusiastic and answered all my questions.

Result:
After the interview I was feeling pretty bummed because I felt like my interview with the Hiring Manager hadn't gone well. I figured he would have the biggest say on the hiring because the position was for his team. I was still hopeful that maybe I could get a SDE 1 position because I mainly thought I didnt do well on the system design portion and at least had working solutions for all the coding questions. The interview was on a Friday and I got an email on Monday that they wanted to make me an offer as an SDE2. I was extremely pleasantly suprised.

Tips and Lessions Learned:

  • Connecting with the interviewers plays a bigger part than I expected. I felt really good about the majority of the conversations I had, but didn't feel confident in the technical skills. I thought that the technical stuff would be more important both in terms of time and weight, but I actually spent more time doing standard behavioral interview than coding and system design. 145 of the 240 minutes were spent either talking about my experiences or theirs.
  • Number of leetcode questions doesn't matter. You need to worry about learning the tools (datastructures and algorithms) and identifying when to use them. I got caught by the trap of completing a question and moving on without understanding it. Your mastery of a question does not end when you submit an accepted solution, that is where it begins.
Comments (7)