I interviewed with an HR Representative on the phone first, and then I did an on-site interview during which I interviewed with HR, 3 or 4 engineers and with the hiring manager. They followed up within a few days with an offer, didn't leave me hanging for long. I thought it was odd that HR questioned me on whether my parents were engineers or not.
Two of the interviewers took me to lunch and just chatted socially during lunch. They asked about my hobbies and interests, I think they were trying to make sure I'd enjoy living in a smaller town. I was presented with a code snippet during lunch and asked to find the error, but it was fairly informal and the engineer just wanted to see how I responded to the question. He said it wasn't a deal breaker if I didn't identify the error. I did identify it :)
I rated this interview difficult because they actually had me code on a whiteboard and many companies don't require this type of problem solving during an interview. I wish this was a standard interviewing practice and I think it should be standard for all software engineering positions, but it's not. It made me respect the company and the team more for thoroughly vetting their candidates.