I had a brief phone screen with the QA director before I was called onsite. During the phone call, we discovered quite a bit of mismatch between my skills and the job requirements. They needed a person with a lot more security protocol knowledge than me. I was honestly not expecting a call onsite, however they did invite me over to their Sunnyvale office a week later. Once there, I discovered the role was completely different from what was mentioned over the phone screen. They wanted me to join as a support engineer and slowly transition to the role of a developer. I was okay with that eventual goal, but I was not expecting C interview questions. I was not allowed to code in any other language, which made it hard for me since being a tester, I had not worked in C over the past few years. The interviewer was critical of me and felt that I had not done my home work of preparing in C and security protocols, which was unfair since I was not told of their strong preference for C during the phone screen. I had read up on security protocols but my knowledge was clearly not sufficient for them. I was also asked some regex questions and Linux questions which I was able to answer easily.
A couple of weeks later the QA director asked to come onsite again to chat with the VP. I was told it was not going to be a technical interview. However once there, it turned out that the VP was not available so they again started to grill me on C concepts etc. The interviewer from last time interviewed me again. He implied that they had given me a second chance and I had again not prepared. At that point, I felt that the interviewer and the QA director who called me onsite should really talk to each other rather than give interviewees contrasting information about the role, the interview process etc.
It was altogether a very frustrating experience for me. I never heard back from them after that. They did not even have the courtesy to send me a rejection email.