Given 3 online challenges to complete. One is an easy logic and aptitude test. One is a coding challenge (similar to leetcode easy). One is a project challenge that is intended to be completed on github.
Interview questions [1]
Question 1
Coding challenge: given a 2d array of prices of stocks of different company over 7 days. Find the 3 top company with the highest averages.
A couple of programming questions on my own IDE, some design questions, and some culture fit questions. Most interviewers are nice, helpful and carry good conversations. Feedback is timely and appropriate.
Interview questions [1]
Question 1
Design a library system assuming there's nothing in place
I applied online. The process took 6 months. I interviewed at Shopify in Aug 2024
Interview
This process started fine and ended in a very confusing and disappointing way. I submitted an application online, was contacted by a recruiter the next morning. I was asked to participate in a 75 minute pair programming exercise, as well as to fill in a personality test and cognitive skills assessment. I was not shown the results of the personality test nor the cognitive assessment.
The pair programming exercise was where things took a turn. My interviewer really struggled to communicate and seemed to be extremely nervous, to the point of visibly reading a script off camera and struggling to articulate full sentences without rechecking the script. He spent 10 minutes talking about himself and his life, but did not allow me to introduce myself or even say my own name. He then shared the problem, which involved reading a very lengthy gist. I asked typical clarifying questions, talked about his preferences towards testing (I usually write tests as I go, but he suggested a manual testing approach for the sake of time) and so we got started.
I was able to solve the bulk of the problem very quickly, but had interesting interactions where he would incorrectly correct the syntax in my code (my editor intellisense would literally flag his suggestions) and then ask me to "prove him wrong" when I would ask for more clarity around why he was suggesting a given change. Of course, having 10+ YOE I know better than to engage in a battle of wills with someone during an interview (possibly ever), so I tried to just refocus us back on the problem whenever this would occur. The trickiest part of this problem occurs at the very end, and I had to test out a few suboptimal approaches before finally finding one that was clean and functional. The end result solved the full problem, passed all test cases, and the code was clean.
He then ended the interview abruptly and did not allow me to ask any questions. I felt good about the code and solution, felt good about how I communicated and redirected somewhat hostile interactions throughout, and chalked up the awkwardness to maybe him being inexperienced with giving interviews like this or more junior in his career. I've certainly coached plenty of engineers like him on how to give effective technical interviews during my time in engineering leadership, so it wasn't especially concerning for me.
To my great surprise, I received the rejection email the next morning. When I asked for feedback, I was told that "at this early stage, there is no feedback to give" and that it could come down to my experience/technology exposure/etc. But I have over 10 YOE, in Shopify's core tech, solved the problem efficiently and cleanly, and kept a cool head during strange antagonistic interactions with the interviewer so my gut says he failed me.
Overall disappointed in the experience as I've held Shopify Engineering in high regard for many years, especially with regard to culture and being welcoming towards individuals who are typically underrepresented in tech (a category in which I very readily can be categorized).