Shopify is a well-known commerce powerhouse and in my mind, it sits next to companies like Facebook, Amazon, and Google. In this article, I’ll talk about how I went through Shopify’s hiring process and got a job as a Software Developer in a matter of weeks.

I was happily employed as a Drupal Developer in 2018 and I was mostly working with PHP and JavaScript. However, I started experimenting with Ruby while contributing to an open-source project named SiteDiff. Later, I also got a chance to build a plugin (Toggl 2 Redmine) for an open source project management tool named Redmine built on Ruby on Rails. As a matter of fact, I was also experimenting with Python and exploring front-end JS frameworks like React and Vue.

I was inclined towards working with Ruby because I already had some experience working with it. Next, I passively started looking for Ruby/Python jobs. Job-hunt mode: activated!

2 minute version

  • Having worked with PHP for ~10 years I was looking for a change.
  • I started experimenting with technologies like Ruby and Python.
  • I found Shopify’s careers page and learnt that they work with Ruby.
  • I visited Shopify’s office in Montréal for an open house.
    • I liked the employee reviews that I read about them on the Internet.
    • I liked their office and the reviews that I got from Shopifolk.
  • I sent them my résumé and started going through their interview process.
    1. A 20 minute screening phone call.
    2. A 1 hour life story interview.
    3. A 1 hour basic coding challenge.
    4. 4 more hours of more technical interviews and coding challenges.
  • The interview and selection process took around 3-4 weeks.
  • Finally, I received a job offer!
  • Shopify did the necessary paperwork to help me start working with them.
Exterior of Shopify’s office in Montréal
Shopify’s office in Montréal

Job hunt

In no specific order, I started doing some research about the following:

  • Top 10 companies that hire Ruby developers.
  • Ruby developer jobs in the province of Québec, esp. Montréal.
  • Average Ruby developer salaries in major Canadian cities.

Needless to mention, I also polished my LinkedIn profile and updated  my résumé to reflect my current skills, experiences and projects. Since I was planning to work with Ruby, I spent a substantial amount of time to read Ruby’s official docs, solved several HackerRank challenges with Ruby and even created some small Ruby projects to have work samples.

As an immigrant, my job choices were limited because changing employers in the Province of Québec can be quite difficult unless you are a PR or a citizen of Canada.

One evening, I heard about a React JS meetup that was taking place at Shopify. During this event I got a chance to meet several members of Shopify’s team in Montréal and in turn I was interested in working with them. Coincidentally, the very next day, they had an open house where I got a tour of their office and got to speak with more Shopifolk. Next, I sent them my résumé along with a cover letter explaining why I wanted to work with them.

Common room and hall at Shopify Montréal
Shopify’s office in Montréal: The common room

Interview and selection

The interview and selection process mentioned below is for the Senior Software Developer role. The process will vary depending on the role you apply for.

Screening interview

After sending my CV to Shopify, I heard back from them in a week or two. A 20 minute call was scheduled. During the call, the recruiter and I talked about the following (usual) topics:

  • Types and scale of projects that I had worked on.
  • Role(s) that I usually play in projects.
  • Sizes of teams that I had worked with.
  • Why I was looking for a new job.
  • When I could start working with them.

I was also asked about my immigration status and possible paperwork that might be involved in case I were to get selected for the position.

Life-story interview

This 1 hour interview is quite simple, however, it is the trickiest to understand. All I had to do in this round was to talk about my life. I mostly talked about things like:

  • How I got into software development.
  • Important projects I’ve worked on.
  • Special events in my personal/professional life.
  • Why I wanted to work at Shopify.

I believe that this interview helps the recruiter understand you better as a person and to determine what motivates you and how passionate you are about what you do. After this round, I moved on to the basic coding challenge.

Basic coding challenge

The basic coding challenge was indeed fun and it was about 1 hour long. I had to write a simple function to solve an easy problem using a programming language of my choice. I was thinking about solving the problem with Ruby because Shopify mostly works with Ruby. But I decided to play safe and wrote my code in PHP with which I was more confident.

Learning a programming language is much easier than learning to code in general.

I think the objective of this round was to filter out candidates who cannot solve basic problems with code.

I got the desired output to the interviewer’s satisfaction in ~40 minutes. I wanted to write the program again in Ruby, however, the interviewer made me realize that I didn’t have enough time. Besides, it was not necessary because the programming language didn’t matter 😀

Being true to oneself is very important. Hence, I rewrote the solution in Ruby after I went home, just to prove to myself that I could’ve done it in Ruby.

