Was contacted by a Facebook recruiter and then the resume exchanged hands when finally got a call from Infrastructure team. Recruiter herself asked screening questions from sql, statistics and programming, trivial ones.
It was followed by a phone interview. It was from 3 areas in sql, programming and machine learning. Recruiter was clearly interviewing to test the limits. There were 3 questions on sql, 1 on programming and 2 questions on machine learning concept. The focus on machine learning was quite less and primary focus seemed to be on sql and programming.
Sql questions were on group by and joins. The first question needed a self join which i didn't get at first, but the interviewer was helpful. The other 2 questions were straight forward group by and join questions .
programming question was a bit unexpected for doing in 20 mins. Was given a log file of format
id, accepted, id1,id2,id3
id, rejected, id5
id3,request, id6
and was asked to create a network graph from it. I guess the interviewer wanted the result in simply a dictionary , but started with what will be the best data structure to store it, to which i answered bi directional graph and then asked me to code the graph, which got me confused b/w the linked list approach and the normal dictionary approach and ended up taking more time. In midway he said that he understood my approach and moved to machine learning.
In machine learning the questions were between bias variance trade off and PCA . In PCA he went into detail as in what method is used to decompose matrix, what is the significance of first principal component and in the end what is the relationship between the first and second principal component. I got stuck at the relationship between first and second principal component.
I got rejected. My best guess is because of the programming question. Recruiter had suggested that phone interview will be around basic data processing question, so wasn't expecting a network graph question at the phone interview level. But guess it's facebook :)