Kat Drobnjakovic 09/23/2015

Developer Onboarding at Shopify

5 minute read

Hi there! We’re Kat and Omosola and we’re software developers at Shopify. We both started working at Shopify back in May, and we felt both excited and a little nervous before we got here. You never know exactly what to expect when you start at a new company and no matter what your previous experience is, there are always a lot of new skills you need to learn. Thankfully, Shopify has an awesome onboarding experience for its new developers, which is what we want to talk about today.

The developer onboarding process at Shopify is constantly adapting to the needs of new employees. We completed our onboarding at the beginning of May, but since then there have been many changes to the program. The team at Shopify has focused greatly on creating an effective and enjoyable onboarding program, but discussing the evolution of this program deserves a blog post of its own (stay tuned! It’s coming soon!). In this post, we’ll focus on our experiences as new developers and how the onboarding process helped us get up to speed with working at Shopify.

Our onboarding was a week long and included all developers (interns and full time employees) who were starting on the same day as us. It gave us the chance to get to know the people, products, and core values of Shopify. Here’s a breakdown of how things went:

Pre-onboarding

Before our first day, we were given access to recordings of past talks from Tobi (Shopify’s CEO), and the rest of the executive team on Shopify’s product direction, engineering infrastructure, internal processes, and more. This gave us a feel for Shopify’s core company values and culture, and insights into where Shopify is headed. We were also exposed to the development tools we would be using in our daily work. This allowed us the opportunity to browse through the tools and familiarize ourselves with our new dev environment. Throughout the week we would go into further detail about how/why each tool was used.

Onboarding overview

In our developer onboarding group, we all had different backgrounds and experiences. There were devs with no Ruby or Rails experience, people from their first year of undergraduate studies to Master’s students, people who had worked for several years between degrees, and new grads too. We also had international interns and full-timers from as far away as the Netherlands and India. But despite our diverse backgrounds, we all had a deep excitement for learning and technical challenges. We were very impressed by how passionate everyone was about improving themselves and creating amazing products.

Onboarding week

For us, onboarding lasted a week, which gave us significant enough time to set up our working environments, get to know other employees, the company, the codebase, and life at Shopify without much pressure to ship immediately. Though we didn’t start working on our individual teams just yet, we still had the chance to interact with and contribute to the codebase. We worked on real bugs and shipped several fixes to production throughout our onboarding week.

We think this structure made us much more productive developers in the following weeks than if we just jumped directly into coding/shipping projects. Our leads even noticed a difference too! “Instead of spending the first month ramping [our intern] up on our tools and best practices, I could instead spend the time ramping him up on our application-specific problem sets,” said Sean French, a developer lead on the Platform Dev team. “I really can’t say enough good things about this new process.”

Throughout the whole week, we listened to presentations about code style, Shopify’s infrastructure, and company views. This gave us a quick glimpse into everything that goes on technically at the company as well as the many cool teams that we would eventually be joining. It was also an opportunity to meet and hear from engineering management, like the Directors of Engineering, technical leads, and the CTO.

The rest of the week was a mixture of tech talks and hands-on workshops called Code Labs. A Code Lab is a step by step walkthrough of a technology, problem, or service. Code Labs can be done independently, or together as a group. They helped us understand the Shopify codebase and learn more about the product. We learned a variety of things we would need to know on the job, like the pull request/code review process, how to navigate the codebase, writing tests at Shopify, and setting up a Shopify store. One of the Code Labs walked us through shipit, which is Shopify’s internal deployment tool. This talk set us up to ship code into production on our first day with our teams.

Jerome Cornet, Director of Engineering, had this to say about his experience working with new hires after they had completed their onboarding session. “It’s simple things like having the development environment all set up, understanding coding practices, reviews, and how to deploy safely that makes a huge difference. The onboarding process packs a ton of learning in a short period of time, so by the end the team can focus on teaching new employees about the problem they are solving rather than the mechanics of shipping effectively.”

Wrapping up

At the end of the week, we met up with the teams we would be working with and then hit the ground running. We immediately jumped into the workflow like we were any other employee and began working on current features and products. In any other situation, this might have felt very overwhelming, but having a week of onboarding made us feel confident and able to understand the problem domain right from the start.

Though this onboarding process was different than anything we’d experienced before, it was a great way to jumpstart our time at Shopify and feel right at ease.

Omosola Odetunde is a full time software developer on the Risk Operations Team at Shopify. She received her MS & BS in Computer Science from Stanford University in 2014 and 2013, respectively.

Kat Drobnjakovic is a developer intern on the Products and Inventory Team at Shopify and is currently a Software Engineering student in her last year at the University of Ottawa.