Three stages, First a Skype conversation with two staff, Then a Codality pair programming test, followed by a full day interview consisting of four stages.
I will preface this with the fact that I myself have sat on the other side of the interview table in my prior roles.
The first two stages were well formed, with relevant questions and challenges. These two stages could comfortably be held up as an example of development interviews done right, and I would like to thank the staff I interacted with for their time and professionalism.
Where it fell apart was the third stage, the full day interview. After waiting for 20 minutes past the starting time, I was informed that the pre-agreed order of the day had been shuffled.
After a tour of one of their warehouses, which was as technically impressive as it was depressing - The staff working in the warehouse seemed abjectly miserable. I am perplexed as to why they wanted to show it off - Especially as the role I was applying for involved no warehouse systems related work.
Following this was by far the worst section of the day, A two hour "Pair Programming" interview. Pair programming is quoted, because I was told as I was sitting down that I was expected to for-fill both roles out loud as a test of my collaborative abilities. Think on that one for a moment.
If that wasn't unusual enough, I was also expected to finish off a partially completed software solution (The only part of this interview that made sense) while under a constant barrage of questions from someone role-playing a technically naive product owner. Upon reviewing my personal recording of the interview the longest I was allowed to work without interruption was one minute and forty seconds. This would be a great test of how a candidate functions under pressure, but completely useless in determining my ability to complete a solution (which without the artificial duress, wouldn't have taken me 10 mins).
Most frustrating was the lack of answers to basic questions regarding the purpose and context of the solution. When asking if there was a business process that would require the explicit instantiation of a null rectangle (which as provided actually created an infinite rectangle) I was asked what I thought (How could I possibly answer a question about somebody else's imaginary scenario?). After several tries to get an answer, and explicitly stating that in my day to day work I would never proceed without either an answer to this question, or without researching the business case, I was forced to just fix the method to work as described and move on.
Strangest was the question on how to implement a binary search for the solution. I provided the standard solution in pseudo code (which upon later review, was correct), but was repeatedly asked what else I would do. In hindsight I believe they were looking for me to detail the alternative procedure (check if the middle element is equal to the target), Something that is only called for when N is truly enormous. If they had asked explicitly I would have been able to answer and detail why it is seldom used.
Over the 50 min lunch break nursing a lovely fresh cluster migraine I seriously considered going home and withdrawing my candidacy. I decided to remain for the second technical interview of the day, convincing myself that the remainder of the afternoon would likely be the same quality as the first two interview stages.
The second technical interview was mostly average, With a couple of good quality questions, a code review exercise and some of the usual completely unrelated to software development whiteboard questions that we all must endure.
Finally, there was a HR interview, which was standard and not worthy of expansion.
What surprised me most here was the complete lack of desire in my portfolio of personal published projects, which I tried to present on several occasions through the day and was instead hurried on to answer more check box questions. What could possibly be more useful for a technical assessment than actual proof of competency and success?
This leads me to my conclusion, What exactly was Ocado trying to achieve during this process? I have seen from other interview reviews on this very site that you have done better in the past.
I have accepted another offer.