I was contacted by a recruiter at first. Just some typical behavior questions and my available starting date and stuff.
The next week came a technical interview. I really liked that guy. He asked a bit about tree structure. Nothing too difficult. Then we found we really shared a lot in common, research interests, past experiences, etc. But he seemed to be in Pitts, while the position I applied for was in Cleveland. No chance to meet him in person.
Received an onsite invitation the day after. On the onsite day, they mostly just went through my resume, and found that I was really a match to this position. Asked some brain teasers and some basic programming tricks.
I wrote thank-you letter afterwards.
One month later, checked with them, said under review. Two months later, checked with them, no response. If they found someone better, or simply thought I was not capable, or even were still reviewing my application, fine. But no response is not really professional and annoying.
Wouldn't apply to this company again.