Dr. James Stanier is the Director of Engineering at Shopify. He holds a Ph.D. in computer science and writes a newsletter, The Engineering Manager, to share thoughts, stories, and resources on the topic of engineering management.
We had the goal of hiring 2021 engineers in 2021, so I spent a lot of time last year finding great candidates on LinkedIn. Sometimes, however, people mistake Shopify for a certain music streaming application...and respond with “I like music” as their reason for joining the company.
But funny stories aside, hiring and onboarding at such high volumes has necessitated some impressive processes and automation.
The onboarding process was mainly stored in my brain at my previous companies, but now there’s great software to automate this. Having been onboarded myself, and now facilitating the onboarding process for new developers, I’ve seen both ends of Shopify’s onboarding experience. Here are a couple of key takeaways for onboarding developers:
Preparation is key: Shopify 101
There’s a lot of ramp-up before a developer’s first day, so having an automated preboarding process smooths out the transition. We invest a lot of time into setup for our new starters so that their onboarding starts the moment they arrive.
I imagine the month before the first day as a rolling cascade of information, logins, and supplies. It’s kind of like a Shopify 101 intro class. By the first day, there’s no waiting for IT or for equipment to come in the mail, because they’ll have their laptop and logins weeks beforehand.
Automated Comms 💬
One of the convenient things about automating the onboarding process is starting the preboarding process as soon as our new hire has signed their contract. About 3-4 weeks before their start date, automated emails send out some preliminary information about their role and Shopify, documents to read, and a link to start ordering equipment.
The automated system acts as a two-way street with both the manager and developer pinged for reminders and action items. The system initiates prompts from the manager with messages like “Hey, it’s good to see you!” and follows up with a lot of information leading up to the first day. Meanwhile, managers are pinged to set up a buddy for the new hire or send any necessary information.
Saying Hello 👋
From there, a facilitated exchange between the manager and new hire helps both parties get comfortable with communication. It’s where first introductions are made and other information is shared to help make as smooth of a transition as possible.
About a week before the first day, everyone in the same onboarding cohort gets access to a temporary Slack. From there, each engineer drops in an asynchronous hello with a small introduction. This is just a good way to help create a sense of community throughout the onboarding process. I’ll talk about this more later, but we want to avoid the feeling of being on an island.
Shopify Remote Equipment 🛍
With Shopify being an e-commerce company, we have the new hire access a Shopify online store, where they can order a keyboard, laptop, mouse, monitor, or other office supplies they may need for their remote office. It’s a great first impression of the product and a fun way to navigate it from the consumer side.
To summarize, our preboarding focuses on:
- Automated email communication lead up to the first week
- communication to new hire
- set-up instructions
- links to documentation
- temporary slack with onboarding cohort
- communication to manager
- setup buddy
- setup onboarding plan
- Exchanging messages with the manager
- Buying and setting up remote office equipment
- other office equipment
First Two Weeks of Onboarding Programs
Here’s where things start to get exciting. I like to think of the first two weeks as a continuation to Shopify 101, but a bit more hands-on. Our new hire should start building connections, learning about the company history, better understanding our merchants, and getting their hands dirty with some code.
Facilitated Onboarding/Learning 🍎
The first two weeks are dedicated to facilitated onboarding and learning. The first three days of the week are called “Startup.” Orientations include videos, participating in group activities, and listening to internal podcasts. All of this helps make our new hire immediately gain context about the past, present, and future of the company. We spend a lot of time communicating to our new staff the company’s mission and values. Hearing stories from our CEO about our impact on the world and where we see our product going in the future helps nurture a feeling of purpose for our developers as they get oriented.
From the manager’s perspective, facilitated onboarding provides buffer time to:
- Prepare the onboarding process from week 3 onwards
- Help the new member of staff:
- Settle in a safe environment
- Make some initial connections
- Get into the right Slack channels and mailing lists
- Soak up the culture and context unfolding around them
Knowing that my new developer has a mapped out journey to follow gives me the peace of mind and time to focus on making sure they land well in the following weeks.
Playing With The Product: Building a Shopify Store 🏗
In short, we introduce the company’s product and start to build empathy with our merchants. Our new engineers work with others in their cohort to use the Shopify product and build their own online store. Just like some of our users, they work with a specific business scenario to create a real store using the software that they’re going to be building. Then, everyone in the cohort does test orders in everyone else’s stores. It’s good fun.
It’s just a great way to understand the product’s users better and build internal connections. Our developers have a lot of fun playing with the product’s features and start to build a better understanding of navigating Shopify’s product.
Setting Up Dev Tools 💻
The last two days of the first week we call “RnD Discovery.” This phase is mainly focused on setting up the dev tools for the team.
We give new developers an application that is built just like the product, but has bugs in it. Our developers get to fix the bugs, raise pull requests, review them with peers in their cohort, and ship the code. It’s a fun way for our developers to get their hands dirty with a new codebase and also gives an early taste of gratification in shipping code within the first week. That code is shipped with the same process as the real platform, so when they’ve done it once, they’ll know how to do it again.
Having Fun 🚙
We have an internal game called Shopify Party, where our employees can build an avatar to race cars or play Mario Party-like games together. It’s just a fun way to have people in the cohort interact and create a casual environment in a remote work environment.
Wrapping Up the First and Second Week
It’s a lovely first two weeks: we have our new developers use the product, understand the user, and do a bunch of fun things with their cohort. By the end of these two weeks, they start to understand the company better, meet new people, sign a digital yearbook, and pin their name on a world map.
While it’s not directly mentioned above, every part of the first week has some sort of group interaction built into the activity. We hope that remote developers feel comfortable with the company and feel like they are a part of the community.
To summarize, our developers walk away from the first week with an array of great experiences.
- Learned lots of information
- company history, vision, and mission
- Built a Shopify store
- builds empathy for users
- introduces the product
- introduces product features
- Set up dev tools
- fix a bug
- raise pull requests
- go through peer review
- ship code
- Met users
- builds more empathy with users
- checks bias
- Had fun
- creates a casual environment for play
- develops a sense of community
Third Week and Beyond
Everything before the third week is taken care of for our new developers and somewhat guarded with facilitated onboarding. By the third week, our developers get handed off to their manager.
Setting Expectations 🎯
When I started off at Shopify, it was surprising to hear my own manager saying that I should take my time, onboard slowly, and not rush into project work. Onboarding is taken seriously, and it’s a special time.
Similarly, my highest priority is helping my own new engineers feel comfortable. Even the performance review process has a special category for those that are still onboarding. We have found that when developers feel liberated from having to prove themselves, they actually do better work.
Some places might argue that the most significant predictor of success for a new staff member is getting them in on the first day, giving them a bug to fix, and shipping it on the first day. That’s great for some, but there’s a downside when people immediately get blinkered to everything else that’s going on outside of their team. Instead of this narrow-focused start, Shopify likes to zoom out and invest the first couple of weeks to help our new developers better understand the bigger picture.
Brushing Up Technical Skills 🏆
With hiring so many developers at scale, you’re bound to end up with developers who are less comfortable with your tech stack or have less experience. We want people to spend as much time during onboarding refreshing their technical skills through our own bootcamps and online learning resources. That early investment upfront pays dividends in the long term. It’s best to give developers that time to learn and brush up on skills in a protected onboarding space rather than to squeeze it in later when work starts to pile up.
Pair Programming 👥
Many assume that pair programming remotely wouldn’t happen as much as it did in the office, but with the right software and collaborative tools, it’s better than in-person. Not having someone sitting right next to you helps you focus on the pair programming aspect rather than the performance whilst in front of another human. I found that remote pair programming also feels less draining at the end of a long day because you’re not physically sitting with someone else for hours.
Coffee Chats ☕
Coffee chats fill in the missing piece of the office. There, you would go into the kitchen, bump into someone, and chat with them. Remotely, you can’t just stumble across people in the same way. We encourage people with some guidance to see and meet people directly above, alongside, or below them in the org. It’s also encouraged that our new joiners chat with engineers in different departments who work on an entirely different area. It’s all about gaining wider context.
Recommendations can be as simple as the new hire popping in and saying hello to someone else in the team or perhaps doing a similar role in a different part of the platform. Later down the road, these coffee chats can help reduce tensions or any future blockers, because it helps people connect the dots between the people and the code. Collaboration becomes better after building on that initial connection.
If people have a great onboarding experience, they’re more likely to stick with your company for many years. It makes a real impact. However, while fun things like Shopify Party or other remote group activities help combat isolation, working remotely can still become isolating depending on your personal situation. Therefore, we aim to get people together in person, whether that’s teams getting together, or Shopifolk that live within the same country or city.
It’s about making connections and understanding the humans that have been behind the computers and webcams. It makes a real difference to how you feel about your work and your colleagues.
Meeting others is important for retention and happiness in teams, but it also improves the fundamental element of empathy. The next time your developer has to communicate with someone, there’s a more robust bond because they’ve met in person.
Going beyond the onboarding phase requires good mentorship and coaching to keep your staff moving in the right direction and increase their impact within their team and the department. There’s a lot to uncover with that, so I’ll save that for another time.
A lot of work and people go into creating a successful onboarding experience. I hope that the tips and practices you’ve learned from this article take you far in your career. And until next time, you’ve got this!