tl;dr Do Leetcode as you would do for workout, daily and consistent. You know it and you should stop asking the same question everyone has already asked "How did you prepare?". This advise is for someone with a CS background. If you dont have it, you'll need extra work cause CS is definitely not as easy as coding bootcamps make it look like. One thing is coding, the other is understanding CS.
Hey all, I received a Facebook offer and I owe too much to Leetcode that I needed to give back so here it goes.
I'm going to start saying I have been to almost all FAANGs' (except Netfilx, but did others like Airbnb, Twitter, MSFT) offices for onsite, and failed all them with many bittersweet experiences. My journey started with Facebook and I was able to get to the MPK office and just fell in love with what a Tier 1 is, but of course I failed it (2 times FB fails before offer, 2 MSFT, 2 Google, apple, twitter, 2 amazon, airbnb, 2 linkedin, etc)
I have a bachelors and masters in computer science so I was pretty aware of al CS topics around interviews, data structures, big o, etc. I have been working on mobile development for around 5 years so that has been my focus most of the time.
Many many times I always got the feedback "You did fine, but just not good enough" and even had 3rd rounds with the same result, and many times me having to hunt the recruiter begging for more feedback, but you know how restricted they are on that. The feedback varied from technical, to design and from time to time the behavioral side.
I kept on thinking they were full of sh... specially as I was doing so well on my job and got promoted pretty often. Nevertheless, I kept trying as it was also helping me improve my own interview skills for recruiting people on my team.
Then, pandemic came. I had 2019 as a rest year for interviews as they were taking a toll on me, specially on my optimism and how I thought about myself. But, I wanted to start over in 2020 and it looked like it was going to be hard because of companies hiring less. I had already setup a plan where I would first go over some Algorithms course in coursera (did the Princeton ones, highly recommend them). I took them to get them fresh on my head (I rarely use them on my day to day). Then, I took a chance at reading Designing Data-Intensive Applications. I think this is a must for any SE nowadays unless you work on very very small projects, but this book has it all. I read it because I wanted to have a better understanding on bigger systems overall but not with the focus on design interviews as I intended to apply to mobile only positions from now on.
Next, the big step: Leetcode. I had no plans to interview soon so I had planned for around a year to prepare. For me, I was aware of how bad I choked during interviews even though I knew how to solve them, it was like having someone watching me made me stop thinking so I needed to up my game on this. I started with all the "Learn" sections from Leetcode, just completing them. I then ordered all problems by descending order of acceptance to try to solve the easiest most accepted ones (many times I felt down not being able to solve this by myself)....and then big papa Leetcode introduced the montjly challenge by the beginning of the pandemic, it was just on point what I needed. I did the daily one plus any other problems I gathered on my favorites from different posts on interview experiences.
This is my take on Leetcode problems:
Now, for the actual interview:
I have to be honest I really dont recall the exact questions, but believe me, they where common for the company at that time. It was nice that I was also asked mobile coding stuff rather than all leetcodes. Again, I really dont recall the questions, no bs. Either way, dont think knowing the exact questions are as helpful as grinding leetcode.
The design question was also mobile, but I think you'll do a good job here if you have experience on apps that serve a big big number of users, maybe from another tier 1. Otherwise, you might have a good understanding of how mobile goes, but the scaling topics will be crucial here and I believe practice is important for this. You can still do a good job, but I know they are super picky on this. There was very little talk about the backend, it was mostly on the API to use.
All in, it has been a great experience overall and was able to meet people with way different backgrounds and thought processes.
I do want to high five Airbnb on their mobile interview process. I hope it's the same still as it was maybe 2 years ago, but man, everything was related to day to day duties, yo got a project, had to develop it, then find bugs, it was nice and only one leetcode throughout the whole day. * I failed this because I was stupid and underestimated time
Thanks for reading my drama story, but I wanted to give back and give hope to people getting stressed in the process
p.d. Please, dont jump into SE interviews out of your field without preparing really well for them. I used to go for general SE interviews coming from mobile and the design phases always crushed me cause I only know the basics of balance loaders and caching, etc, but you'll be asked way more deep things. If you do, read the book I mention above.