I interviewed and was hired almost 5 years ago. My experience was largely positive, though the process took a long time.<p>I had 5 interviewers. I made it clear to each up front that I had never worked in one of the canonical languages (Java, Python, C++, Go) and that my background was mostly C#. All of my interviewers seemed to take that point, so the questions I was asked were mostly pseudo-code. The one language-specific thing was about Java iterators, so I had to ask about the Iterable/Iterator contract before I could start. My pseudo code was pretty C#ish and that's pretty close to Java, so I was able to intelligently discuss differences or explain my intent.<p>The crazy thing about my interview (and the interviews of most people that I talked to) was that I thought that I crashed really hard. One guy let me fumble around for almost the entire time trying to answer his questions (it dealt with statistics and big data). Of the five, I feel like I knocked it out of the park with two of them, flubbed it with two of them, and the fifth was meh.<p>Later, I talked to the recruiter about it. I was feeling a lot of impostor syndrome (very common) and trying to understand why I was hired and make sure that it wasn't an accident. In the end, recruiters are looking for very high or very low scores from your interviewer, and interviewers give a lot of points for trying. Even the ones that I thought I failed on gave me medium scores because I did a good job of connecting with them on a personal level, and I talked through my work as I did it. So I ended up with 3 moderate scores and two high ones, which was enough.<p>As for passing but not getting hired, that's a little different. You don't really pass the interview. You do a phone screen and then the recruiter decides whether to proceed. After that you come in for interviews, and once you're scored again the recruiter decides whether to proceed. Then you go to hiring committee, where they decide hire or no hire. The recruiters have a pretty good idea of what hiring committee will say, and they tend to send borderline people. After hiring committee you go to offer committee and then you get the offer letter. After you accept the offer, if you're a general purpose SWE, then you talk to teams to determine placement. The whole process took about 3 months for me.<p>For my prep, I actually went on other interviews and read books (particularly on solving by induction - these things show up often on interviews).<p>Everybody has a different experience, but when I read posts by people who claim they were passed over because they couldn't solve a specific problem, I suspect the problem was really poor culture fit, resulting in low scores across all of the interviewers.