The phone screen was pair programming, and you were allowed to use AI (they recommended using the Cursor IDE).
It was a question I'd seen mentioned in other interview report threads — a shorten URL problem, similar to a LeetCode-style question. The interviewer added some follow-ups. Since AI was allowed, it wasn't too hard overall — communication mattered more, so understanding what the interviewer wanted you to implement came first.
After passing the phone screen, I was scheduled for onsite, usually four rounds:
Life story: I'd heard it's really just chatting about your life story with HR, mainly to see whether you match Shopify's culture. (My original HR went on leave, and the HR who took over halfway through didn't schedule this round for me — said they'd schedule it after the other three rounds passed.)
ML modeling: given an ML problem, discuss how to solve it from a modeling angle (data, features, model selection, training & evaluation). Mine was product ranking — just using a mainstream classification or ranking model was enough.
ML system design: still an ML problem, but unlike the previous round, you discuss how to solve it from a system design angle. Mine was personalized product feeds.
Project deep dive: think ahead about which project you want to talk about — this round varies a lot depending on the interviewer.
The final result was a rejection. HR's feedback was that the ML system design round lacked depth. I actually work on personalization-related stuff, so I thought that round went fine — to this day I still don't know what wasn't good enough. This was my first onsite, so I didn't have super high expectations going in, but getting rejected in the area I thought I was strongest at was still pretty demoralizing.
The long road continues.
Discussion
Loading comments…