Wednesday, December 19, 2012

I wrote this a few hours after I've completed the phone screening, grossly dissatisfied with my own performance and with the interviewing process, and I believe that the two are related. The recommended reading for the interview, "Get that job at Facebook" by Carlos Bueno, advises to "Give feedback. We regularly survey candidates about the interview process and take feedback seriously." This leaves me some hope that my opinion on the process would be heard.

1) The scheduling

I've submitted my application on Oct 2nd. I've received a reply explaining that the interviewing would take place in December, and inviting me to suggest date and time ranges when I would be available.

Do you have many candidates that know three months in advance their available timeslots? Do you expect all these timeslots to remain reserved for the three months, until the interview is finally scheduled? To me, this seems ridiculous -- especially as the proposed "availability slots" are ultimately ignored, as seen further.

I have send the rough estimate of my December availability to Marianne L Dove on Oct 3rd. Receiving no response by Oct 29th, I've asked her again, receiving the response "I do apologize, as I thought I had responded, but now see that I had not." Talk about HR competency.

By Nov 11th, I've settled my plans for December, so I've emailed Marianne with the updated availability schedule. Her response was "We will be back in touch in early December, via email, to confirm the day/time of your technical phone interview." However, there were no updates by Dec 7th, which I believe is not-so-early December already. I've emailed Marianne again, and she replied that she had "submitted a request to have you scheduled for one day next week, or the week of 12/17", indicating that she had been totally ignoring my application for the first week of December -- neither requesting my interview to be scheduled, nor informing me of the occurring delay. What's more, she had submitted the request using my October estimate of the availability, not the updated one. Talk about HR competency again.

On Dec 13th, I've finally received the confirmation of my interview being scheduled on next Tuesday 11AM PST -- despite me requesting the interview on a Thursday or Friday. What's the point of asking the candidate their availability, if you then ignore their preferences, at each and every step of the process?

I've replied to Chelsea Ganan that the scheduled time is inconvenient for me, and asking for a postponement. My request was totally ignored -- not even a "sorry can't do that". Well, at least this was consistent with Facebook not showing any respect to the job applicants.

2) The suspense

The "December Interview Preparation Tips" describe the interview as "In terms of preparation... like a CS exam." No problem -- any of us has taken countless CS exams before, and knows what it takes. Any of us, no matter how good his studies, needs to review the material before the exam, to make it "pop out of the head" in the limited time given. This is why CS exams are scheduled long in advance -- a few weeks, if not a couple months. No CS student would read up for an exam a month or two before it, "just in case" -- this is why the "early warning" that the interview would be "some time in December, probably" doesn't help any.

My interview was finally scheduled three weekdays in advance, leaving me in fact one day to prepare, because I've already had plans for the other weekday and the weekend. Do you have many candidates who can prepare for a CS exam in one day? Or do you expect them to be ready to abandon their plans at zero notice?

I mean, scheduling the interview even one day in advance is no problem if you position it as a "come as you are" interview. But if you want us to treat it like a CS exam, do make it like a CS exam on your end! Do allow some time for the preparation for the industry candidates who haven't had any CS exams in years.

In the one day that I've had available, I've been reading up like mad, and still obviously I couldn't prepare as well as I'd like to. The feeling of coming to a CS exam unprepared builds up the lack of confidence during the interview, and contributes to the stress -- as if the stress from the important interview itself wasn't enough.

Then comes the punch: the coding exercise during my interview didn’t involve any intricate algorithms or data structures, none at all, just robust coding. Exhausted and stressed by the rushed preparation, turning out useless, I was so perplexed -- as if I’ve not only come to an exam unprepared, but after all to a wrong exam.

Upd 24 Dec: several commentators have noted that if I need a week of preparation for the job interview, it just indicates I don't have the required skills for the position. While true for many other places, at Facebook they themselves emphasize that the practical skill requirements aren't much related to the content of the job interview. Quoting the "December Interview Preparation Tips" again: "In terms of preparation, think of it like a CS exam. There is a wide gap between industry experience and fundamental coding exercises so I urge you to take some time to prepare for the type of questions we'll be asking."

3) The connection

I've been using the best Internet connection available -- the wired LAN at the Israel Institute of Technology. (To give an impression of its network infrastructure: the Institute had been allocated two of the handful Israeli class-B IP ranges.) On the day of the interview, I've made a test call to a friend in Israel (some 120km away from the Institute), to confirm that the call quality is perfect. Nevertheless, when the interviewer called me, I couldn't hear him properly.

I realize that Facebook network connections are no less solid than at the Institute, and that Skype may have intermittent "glitches" routing the voice traffic via a slow intermediate node. But still, isn't it worthwhile for Facebook recruiting to prepare for such a case, and make the interviewer able to switch to a different Facebook IP range, to give Skype routing a second chance? For a network as big as Facebook, this certainly must be easier than for a private person, which normally has no control over the IP address allocated to him. I don’t think I’m the only candidate ever who has run into such problems with the Skype connection, so why is Facebook so unhelpful about them?

We had to resort to phone conversation, which had to be interrupted when I needed both hands to type my code -- meaning I could get no feedback, whatsoever, from the interviewer during the code exercise, nor could I explain my code as I typed it. This certainly did affect my performance and, together with the unanticipated technical failure, contributed to the stress level, as if it wasn't high enough already.

All in all, I'm highly discouraged from ever retrying to interview for Facebook. Maybe this was the intent, so that only the most determined would remain, I do not know. But the impression that Facebook recruiting has made is really really messy and frustrating.