Last year, I joined Shopify as a director of engineering. It was the first time I’d ever worked for a fully remote company, and the first time that I’d changed jobs in nearly a decade.
Because of my long tenure at my previous company – which included being there in the early start-up days – I had the luxury of knowing the ins and outs of everything, from the technology stack to the people. The foundations of this knowledge came from many years working in a tight-knit group in an office who worked together through the hard times and the good.
Changing jobs meant leaving all of that behind and hitting reset on my knowledge and relationships. This was challenging because that base was a significant part of how I was able to feel comfortable and operate effectively.
As much as I was excited to work for a fully remote company, I’d had enough experience ramping up new staff to know that onboarding would be a serious challenge. We’ve all been there: incomplete documentation, getting stuck and being unable to find help, and the growing impostor syndrome as you struggle to get your development environment working.
However, I was happy and surprised to discover that onboarding at Shopify is a wonderful experience. Here I’m going to walk you through the details of Shopify’s four-week onboarding process, before sharing my tips for building a remote onboarding program at your own company.
Breaking down Shopify’s remote onboarding program
Shopify’s onboarding program is spread over four weeks. Yes, that’s four whole weeks dedicated to onboarding. This means there’s plenty of time for new starters to settle in and build their confidence. Here’s how the program is broken down:
Day one: Each new member of staff is assigned an onboarding cohort, allowing them to build a preliminary network of peers to go through the experience with. This also provides psychological safety since everyone is new and in the same boat together.
Weeks one and two: We cover onboarding that is relevant to every single new employee, regardless of their role. This is where new starters learn about the company, the products, the market, the mission, and values, and understand what users like and dislike, via answering support tickets. One of the most important features of the first week is that everyone builds their own Shopify store in order to dog food the product, and all engineers ship a change into production. That’s a productive first few days!
Week three: Onboarding becomes specific to a given craft. At this stage we’re still covering knowledge that isn’t specific to a particular team, but we’re covering specifics such as the high-level architecture, how we run projects, and the fundamentals of how to build new software.
Week four: We specialize further into onboarding that is specific to the new starter’s team. New staff can expect to begin shadowing their team’s work, doing self-directed learning about their product and stack, and beginning to write code. At Shopify, we heavily encourage a culture of pair programming, which greatly assists in sharing context and accelerating ramp up. Many staff also take refresher courses in languages and frameworks that are a core part of Shopify’s stack, such as Rails and React.
The diagram below shows you the progression through those four weeks.
The approach works by organizing the onboarding experience into a progression from general to specialist knowledge that neatly delivers new staff into their teams with the right context, motivation, and tools they’ll need to feel productive and ready to make an impact.
An integral part of the onboarding program is that we reinforce Shopify as an entrepreneurial company. This is true for our merchants, who are all using our platform to build their businesses, but it is equally true for all of our Research and Development staff who we encourage to own their roadmaps and their decisions. Those that are worried that joining a larger company will introduce bureaucracy are often surprised when they start at Shopify: we ask everyone to be owners and to act accordingly.
I find myself frequently going back to my onboarding notes to remind myself about core company principles and values when making new decisions, even after nearly a year.
Six tips for building your own remote onboarding program
So how can you learn from what we do at Shopify in order to improve your own onboarding program? Here are some things that you can begin to think about with regards to your company’s own onboarding journey:
1. Treat the first few weeks as a special, protected time for new staff.
When I joined Shopify, knowing that the only expectation was to be present and learn for the first weeks greatly eased my anxiety of starting a new job. It allowed me to have my full attention on the onboarding program, rather than being worried about having to get on with ‘real’ work at the same time. Often when employees are forced to do both, the latter quickly eclipses the former. There’s no better feeling than your manager saying that they initially expect nothing more of you than to learn.
2. Consider what you would want every single new engineer to know.
What is the company mission and what are the values? What are the products, and how do you use them to solve real problems that your users have? What does the architecture look like? Think about how you can document all of this information and then how you can design facilitated sessions that present it to every single member of new staff that joins the company. Having employees aligned with the company culture after one week pays dividends as they make increasingly larger and more important decisions as the weeks, months, and years go by.
3. Create onboarding cohorts to make delivery efficient, but also to build peer groups.
Once you’ve created your onboarding material, it’s most efficient to organize new joiners into regular cohorts that start on the same date so you can have them progress through the journey together. As a side effect, these cohorts become the first group of peers that new staff bond with, creating trust and safety and immediately building connections across different parts of the department. I’m still regularly talking to people who were in my onboarding cohort to this day.
4. Delve deep into each craft and create onboarding journeys within them.
If the first step is to create an onboarding journey for everyone, the second step is to create subsequent journeys for the different crafts. What essential knowledge does a backend engineer need to know? What about frontend engineers, or data scientists? The processes, tools, languages, and frameworks vary per craft, so consider providing material for each. Consider also giving access to online courses for staff to optionally refresh their knowledge of certain technologies and frameworks, and the time put aside for them to do them.
5. Create templated guides for managers to create onboarding journeys for their team.
Even after staff have transitioned fully on to their teams, it’s still a good idea to keep the experience consistent and to ease the burden on managers by crafting tailored onboarding programs for each new member. Consider creating templates that managers can fill in that take the hard work out of remembering everything that they need to do, such as finding them a mentor or buddy, pointing them towards the codebases and documentation, and helping them find their first issues to work on within the team. For example, if a team has a habit of tagging bugs and issues as ones that are great for new starters, they can easily be found through filtering in the ticketing system.
6. Keep getting feedback and iterate.
And most importantly, collect feedback from every new starter at the end of their onboarding program. You can do this easily with a survey. Regularly go through this feedback and implement improvements into the program for the future.
Building a world class onboarding program is a lot of work, but the alignment and empowerment that it gives to new staff is invaluable.
And let’s face it: we all know that perfecting your onboarding process will shine a bright light on all of the things that you know desperately need improvement, such as incomplete documentation and snags in your development environment setup. But that’s exactly why you should do it.
Who’d have thought that people who haven’t even joined your company yet could help you improve so much?