I had two phone interviews with salesforce.com for this position.
The first interview was about data structures and algorithms. I was asked if I knew what MVC is, and how I would design a parking garage using OO modeling. Standard questions about how I would find 2 numbers that add up to zero (or any other number) in constant time, then using constant memory etc, and then a question about how I would find a Tribonacci number (sum of 3 previous numbers), why recursion on this would be bad, and how I would do this in constant space, writing and reading out the code for QuickSort.
The second interviewer asked me stuff about Natural Language Processing, as I had mentioned I had done a course on this in my resume. After this he asked me given 999 numbers out of a thousand, how I would find that one number which was missing, and then what the solution would be if there were two numbers missing. I thought I had messed up my second interview, as I required hints to do this question, but I suppose as my first interview went really well I was given the offer.
In contrast to what I've read elsewhere, both my interviewers were friendly and nice. Besides, as I had another offer whose deadline was approaching, the recruiting team ensured my interviews happened soon enough.