I gave the Data Engineer Onsite interview in March 2019.
A recruiter reached out to me via LinkedIn and asked for my interest in Data Engineer role at Facebook. As I am currently working as a Data Engineer, I thought that this would be a good opportunity for me, so I agreed to a Phone Screen.
The Phone Screen just included my past work experience, relocation preference, etc. I scheduled a phone interview after 1 month so that I could prepare well for it. The recruiter gave me a decent amount of materials to prepare.
The questions in other reviews pretty much match with what I had faced during my Phone Screen. They basically ask 5 programming (Python) and 5 SQL questions, giving 30 minutes each. The questions are of moderate difficulty but solving all of them within time-limit can be difficult. That is why it is advised to actually prepare online coding via Leetcode and Hackerrank rather than just relying on questions from Glassdoor. I was able to completely solve 4 Python questions, with 1 question almost completed and 3 SQL questions completely solved, with 1 question almost completed. The 'almost-completed' questions in both questions were logically 'satisfactory' according to the interviewer.
The next day I was congratulated by the recruiter on doing well on my phone interview, she connected me with another recruiter who would take care of my onsite process. This time the recruiter explained the onsite process in great detail, including what the interviewers are looking for in a candidate. Basically, they not only want someone technically capable but also having business acumen who are able to identify "Key Operating Metrics" for any new application. Again I was given plenty of materials to prepare. I scheduled the interview in the next month.
The onsite interview is what went a little weird (and why I am not giving any rating to this interview). The onsite interviews are basically case-studies, where you are given an application (ride-share app, online gaming, social network app, etc.). They expect you to first note the different metrics to check if the business is doing well and then create a Dimensional Model for that business. After that, you will be given tasks which will require SQL and/or Python coding. Asking clarifying questions is encouraged on paper and the whole interview is said to be a "collaborative process". And that is what I had in mind when I was answering my interviewers. But it seems that my clarifying questions were counted against me by the interviewers. Despite that fact that I was able to answer all of the questions and had a great discussion in all of my interviews, I was sent a rejection email the next week.
I was not given any specific flaws in my feedback. It just said that I was a great cultural fit and that I had a strong background and expertise, but they had a candidate with an experience that better matches their requirements. This was completely in contrast with what I had experienced during the interview.
Even though the interview process was very well arranged, no matter how great you are in your field and no matter how great you were in your interviews, there is always a chance that you will not be selected because they found someone better than you or with more experience. So interviewing here is basically like rolling a dice, it requires some luck in addition to skills to get selected. Whether to keep going through the long and strenuous preparation and interview process again just to work here is up to the individual. Good Luck!