I was once in an interview where the interviewer was a hard ass. Asking all kids of hard questions about languages I knew, then he got deeper and asked about specifics into those languages. Then started asking about really abstract stuff like different sorting algorithms, OOP concepts like polymorphism, etc. I felt I was holding my own but as the interview went on the interviewer seemed to grow more impatient and irritable. Needless to say I left the interview thinking I blew it. Two days later I got a call from the recruiter saying I was their top choice and got an offer soon after.
P.S. It turned out that guy was just grouchy because he had interviewed so many underwhelming candidates. He admitted he was just trying to break me.