I was first approached by a Facebook recruiter via LinkedIn. I didn't respond for several months. He initially emailed me in December 2016, and I replied in March 2017. I asked him many questions, and he asked me many questions about my current job, experience, and professional work that I have done. That went well.
He then moved me forward to the technical interview. Since I live in Texas, I did an online phone interview with one of the Facebook developers for Android. He asked me what I thought about any particular Android API. I spoke to him about my thoughts on the Content Provider and Sync Adapter, as those are the most crucial parts of the Android app at my current company, and I knew them very well. After that, he asked about my education and anything else that I thought was relevant. This was very quick, maybe 10 minutes.
Finally, we moved to the coding problem. Initially, it was supposed to be one problem. I was told beforehand that we would use CoderPad and that I would get to run my code inline. I practiced solely on this for three weeks leading up to this interview. When we started the coding, it was on a blank notepad, with no compiler. They had given me incorrect information, but that was okay. I worked through the problem and asked the interviewer whether or not he would compile the code later on. He assured me he wouldn't, stating he was just looking to see if I had the general problem-solving skills to solve the problem.
Of course, I solved it but didn't take any time to make sure it was 100% compilable. I was just getting all my thoughts out on the general idea and method. We finished 10 minutes early, and he said that he would ask me one more question just because we had time and it would have no bearing on the interview; he just wanted to see if I was familiar with Thread Pools. I was, and again, I gave him my abridged solution. The interview ended shortly after.
I felt very positive that I would move on to the next stage and fly out to California to test in person. Unfortunately, about 24-48 hours after the interview, I was notified via email that I was not selected for the position. I pushed for feedback, and the recruiter did, in fact, call me back about three days after that.
I was not given the position because my code would not compile. I had a solid understanding of Android and a solid foundation in Java, but my code didn't compile, and that was why I didn't get the position. The recruiter told me to re-apply in 6-9 months. I told him that I am no longer interested in working for a company that gives false information in an interview. I can only imagine how working for Facebook might be, given that experience.
Note to anyone interviewing at one of these big tech companies: Despite what the interviewer says, write your code so that it compiles. Write your code so that it's the best you can do and so that it runs on the first time without any bugs. Use 100% of the coding time, even if you feel confident that it's done. I should have taken the extra 10 minutes to flesh out the code to make it compilable, but I was inexperienced in the interview process. This knowledge has greatly improved my success rate for other interviews at other companies.
You are given one method that does all the work to pull in "x" bytes of text at a time.
This next method takes the output from that first method. You need to complete it so that it prints out each full line of data, up until the line break is reached.
The following metrics were computed from 11 interview experiences for the Meta Android Software Engineer role in United States.
Meta's interview process for their Android Software Engineer roles in the United States is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Meta's Android Software Engineer interview process in United States.