Very opaque process that leads to a huge frustration once you get a pass.
I wasn't sure about going through their interview process at first as I have a comfortable position in another great company in the same town. Decided to accept the challenge as I thought "why not, I have nothing to lose except some time and the risk of receiving a pass", clearly, I had underestimated the possibility of a big frustration at the end.
- Contacted by a recruiter, first by mail, then by phone and got invited for an first interview in the Montreal office
- First interview with the same recruiter, told my "Life story" - very fun and light hearted experience
- Line up of engineer interviews:
- First remote interview done by Skype with a lead engineer from Ottawa, not really a technical talk, went through some of my previous experiences again
- Second remote interview with another engineer from Ottawa, this was the only technical interview, was asked to show some of my previous code and talk a little bit about it
- Third interview, in the Montreal offices, with a lead from the design team, very different vibe from the Ottawa staff, definitively not the same energy going on there, again, went through some previous experiences, random chatting
- Pair programming session, in the Montreal offices with another engineer, this is the terrible part of the entire process. Somehow the Shopify staff managed to brainwash themselves into believing that an hour and a half-long code challenge session, closed in a room with someone that you never seen before is supposed to "not feel like a test" and "be a collaborative process".
All these steps combined took longer than a month and each one of these is eliminatory, you're never told what they are expecting from you, I did my homework and went after the company values to at least guide me through the conversations and that probably helped me make it to the code challenge.
At the code challenge step is where the opacity of the entire process reaches a climax, you get sent in the offices for the interview and told you'll be pair programming something with another engineer. No hint of what is going to be the challenge or how are you going to be evaluated.
I was told the most important aspect during the pair programming session would be how comfortable the other engineer would feel working with me, so I set up the entire structure of my challenge around that, very basic implementation with a lot of static parts and no usage of frameworks, I made that choice believing I was going to provide an agnostic and easy to follow experience for this other engineer that would be there coding with me. Oh boy could I have been more wrong.
A week later I receive the negative answer from the recruiter saying they decide to not move on with me, and my biggest frustration is that the feedback they sent was all based on technical issues that were supposedly gathered from this very flawed code challenge.
- - -
My advice for Shopify is to be a lot more transparent about how applicants are going to be evaluated in each of these steps, specially the code challenge. Also, please stop fooling yourselves and misleading candidates into thinking that a code challenge session where one of your employees will be evaluating a candidate is pair programming.