Amazon | SDE Intern | Gdańsk [Offer] | Google | Intern [Team matching]

Background:

Hello everyone! First of all, I would like to thank all of you for creating this amazing Leetcode community. Solving problems on Leetcode helped me practise my skills, but reading posts in discussion was also very important, as it motivated me to try my best and believe in myself.

I'm a Computer Science student with no professional experience. This year I decided to apply to three companies: Google, Amazon and Facebook. I had interviews with two of them and I would like to share a summary of my thoughts on it.

I won't share the exact questions that I was asked during my interviews, but rather my general approach and experiences.

Preparation

I started my preparation a year ago. I knew that a good CV is crucial for landing a job at FAAMG, so I took part in many extracurricular projects, i.a. tech-related volunteering, Google's development programs, conducting workshops on DSA.

I solved ~350 Leetcode problems (139 Easy : 182 Medium : 28 Hard). I noticed that there are some repeating patterns that solve many different questions. There are two Leetcode posts that helped me a lot in my preparation:

https://leetcode.com/discuss/general-discussion/458695/Dynamic-Programming-Patterns
https://leetcode.com/discuss/general-discussion/665604/Important-and-Useful-links-from-all-over-the-LeetCode

In addition to solving problems on Leetcode, I read "Cracking the Coding Interview", which helped me summarise my knowledge. At the end of my preparation, I solved some problems in Google Docs, just to practise writing code in an environment that resembles the one I would be using in my interviews. I have also asked my friend to conduct a few mock interviews with me, to practise expressing my thoughts and "thinking out loud".

Google

I was contacted by a Google recruiter in early November. I had to fill up a questionnaire regarding my project prefferences and my skill set, and solve a coding exercise. After that I was scheduled for two technical interviews.

  • First interview (45 minutes)
    The interviewer was really nice and supportive. After a short introduction, we went on to problem solving. He started with a Leetcode easy question (as a warm up, I think). I coded and explained it in ~5 minutes. Then, he asked me another question, it would probably be medium level on Leetcode. I came up with a greedy solution using priority queue, explained, coded and tested it. We had some time left, so he asked me a follow up question. I was able to answer it, but I had no time left to code it. After that, I had a few minutes to ask any questions.
  • Second interview (45 minutes)
    After the first interview I had a few minutes break, and then my second interview started. Again, the interviewer was very supportive and friendly. The interview was very similar to the previous one- after a short introduction my interviewer asked me an easy warm up question, then proceeded to ~medium one. I solved it using a N-ary tree, explained my approach, coded and tested it. After that, she asked me some questions about data structures and we finished the interview with my questions about working at Google.

The whole process of recruitment for Google was a great experience, as everyone was really nice and helpful. Before my interviews, I received some resources to study from. Overall, after the interviews I was satisfied with my performance.

I heard back from my recruiter after ~2 weeks that I passed the interviews and they would be moving me into team matching process. At this point I had received an offer from Amazon, and since I knew that some students are rejected during the team matching in Google, I decided to withdraw from Google's recruiting process and "safe pick" the Amazon offer. That was a really tough decision.

Amazon

I applied to Amazon and after a week or so, I received the links to online assessments. They included a basic code debugging, coding assessment (two easy / medium problems to solve in 70 minutes), workstyle assessment and a work simulation. I completed it and after another week I was contacted by a recruiter to schedule my interviews.

  • First interview (60 minutes)
    I was really stressed and tired during this interview- I was literally shaking :( The interview started with a short introduction and then we proceeded to Leadership Principles questions (~15 minutes). I talked about a project I participated in, but the interviewer was digging into details that I didn't even remember, and I really felt under pressure. After that, he asked me a coding question. I solved using Trie, but again he was asking many detailed questions which made me feel a bit insecure. I had a few minutes left for my questions, and immediately after that, I had my second interview.
  • Second interview (60 minutes)
    At this point, I was extremely tired. However, my second interviewer was really nice and actually made me smile and relax. After the introduction we spend ~15 minutes on Leadership Principles and then we moved onto the coding part. He asked me a binary tree question, I came up with a recursive solution and had to think a while on it (recursion is not my strong side but I had to use it in almost all of these interviews :D). I managed to code it properly and we had some time left, so he asked me... yes! Another recursion question! I explained my approach and coded it, however it contained a bug, which I found after going through an example. I had no time left to fix it, so I just told my interviewer how it could be fixed. Then I had some time to ask question and the interview was over.

I thought that there's no chance I passed these interviews. I was just hoping to get a positive feedback from Google, and then... After a few days I was contacted by an Amazon recruited saying that the interviews went really well and that they would like to offer me a job!

Summary & tips

Before the interviews I was stressed but also really excited. Waiting for feedback, however, was a nerve-wracking experience for me. I really wanted to get an internship this year, but instead of believing in myself and just waiting for the results, I filled my head with thoughts like "there's no way I going to get an offer, what am I going to do...". Now I know, that I should have trusted my skills and stay realistic - whatever happens, I tried my best and that's what matters.

As for the interview tips, here's a great post I reccomend:
https://www.linkedin.com/pulse/interviewing-google-heres-6-things-you-absolutely-need-anthony-mays

Thank you for reading and I wish you luck on your interviews!

Comments (3)