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".
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.
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.
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!