I have 3 years of experience. I studied for about 2 months, 8 hrs a day, solved about 300 questions, and had many mock interviews for system design.
I applied on the Meta careers website and was contacted by a recruiter. All interviewers were friendly and easygoing.
Phone Screen:
I was able to code these very easily and we ended up chatting for last 10 mins.
Onsite:
Coding 1:
I had solved the first one before, but the way she represented it took me a minute to solve it 100%, and I solved the second one in about 5 mins with great explanation because I solved that one in past as well.
Coding 2:
This round was interesting. I solved the first problem quickly, as it mainly involved checking conditions. I had solved the second problem before and was familiar with both heap and quickselect solutions. While I explained them about quickselect solution and how it works, I pointed out that I was feeling better solving it with heap. Coded a Heap class from scratch and thought that would impress them. Solved both of them 100% in time, but they didn't seem to be impressed.
System Design:
I spent a lot of time learning about system design/architecture, all the tradeoffs and all the tech that you could use. I solved this problem before as well and had many mock design interviews. I thought I crushed it, but they seem to be looking for something else, because they kept asking about to go deeper and even tho I was explaining something was missing I guess? In the end they said 'it's good we have a working prototype...' But I didn't feel great at the end.
Behavior:
I really vibed with the interviewer, felt pretty good at the end.
After about 12 days, I got rejection email, it's ok, I'm not devastated. The only frustration I have is that they won't say ANYTHING about what went wrong. So after all that study, now I don't know where do I lack, so I can improve upon it.
Good luck to all of you.