Had a phone screen interview with a technical lead, aced it. Given this game, write code to implement it. The interviewer asked me after the interview when I could come onsite to interview. I was going to be in the area in a couple of weeks, so I told him I could interview then. Recruiter contacted me a couple days later and we setup the interview.
Recruiter called me shortly before the interview and told me multiple teams were interested in interviewing me and asked me if I could schedule a 4 hour block for the interview, I agreed.
Interview started off with a tour of the facility and description of the products. All very nice.
I dressed in button down shirt and tie for the interview. I felt way overdressed the whole time. Most interviewers were dressed casual, several interviewers were wearing shorts.
I started off with a panel of interviewers (7 or 8), several junior, several senior architect level. They asked me mostly technical questions. This lasted about an hour. I very much enjoyed this interview. Panel was relaxed and I knew all the answers. Then a whole new panel came into the room (I was not expecting any panel interviews, so to have two was a little much, 5 or six interviewers this time) One of the panel was senior management, rest were junior and mid level software engineers. More conceptual and knowledge questions this time. Didn't have an answer for one question, but answered all the other questions correctly without any issues.
I then had lunch with the original tech lead from the phone interview. Free lunch was excellent. Definitely couldn't complain about that if I had gotten an offer. Chatted about interests, motivations, etc) lunch was cut a bit short for the final interview.
Was highly surprised to have another panel interview (7 or 8 engineers from the second team). This interview went pretty well, until the final question. Code tree traversal on the white board (after lunch and three hours of interview!!!) Struggled through this one a bit, but really didn't do too bad, solved it in under a half hour. Only annoying thing was while I was coding on the white board the panel was acting as my compiler saying "you're code doesn't compile", and then they would wait for me to tell them where I missed a parenthesis or curly brace...) I tried to make a joke about the panel being such an anal compiler, but I don't think they got it. After finishing the tree problem we had a frank discussion about compensation, career growth in the company, etc. Reading the room I would say that I expected the majority of the team would suggest I be hired.
About 2 weeks after the interview I emailed several of the interviewers and recruiter thanking them for the interview, etc. The next day I got a call from the recruiter. I was pretty sure they were going to give me an offer, although I wasn't sure for which team. The recruiter said they had decided to hire another candidate better suited to the position, but that the feedback from the team was very positive and they thought I was a competent and knowledgeable software engineer and that I should apply again to future positions.
Not sure what happened, my best guess is that there may have been some internal conflict between the two teams and to resolve it they just decided not to hire me. Additionally the positions they were hiring for were in areas I don't have a lot of experience in but would like to grow. I don't think that was the issue though because the original ads for the position specifically stated that extensive experience in those specific areas was optional.
Overall the teams were competent and relaxed, could definitely see myself joining either team and enjoying working with them.