I applied for this job online, and several days later, I was contacted by the VP of Engineering to do a phone interview. It lasted about an hour and consisted of general information about the company and the position I was applying for, my background and work experience, and a technical conversation. The technical part included questions about stack implementation, dependency injection, mvc, design patterns and others. It was more technical than I thought it would be (usually phone interviews are not very techinical). Overall, the first interview went at a good pace, not too slowly and was not too intimidating. After the conversation, I felt like this position was a great fit for me.
Shortly after the phone interview, I was invited to an on-site interview. The on-site interview somewhat resembled the famous "Guerrilla Guide to Interviewing" from Joel on Software, but probably not as intense. It consisted of 4 technical one-on-one interviews. I interviewed with a Sr. Web Developer, Sr. Java Developer, CEO (also technical) and the VP of Engineering. Technical questions ranged from deciphering a couple pages of javascript code (front-end), questions about different SQL joins, Hibernate, performance and scalability (back-end), search and fault-tolerance algorithms (CEO), and overall system architecture and technology stack (VP). Each interviewer did a good job at balancing the technical part with personality questions, hobbies, interests and etc.
It was a long day, but everyone was so nice and friendly that I actually enjoyed interviewing. They made me feel very comfortable and gave me plenty of breaks, so it felt more like a professional discussion as opposed to technical interrogation. The CEO took the time to give me a good understanding of the company and where it was headed, which I really appreciated knowing how busy he must've been.
I went home with a good feeling about the team, company and how the interview went. A few days later, I received an offer.