I applied for the position online, and was contacted by a representative from HR to schedule a phone interview. For the first part of the interview, I spoke with the rep from HR about the company structure, background (they were recently acquired by a large Japanese company). There were no questions - it was an informational discussion.
I then talked with a development manager, and we discussed their technology platforms, my work history, and career goals. The phone screen was more of a basic technical screen, but seemed to be more of a test to see if I could fulfill a particular role opening up in the company and to make sure I would fit in with the company culture.
After the phone screen I received a rather difficult development exercise that took about a week to complete (working on it casually while still working full time). The exercise touched on advanced OOP PHP, database, and web services concepts.
Upon acceptance of my exercise, I set up an in-person interview. The in-person interview is a rotating panel. Several employees come in individually to ask questions. Most ask you to create small functions and algorithms to solve particular problems. Many questions were more about my work history, and to see if I would fit in. There were ample opportunities to ask questions about the company and the culture, and the employees were very forthcoming with answers. Afterwards I took a tour of their office, which was pretty new. They have a ton of free drinks, snacks, and have catered lunch every week. Sold!