Contacted a recruiter who forwarded my resume to the company. Then I had a phone interview with the recruiter which was not very technical. Then they scheduled a technical phone interview with 4 people. They asked standard questions like design patterns, automated testing, and architecture (describe architectural decisions in last project, my answer was not good on this one). Then they scheduled an onsite interview. They paid the flight and a decent hotel near their HQ. The onsite interview consisted of several 45min interviews with senior devs from different departments. There was also some good lunch in a nearby restaurant. For the on-site you want to prepare trees (small coding question involving recursion) and hibernate. They seem to love hibernate; I think I was asked about this in almost all of the interviews.
Initially they did not make an offer (could be because they did not think I would stay there with my personal situation), but then made me an offer a few months (!) later. I declined the offer since I already had another one.