I submitted my information to an ad that they had listed on my school's employment site and I didn't hear back for the position I applied to. However, they called me unexpectedly a few months later saying that they were interested in me for a new program. The interview process consisted of three video-chat interviews with engineers from across the company.
The first interviewer asked some basic logic questions, like Fermi problems.
The second interviewer asked more logic questions, and some more in-depth programming questions, including stuff about object-oriented programming.
The third interviewer asked about my experience with programming, including my work style and approaches to learning.
There were a few issues with the first few interviews (at one point, I hadn't heard from my contact in the company in over a week, after which he said that he 'forgot' and set up my third interview). However, the worst part was yet to come.
Shortly after my third interview, my contact told me that I had great feedback, and that I would get an offer by the end of the week.
The next *month* was filled with broken promises about deadlines for offers, with excuses ranging from not being able to contact certain people because they were in a different timezone (apparently no one in this company has used email) to an absurdly Kafkaesque approval process. I admit that I should have seen the signs at this point; however, my contact constantly gave me promises for an offer that he would break with astounding sycophancy, so I kept up hope.
Finally, almost exactly a month after I was promised my first offer, I was informed that the company had made some decisions that meant that my offer would be contingent on some changes that I could not accept. At no point during this entire two month process was I informed that this was a possibility.