Advanced coding challenge

After the basic coding challenge, it was time for something more complex. I was invited to the Shopify office in Montréal for 4.5 hours of interaction with the team, lunch and interviews. The schedule was roughly as follows:

  • Pair programming with a senior developer (75 min): A senior developer assigned me a medium-difficulty problem. We brainstormed and agreed upon a solution. Next, I had to write code to get the desired output. During the process, I had to think aloud so that the interviewer would know what I was trying to do. They would occasionally jump in and give me hints if something was not going on the right track.
  • Lunch with a team lead (60 min): Shopify usually provides catered breakfast and lunch at their offices. Awesome! In this round, I got to have lunch with a team lead and we talked about various topics, not necessarily related to work. During this round, I learnt more about Shopify’s work culture and I was very excited for the next round.
  • Technical deep dive (60 min): In this round, I had to present a project of my choice to a semi-technical personnel from Shopify. Unfortunately, I didn’t have a fairly complex project to present so I presented a simple one named Toggl 2 Redmine – a plugin I wrote for the Redmine project management system. During the presentation, we went into the details of why I built the application, how it evolved into what it is today and the challenges I faced during its development.
  • Pair programming with a senior developer (75 min): Another pair programming session similar to the one mentioned above. In this one, I reached very close to the solution, but I couldn’t get it to pass all the test cases. However, I strongly dislike leaving problems unsolved. Since I was curious, I solved the problem after I went back home and mailed it to them, mostly for my own mental satisfaction.
  • Check-in with the recruiter (15 min): To conclude the day, I spoke with the recruiter about my experience with their selection process and possible terms of employment.

I think the main objective of this round was to evaluate my technical knowledge, programming skills and problem solving skills. Secondly, all this interaction gave them a chance to evaluate my social skills and most importantly, my behavior. Usually, nobody likes to work with people who are rude, uncooperative, not receptive to feedback. Through these interactions, my potential team members got a preview of what it’s like working with Jigarius 😉

Shopify's head office in Ottawa
Shopify's head office in Ottawa

You’re hired

One evening in December 2019 when I was getting ready for my vacation, I finally received a call from my recruitment coordinator. I was told that I had successfully passed the selection process and I soon received an email with an offer of employment.

Due to my immigration status in Canada, I had one final round of struggle left: paperwork. Shopify helped me get a new work permit allowing me to work at their office in Montréal for which I’m very thankful.

Front cover of the book “Ruby Under a Microscope”
A welcome gift from my team lead: Ruby Under a Microscope

Conclusion

  • Shopify is a commerce powerhouse that’s revolutionizing the industry.
  • Getting a software development job at Shopify involves a lengthy selection process, but the process is not very difficult if you have the right skills.
    • You must’ve heard the saying, “no pain, no gain”.
  • Shopify provides competitive compensation packages with several perks.
    • At Shopify you get delicious breakfast and lunch for free!
    • The work schedule is flexible. One can work from home when need be.
  • In general, I found that fellow Shopifolk are talented, friendly, respectful and passionate about what they do!
  • Looking for jobs? You’re welcome to check out the current openings at Shopify.

Next steps

On this page

Recent articles

Mar 22, 2020

Teckin Wi-fi LED Colored Smart Bulbs: Review and Experience

Make your home smarter with budget LED smart bulbs from Teckin that provide warm light, cool light and a tonne of colors.
Mar 21, 2020

Dockerize Drupal with Ddev

Learn to use Ddev for running Drupal websites in Docker containers and get dockerized Drupal websites running in under 5 minutes.
Jan 20, 2020

Full-stack Drupal Developer at Evolving Web: Interview, Experience and Review

How I moved from Colombia to Canada and worked on awesome Drupal projects at Evolving Web as a full-stack developer for ~3.5 years.
Sep 6, 2019

Signing Git Commits and Tags with GPG

Learn to sign your Git commits and tags with GPG to let your team know that they are authentic and that they weren’t maliciously altered by someone.
Aug 9, 2019

Choose a Password: Strong, Secure and Easy to Remember

Ever forgotten a password? Luckily, I haven’t forgotten one in ~5 years! Read about how to choose strong, secure and memorable passwords.
Jul 22, 2019

Doing Transactions Exceeding your Credit Card’s Limit

Do transactions beyond your current credit limit! Learn a workaround for bypassing your credit limit temporarily or increasing it permanently.

Thoughts and comments