Contacted by a Salesforce.com recruiter via LinkedIn inMail. After an informational call with the recruiter, she set up a phone screen with the hiring manager. The phone interview was pretty general- experience, a few technical questions, and then any questions I had about the job. After passing the phone interview, I had to take a programming test that lasted about 2 hours. It was done remotely over GoToMeeting and involved a programming exercise to create an iPhone app in XCode. After passing the programming test we set up an onsite interview. There were 5 interview sessions lasting on average 45 mins each. Several of the sessions were done via video conference or Skype. Questions covered the usual: object oriented design and data structures, iOS concepts, unit testing and UI automation, and work experience and behavioral. Lastly I talked to the hiring manager again about team fit and career goals.