Just got an offer from Meta. Although I will not disclose details regarding the interview - signed an NDA and want to honor it - I still wanted to give back by sharing how I prepared.
So, how did I prepare? I focused first on theory - books like CLRS (Introduction to algorithms) go a long way - and then practiced on different platforms. When practicing, I worked on writing efficient and elegant solutions, using the standard libraries of my language of choice when appropriate and trying to write idiomatic code whenever possible. Looking at the most voted solutions for each question is invaluable as it gives you a window into other's minds: you can learn a lot just by looking at how top coders think and write code.
$12
In terms of preparation, it took me a few years, and I had some failures and near misses along the way, like everybody. The interview process is very competitive and optimized for avoiding false positive, and so failure is part of the game. To all of you dreaming of joining a FAANG, I'd suggest not to give up on your dreams, but also to focus on your current job: apart from the fancy company name and the perks that come with joining a FAANG company, there are plenty of great company outside of FAANG where you can stil do excellent work and grow both as an individual and as an engineer.
Good luck to everybody!