An essential part of working as a developer is getting practical experience in the real world, of which internships can play a meaningful part. The Shopify internship program, which started back in 2011, runs for four months during the summer, fall, and winter terms. Interns can work from one of our offices in Waterloo, Toronto, Ottawa, and Montreal. They also come from varied educational backgrounds and some are even self-taught, such as Megan Boudreau, a previous intern, who is now a full-time employee. What matters here is a passion to be a part of a team and deepen their knowledge in the field.
The Interview
Candidates begin the interview process with the life story, which is an opportunity for Shopify to understand their experiences inside and outside of their jobs. Interns also build a Shopify store to get familiar with the interface and also use it during onboarding.
Onboarding
Successful candidates start with a three-day onboarding process, which equips new hires with the tools they'll need and introduces them to fellow interns. They complete a list of tasks while navigating their online stores and have an opportunity to recommend any improvements we could implement to the system. They also participate in a scavenger hunt, info sessions, and group activities that allow each intern to get familiar with what we believe, what we do here, and how they fit into the culture. Interns attend talks our executives give about their role and duties, and we encourage them to ask the executives questions to better understand both our short-term and long-term goals.
The Learning Process
When interns return from onboarding, they join teams reporting to a lead and are assigned a mentor (who can sometimes be the same person). We believe mentorship is an essential part of the growth and development of all employees. Mikhal Arkhangorodsky is an intern working on the App Platform Core team where she creates a mechanism for third-party developers to request permissions for Shopify endpoints. She also writes queries, maps beta flags for specific actions, and maintains a suite of automated tests.
Emma Kotzer is her mentor and they regularly participate in paired programming and work on fixing issues together. Emma often reviews Mikhal’s pull requests, and through this process they can both gauge what needs improvement and what is being done well. As a way to receive consistent feedback, interns are encouraged to set up regular one-on-one’s with both their team leads and mentors.
Work-wise, interns jump right into the code but must follow our strict version control process. Luke Reeves, team lead on the Channels team, says these safeguards are in place to fix issues if something breaks. It aims to prevent bad code from shipping, but also ensures that the bad code can be rolled back or fixed in time. Developers are also assigned as Air Traffic Controllers (ATC), where they monitor all the deploys and identify who needs to fix any bad code.
An intern on the API Patterns team, Millin Gabani, wanted to ship his code to core. Once he put in a PR, three people were required to review his code, and he needed to have a good grasp of every line in his code. We expect interns to be accountable for their work and put in the effort to get the job done well.
The teams we place interns in also vary from well-established to newly-developed teams. This means that sometimes there isn’t always a prior strategic framework to follow, so it may add another level of difficulty. Britta Evans-Fenton, a BCS student, currently works on the Shipping team, which is working on a new feature for shipping mailing tubes. This feature is meant to simplify the shipping process, and beta flags are placed around it for certain merchants to test before releasing to the public. Through this project she has had to become familiar about a specific problem, and she believes that expertise has allowed her to deepen her knowledge and understanding of her job.
The Internship Experience
We hope at the end of their term interns feel like Shopifolk, because we aim to treat them as such. As the interns build trust and reliability, they receive more responsibilities. We are constantly striving to cultivate an atmosphere that challenges each intern to grow in their field, and to also enjoy their work environment. This experience will allow interns to decipher which type of engineering they are interested in, and where they will like to specialize. Internships reflect our aim to create a well-rounded experience that encourages developers to not only challenge themselves, but to always keep learning.
Ready to join us for the winter internship? Apply here!