Overall process took about a month from first contact to receiving rejection email.
Contacted by recruiter and had a quick discussion about the position then we set up a time for a 30 minute call with the hiring manager. Hiring manager provided more information about the role and I provided my background.
Then came the technical interviews (about 40 minutes each) :
- Coding interview: Simple code implementation in language of my choice. Not overly difficult.
- Design interview: explain how you would implement a photo upload and serving solution for the company
- Code review: look at the PHP code in a repo and point out problems with it
- Communications: A lot of the typical interview questions like "Talk about a time when you needed to ask for help", "Talk about a time when you needed something from another person or team", "Talk about a time when you disagreed with your supervisor", etc.
- Met with senior management to discuss the position and then answer a technical question related to the role.
I found just about everyone to be very nice and quite personable. The sheer amount of time this took was a bit overwhelming. Each of the people I talked to made it sound like I had the job so I was a bit surprised and disappointed when I did not receive an offer - maybe this was just my own wishful thinking!