1. Recruiter
The recruiter emailed asking if I was interested in the Shopify MLE position. We then set up a call — about ten-some minutes on video — and scheduled the actual interview (pair programming, 75 minutes) for ten days out.
The recruiter's email included a guidance doc, but it didn't have much substantive content. It said I could use AI, and it linked the company's tech blog, which was mostly there for promotional purposes.
2. Prep before the interview
Two days before the interview, I read through most of the posts on the forum about Shopify's pair programming round.
I also used Cursor to practice, having ChatGPT simulate a possible back-and-forth between an interviewer and a Senior MLE candidate, on these problems:
- robot movement
- foundational bank system
- guess number game
- shorten URL API
3. The actual interview
Problem: robot movement
3.1 After the interview started, the interviewer sent over a GitHub repo containing just a README, nothing else.
3.2 Design walkthrough
The interviewer asked me to first talk through my overall design approach and sketch the structure on Excalidraw.
The robot's movement logic itself was fairly basic. After I explained it briefly, the interviewer focused their questions on:
- How should the system receive the user's commands
- How should the command system itself be designed
3.3 Coding
I started by defining a Robot class.
We discussed extensibility of the commands — valid commands would keep getting added over time, so how should the structure support that.
I ran a simple test after each step.
The interviewer then asked further:
- What parts could still be optimized
- How would you approach systematic testing
Once the code was done, I pushed it to GitHub.
4. My take
Overall the difficulty wasn't that high, but it's the kind of problem that opens up based on how experienced the candidate is — the quality of your answer clearly separates different tiers. The interview was on a Thursday, I don't know the result yet, will update later.
Discussion
Loading comments…