The process started with a call with the recruiter, which was very professional and friendly. I then moved onto a pair programming interview. The interview's exercise was well thought through, starting with a very simple problem, then progressively adding more complexity as the interview went on. The interviewer was very nice and friendly. Then I moved onto a systems design interview. There were two interviewers on the call: a shadow who was friendly but mostly silent, and a primary who came across as fairly condescending. By this I mean I had a strong feeling throughout the interview that I was here to be judged rather than to have my work evaluated, and they also scoffed and mocked me for my questions during the time at the end of the interview for questions I might have for them. In the end I failed that interview, which I kind of saw coming because I did not prepare it enough beforehand. I had a follow-up call with the recruiter ~a week later, to go over my feedback on this last interview. Most of this feedback was fair (lack of preparation, etc.), but there was a few bits in there that I thought were really far-fetched and unfair. One example being that during the pair programming section of the interview, I wrote a lot of comments instead of actual code, because the base was Java code, which I'm not familiar with (previous experience with Java wasn't a requirement of the role) and I did not want to slow down the interview by having to constantly look up the correct syntax, since we were already tight for time. But it sounds like at least one interviewer thought otherwise, because their feedback included "lack of familiarity with the language isn't an issue but writing code is better than writing comments". Which feels to me like completely missing the point of the interview, which was (from my understanding) to understand how I approach designing a system rather than my approach to programming (which the first pair programming interview was for). Plus I feel like it would have been justifiable to also penalise me for diverting my attention from the systems design exercise and into specific language semantics. Another example is criticising my choice of using a specific queuing technology based on the project's scale, which I don't remember being clearly explained to me at any point in the interview. In light of this, it's probably for the best I didn't prepare this interview well enough, because I finished the process feeling, from the interviewer's behaviour and feedback, that I was set to fail the interview regardless of how I performed. I was also made aware of a cooldown period of 10 months for applicants, which sounds to me like the company shooting themselves in the foot (by never accounting for human error on either side), but I understand it's standard practice in the industry so I don't mind it too much.