I applied through a recruiter. The process took 1 week. I interviewed at Meta in Oct 2016
Interview
1 HR Phone Call followed by a Video Call interview. The interview process was very pleasant and I can't say enough about how amazing the recruiter was that helped me through the process. I feel like I needed to brush up more on Javascript fundamentals, best practices with CSS, and being more careful with iteration and recursion concepts.
Interview questions [1]
Question 1
I was asked basic Javascript concepts for the phone interview. For the video call I was asked to flatten an array recursively and iteratively in Javascript as well as to do some HTML and CSS design given a picture by the interviewer.
I applied online. The process took 4 months. I interviewed at Meta (Seattle, WA) in Aug 2016
Interview
I've interviewed with lots of big companies and overall have had mostly terrible experiences. Facebook was different, in a very good way. You can tell that a lot of thought and care have gone into their recruiting process.
I saw that they were hiring for front end engineers in Seattle, so I applied on a whim and sort of forgot about it after a while. A couple months later, a recruiter reached out to me and we had an initial phone conversation. This was a very initial screen that was mostly non-technical with the exception of some quick and simple JavaScript pop-quiz questions at the end (== vs ===, describe event delegation, etc).
Next step was a technical phone screen. This was pretty fast-paced as the interviewer was trying to squeeze in as much as possible in a short amount of time while leaving time at the end to field my questions. He did a very good job at keeping things moving and on track, asking me some general questions about my background and then some simple coding exercises to test my knowledge of HTML and CSS, and consequences of going with different design choices. Then a simple JavaScript tree problem.
Next were the in person interviews. This is the part I thought they did exceptionally well compared with other companies. The whole process was extremely transparent and I was given lots of information and resources ahead of time so that I knew what to expect. It consisted of 2 coding (ninja) interviews, a design (pirate) interview, and a behavioral (jedi) interview, all about 45 minutes each. Between interviews a lunch was scheduled with another engineer, who is not part of the feedback loop, giving me plenty of opportunities to ask my questions about company and culture, as well as get a tour of the office.
Overall, the questions seemed very relevant to the position. The interviewers were also super friendly and helpful along the way, and seemed to genuinely want you to succeed. No over-bearing egos set out to prove how much smarter than you they were, or trying to trip you up with trick questions or irrelevant questions (I've been asked physics questions before for front-end roles, sigh).
Great experience.
Interview questions [1]
Question 1
(Phone) Given two identical DOM tree structures, A and B, and a node from A, find the corresponding node in B.
I applied through college or university. The process took 2 days. I interviewed at Meta (Waterloo, ON) in Oct 2015
Interview
Interviewed me on campus as part of coop process. They had a general meet and greet for all candidates the day before the interviews. They said there were to be two interviews, the second being a callback to the candidates they are interested in after the first interview. Since I interviewed for front-end they asked JavaScript specific questions
Interview questions [2]
Question 1
How many times would `addEventListener('scroll', handleScroll);` run as the user looks at their News Feed? And what would be user experience if the `handleScroll` function takes 100ms to execute.
Related to question 1, how could you implement debouncing? Say you wanted the `handleScroll` function to be called only after 200ms has passed between scroll events.