The interview process was simple - an initial phone screening, a G+ hangout interview with coding exercise, and an onsite interview that lasted 3 hours with 3 separate interviewers.
- The initial interview went well. No problems
- The second interview is where things started becoming awkward. I started with a senior there who asked a few of the standard questions, as well as more complex topics like GC and distributed systems, of which i was able to answer most of them (though, I was not trying out for any of the tuning or infrastructure jobs), but the coding exercise was strange. He asked a question about how to find the max of an array, which was an easy O(n) problem which was implemented perfectly. I mentioned that max could be done in terms of fold, and as soon as I said that, he seemed to become confrontational, immediately asking me to implemented fold, which I did. Then, with 10 minutes before the close of the interview, he asks me to do a maximal subsequence problem in java, of which I'm not the most familiar, because i'm a Scala programming (i.e. what they were hiring me for). I gave the basic algorithm, but because we don't see dynamic programming too much in Scala, it was a tough sell, not to mention an impractical amount of time to ask such a question.
- The onsite interview reflected more of the same, though, I came prepared for more dynamic programming questions and nailed the first and last interviews, while the 2nd (on constructing a distributed system) was not the best. To add to that, the interviewer used terminology that I don't think he understood (for instance, asking to construct a real-time event feed, but then the solution being more of a micro-batch update feed), and was confusing to someone who understood the terms.
The takeaway from all of this is that the job listings are not quite accurate, the interviewers are very VERY naive when it comes to interviewing as far as time to answer questions go, as well as with content. Since when are vector clocks and in-depth knowledge of garbage collection algorithms considered CS fundamentals? Especially for an FP role?