Hi all,
The leetcode community has given me so much over the past couple of years so I think it’s my time to give something back. If you want to get to the interview experiences..skip ahead.
Just to give some context: I worked in an investment bank for about 4 years and in 2020 felt like I was stagnating. Felt like I wanted to feel like what it’s like working for tech companies. I had 3 yrs of experience before that but mostly in India. Had never heard of leetcode before 2020 and my interview prep used to be focused around going through a lot of interview questions from random sites. (I wonder how I got the jobs that I did before :D)
Anyways fast forward to Jan 2020 and I got a call from a Microsoft recruiter. I cracked the OA and started prepping for onsite. That is when I came across leetcode for the first time, and it felt like a gold mine to me. I did somewhere around 50-60 LCs easy/mediums and watched some sys design videos and felt I was ready (Boy was I wrong!). Needless to say, I tanked the interview but to my surprise 2 of the three coding rounds were from Leetcode and I was like holy cow. Looks like there is a way to get into FAANG after all for an average engineer like me. Over the next 4-5 months pandemic hit and with nothing better to do I kept on grinding leetcode and giving interviews with every company under the sun including FB, Amazon and a bunch of other fin tech companies. Tanked all of them but I could feel that my ability to solve questions and their variations was improving with every interview. At the same time, I was also trying to get better at recognizing patterns.
However, after interviewing with almost 15-20 companies over 6-7 months, I didn’t get a single offer. I did a couple of onsites but that’s about it. I was a little desperate by that time and the feeling that maybe I am not good enough was starting to sink in. But just at that time I got a call from another ecommerce company (2nd biggest after Amazon probably) and went to onsite and what do you know..it was my lucky day. Cracked all the coding question and knocked the sys design out of the park. Got an offer and moved to Austin.
Fast forward another year and the feeling that I couldn’t crack FAANG was nagging. I had a great team and a great manager with amazing work life balance. I know that FAANG is not the end of the world, and we should be happy if we are at a good place etc. etc. but I just felt that I had to crack it just for the sake of it. So, I decided to give it another shot. Renewed my premium membership. By now I had about 270 LCs (100 easy, 120 med, 40-50 hard). I applied to a few companies.. only the ones that I really wanted to get into and I got calls from literally all of them - (FAAG), LinkedIn, Microsoft, Indeed. I lined up interview with them trying to keep them close enough so that I don’t have to revise too much as well as far enough so that I am not overwhelmed.
I will discuss my experiences here:
Amazon:
The recruiter from Amazon reached out. I had interviewed with Amazon twice last year and this one was personal :D.
Onsite:
Recommendation: Be ready with some interesting stories for LP. The coding questions are usually LC Medium level.
Result : Offer
Apple:
Phone Screen : This was with the hiring manager. He started off with some behavioral questions around agile/waterfall and then gave leetcode easy/medium about array manipulation. He gave me 25 mins time to solve the question. I solved it in 5 (anyone who has been grinding LC for 1 year should be able to I think). Anyways he asked me to quickly schedule the next rounds with the HR since I mentioned to him that I am interviewing with other companies as well.
Onsite: This was split over two days due to scheduling issues. True to its nature these were the trickiest interviews.
Google:
Google allowed me to skip phone screen and moved me to onsite directly. This is my dream company. I know it might not be the highest paying one right now, but I have always believed in the company.
The recruiters were really helpful and accommodating of my scheduling requirements.
The recruiter reached out and said that they couldn’t make up their minds and wanted to do two more coding rounds.
Result : Reject..feedback from the recruiter was what I was expecting..killed round 1..round 2 not so much.
Recommendation: Union find, seg. Tree, Tree Maps, String manipulation and back of the envelope calculations.
LinkedIn:
Phone Screen: This was pretty straight forward. Warm up question was around finding balanced parenthesis and follow up with multiple types of brackets. Second question was an array problem. Solved both and they wanted to move to onsite. I told them that I have an offer and some other onsites and I would really like to move quickly but they couldn’t be bothered. Recruiter reached out after a few days, but I told her that I don’t intend on moving forward with the process.
Result: Next round but didn’t take it up.
Recommendation: Leetcode most frequent should do it.
Uber
Phone Screen: Hardest interview of the season. The guy expected me to solve account balancing problem and the output of the problem was supposed to be the required transactions. He had a follow up also to this which he removed after realizing that I was hardly going to be able to finish the main problem in time :D. I had never seen the problem or maybe had seen it but ignored it thinking it’s too hard for phone screen prep. He even made me run test cases on it :O :O. All the tests ran fine but I knew it was a reject. Their expectations were beyond crazy.
https://leetcode.com/problems/optimal-account-balancing/
Result: Reject
Recommendation : Ummm…errr…Pray.
Facebook:
I knew this was a tough nut to crack that’s why I scheduled my phone screen after the long weekend. I went through the FB top questions lists a bunch of times and boy was it worth the effort.
Phone screen:
Onsite:
Result : Reject. TBH I think I did really well. But didnt hurt as bad as google since wasnt too keen on joining FB anyways (Even before the outage ;))
Recommendation: Grind top 100 from LC. Also make sure even if you can’t code out the super optimal solution, you at least know about the complexity of the super optimal one and can have a discussion about it.
Indeed
This was the longest set on interviews. Was able to skip the phone screen. The onsite loop had like 8 hours of interviews.
Interview 1 : Coding question with a mix of trees and follow up converting it to graph. Solved it using djikstra. Interesting question. Havnt seen on LC.
Interview 2 : System design around designing job review system. The interviewer was very receptive and helpful.
Interview 3 : Hackerrank. This was the weirdest interview. They gave a question around implementing fuzzy search (beast of a problem) and said they will turn off their video and audio and just observe me :/. It was a 1 hour 30 min interview and managed to get 13/19 cases pass. IMO it was a wasteful exercise since there was no interaction with the interviewer anyways. Might as well have sent me the link before the interviews.
Interview 4 : Resume deep dive. Questions around different projects. Nothing to write home about.
Interview 5 : Code review. They gave a PR and asked me to provide review comments. Once again the interviewer turned off their video and asked me to perform a normal code review. Nothin out of the ordinar if you are used to reviewing PRs at work.
Result : Offer
Recommendation : The most thorough interview of the season. Indeed is a pretty good employer from Austin's perspective. Default WFH and competitive comp. More of a vest and rest kind of place. I think if you are good with medium LC should not be a problem.