Applied via website. Contacted promptly by HR, who gave me the standard interview (why do you want to change jobs, etc.). This was followed by a phone interview with the hiring manager, which lasted about an hour. Manager asked some behavioral and technical questions, after which we bantered for a while. He indicated interest in proceeding. The next step was to take a programming test, which I passed. That was followed by a more technical interview with an engineer. The following day the manager invited me for an in house interview. This covered topics like technical skills, soft skills , etc. The interview had group and smaller (1-2 interviewers) sessions. It lasted about 4 hours and included lunch.
The next day the manager told me that he wanted to hire me. This is where it got interesting, It took almost 2 months for an official offer to be made. The reason being is that the offer process goes all the way up the management chain to the CEO and can be vetoed by a number of people before it gets to his desk. When I finally got it, the offer included a 9% pay increase for me. After accepting the offer I had to complete the background check process, which was grueling. They verify every place you claimed to work for the past 10 years and ask for W2's to verify your salary claims.