I went through the technical phone interview where they asked mostly Java knowledge questions, and then a small coding question.
Then I was invited onsite where I was interviewed by 4 senior engineers. They asked about my experience, and also algorithm questions - linked list, designing a system, concurrency, immutability, priority queues, etc.
All of them seemed to like my answers, and so I was invited for the next stage - meeting with the Senior Director, Development and VP of Technology. The Senior Director of Development was not very nice. He was doubting and rejecting my every answer, which I considered to be rude. I was "left with a bitter taste in my mouth" after that interview. A week later I received a rejection email. I just don't understand why they don't trust their senior developers who interviewed and liked me, and why 1 person decides whether to hire or not.