My Interview Experience with FAA(~NG) companies
Today I am writing about my interview experience with FAA ( Facebook, Amazon, Apple) companies. I will share how to the remote interview experience and what went well and wrong with those interviews. For your info, I can’t share the questions due to NDA.
Interview Experience
I was referred by a Facebook employee for Software Engineer role. After being referred one recruiter reached me within 3–4 days, then had a phone with the recruiter. Recruiter explained the whole process and asked for phone interview date. I took the phone interview after 1 month. The interview was done over Bluejeans app with coderpad, problems were easy. I passed the interview, went for Onsite.
Onsite was done remotely as the pandemic hit, there were 4 interviews. One behavioural, 2 coding tests, 1 system design. Problems were a bit difficult, one coding problem was algorithm wise easy but implementation wise heavy. I finished the coding sessions with 10 minutes in hand. Behavioural interview was with pretty standard questions. System design was easy going, but couldn’t answer one of the questions as I never faced that kind of problems before. But overall the interview went well. I felt Facebook’s interview was bit harder than others, also interviewer wanted a complete solution, and I had to explain how my code really works. My tips will be do a dry run with some custom corner cases, make your code clean as much as possible. For the system design, I used this app: https://sketchboard.me as there were no whiteboard.
Amazon
I was referred by an Amazon employee for Software Development Engineer role as well. I got a coding test link within 2–3 days. After submitting the coding test, I was moved to Onsite directly as I went to onsite interview 2 years ago. Onsite interview was done remotely. There were 4 rounds as well. 1 round about System Design, 3 rounds with coding. All of the rounds also had Leadership principle questions. I should say, Amazon’s coding questions and system design questions were far easier than Facebook. But the leadership questions were bit hard and thorough( I mean finding out the right examples). I felt bit exhausted after finishing all the interviews, because I had to talk a lot on the interviews due to leadership principle questions. One of the coding interview was like open ended coding problem, its related OOD but where I was given a vague problem description, I had to find out the requirements and then implemented the solution where I had to show that my code was extendable.
Apple
I submitted my application at Apple job site directly. I got call after 2–3 months. I applied for both Software Engineer and Site Reliability Engineer role. They scheduled two phone interviews for Site Reliability Engineer role, both interviews consisted of coding problems and system related questions. Then they scheduled onsite interviews. Onsite interview consisted of 5 rounds, 1 round was having a chat with a fellow engineer to understand the cultures and stuffs, 1 round was system design, 2 rounds related to coding questions, and 1 round was related to system questions. Coding questions were fine, only difference was they ran my solution against test cases which didn’t happen for both Facebook and Amazon. System design was fine until the interviewer were asking about real life scenario solution, like how it really happens on Kubernetes. I really made disaster on the system related question interview, I didn’t expect that much deep level questions related to linux, microprocessors, operating systems and Kubernetes. Also on the coding questions, I finished one round quite early, so the interviewer were asking deep level c++ questions, like how to optimise memory leaks and how memory spaces will look like for the code I have written.
Offer and Rejection
I got offer from Facebook and Amazon. I was rejected from Apple, they didn’t give me feedback, but I know that it was the system question interview. I shouldn’t have actually go for the Site Reliability Engineer role, as I don’t have deep experience about the linux system, Kubernetes, networking and system programming.
How I practiced?
I mostly practiced on Leetcode. I bought the premium subscription. I solved more than 200 problems on Leetcode. Gave 20+ mock tests also. I used pramp.com to have a practice like the real interviews. For behavioural interview, I went through the free course on Educative named Grokking the Behavioural Interview. And for the system design interview, I bought this course: https://www.educative.io/courses/grokking-the-system-design-interview. I also went through the contents on Github: https://github.com/donnemartin/system-design-primer
Suggestions to those who are applying at FAANG
Make sure you understand the job roles, and whether it really aligns with your career and experience, don’t make mistake like I did with Apple. Practice a lot on Leetcode, try to understand the solutions, read the editorials to find out other ways of solving the problems. Do a lot of mock interviews, it will boost your confidence. Try to go through the old questions asked by these companies, as it will give you some hints about what is expected at the interviews. Last but not the least, have faith in you. If you are rejected, don’t lose hope, try again with a better version of yourself.