Good Onboarding, Great Onboarding
What good and great onboarding processes look like and strategies to onboard efficiently, as an engineer or a manager.
👋 Hi, this is Gergely with a subscriber-only issue of the Pragmatic Engineer Newsletter. In every issue, I cover challenges at Big Tech and startups through the lens of engineering managers and senior engineers. To get articles like this in your inbox, every week, subscribe:
Getting up to speed when joining a new company – known as onboarding – is a process that carries an outsized impact on how well you’ll do in your new role. However, I’ve observed many teams and companies invest far less time into providing a great onboarding experience than they do for a great hiring experience.
In this issue we cover:
The importance of onboarding
Good onboarding processes
Standout onboarding processes
Manager onboarding
Taking ownership of your onboarding
Onboarding resources and templates you can use for inspiration
1. The importance of onboarding
I’ve seen more than one person leave a company after only a few months for reasons that could have been avoided with better onboarding.
A staff engineer who joined a large tech company was unable to understand how things connected, or what their role entailed. Six months later they left, frustrated at how poorly things had gone. A manager was thrown into firefighting from day one and they missed out on learning about the business context. They ended up succeeding at this company, but only after playing catchup in the first year because onboarding never happened.
I’ve also seen examples of the difference a great onboarding can make. A senior engineer was extended an offer, but the panel was worried they had not worked at a large tech company before. Their manager took on this concern and made the effort to create a tailored onboarding plan, in which this new engineer had dedicated buddies and was walked through how the organization operates. They got up to speed faster than a normal hire, which led this manager to invest more in the onboarding of all future hires.
Great onboarding is becoming a competitive differentiator between companies. This is especially true in an increasingly remote – or part-remote – work setting. Changing jobs when working in a part-remote setting is easier than it ever has been. Because of how easy it is to change jobs, people do leave companies with a poor onboarding experience, only months after joining.
High-quality onboarding is also an investment in creating equal opportunity for people from different backgrounds to succeed. Without good onboarding processes, the people likely to succeed at your company are those who previously worked at a similar company. However, with high-quality onboarding you’ll empower people from different backgrounds to rapidly get up to speed and to thrive. For example, without high-quality onboarding, engineers joining a fast-moving tech company from a non-digital-first company might struggle to find their footing in the first months and become more likely to leave. With better onboarding, they’ll succeed, making it a win for everyone.
2. Good onboarding processes
Onboarding processes that engineers and managers describe as “great” share a few characteristics.
Onboarding goals are clear to everyone involved; the manager, the people helping with onboarding – like the onboarding buddies – and the person joining. Typical onboarding goals tend to focus on a few of these areas:
Productivity: enable people to become efficient in their work.
Independence: allow people to be autonomous by knowing enough about the processes and tools that they can fill any further gaps they have.
Confidence: reaffirm to people that they are valuable additions to the team and company and that they can contribute meaningfully, from week one.
Mastery: master the mechanics of the day-to-day work.
Alignment: understand the relevant history and the core values of the team and company.
Start onboarding as soon as the offer is accepted. The easiest way to do so is send out a welcome email with practical information - see an 🔒 example onboarding email that you can use for inspiration. Getting the future team, or the onboarding buddy to get on a Zoom call with the joiner, is also a great way to follow up.
Getting candidates engaged and starting their onboarding early, is one of the best things you can do. In a hot job market where some candidates get cold feet, and can accept another offer, doing so is not just a nice touch, but something you’ll consciously want to invest in. As I wrote in The perfect storm causing an insane hiring market:
“Don’t stop when the offer is signed. Many companies are losing candidates after they sign the offer because the employer stops communicating with them. Then, as a cold shower, the candidate emails the firm, revealing that they’ve accepted another position and won’t be starting. Keep in touch with candidates after the signing, have team members all email the new joiner to share their excitement, and consider sending them swag before the start date.”
Onboarding that starts before day one is an amazing experience for new joiners. Amsterdam-based startup MessageBird shares context, history, their mission and vision with all new hires before day one, via the Appical onboarding platform. Teams in some larger tech companies share presentations with candidates about the team’s charter and members.
Not sharing confidential information in these pre-onboarding materials is the most important thing to keep in mind. However, this concern is simple to resolve.
Having an assigned onboarding buddy from the first day is a practice that makes for a better onboarding experience. A buddy is typically a peer, and often on the same team as the new joiner. They make the onboarding a lot more personable, and help with any gaps in the onboarding process.
Onboarding buddies often take ownership of the onboarding plan, for example, by preparing onboarding tasks or organizing some of the sessions. For engineers, being an onboarding buddy is a great way to grow professionally.
Onboarding buddies don’t have to be more senior peers; in fact, having less experienced peers onboard more senior engineers, can make for a good pairing exercise. The new joiner might be more experienced overall, but the onboarding buddy has a lot more context on the company and tools, and this dynamic can make for a fruitful relationship.
As a manager, be sure to give time for the onboarding buddy both to prepare and to execute, on the onboarding. You should expect they’ll have less than the usual bandwidth to do their usual work during the first few weeks, as they’re helping out or pairing with the new joiner.
Pairing on tasks with someone on the team is a great way to get the new joiner up to speed faster, and for them to get to know people. Pairing on coding tasks is the most obvious way to do this with engineers, and I recommend planning for pair programming sessions ahead of time, either with the onboarding buddy or with team members.
These pairing sessions tend to become mini knowledge exchange sessions, as engineers tend to explore the codebase, the background of some decisions, and any tooling quirks worth knowing. The best part of them is there’s no preparation needed beyond having a task to work on and the time to work together.
Shipping production code changes in the first week is one of the best signs of a good onboarding process. Having a pull request ready to go in this time means a few things:
Sensible tools and processes. If a new joiner can push code in their first week, this likely means there is a robust CI/CD system in place, and guardrails that can detect regressions.
A bias for shipping. If week one is about shipping code, this sets the baseline expectation to ship more frequently than weekly, later on. This is a sign of an organization that iterates fast.
A speedy organization. Access controls and provisioning are quickly done. Especially at larger companies, this shows the company invested in processes to keep things fast, while they are also compliant.
The onboarding is practical. The onboarding is built around getting things done, instead of weeks-long theoretical onboarding.
The team is organized. The new joiner has starter tasks ready to go, as their team prepared for their start ahead of time.
All the above features are typical of good engineering cultures. Teams at the likes of Doordash, Lyft, Uber and many others aim to deliver on the experience for new joiners, of shipping code to production during their first week.
Structured and focused onboarding material to get started quickly is another characteristic that all better onboarding processes share. In the first few days, new joiners get an overview of the essential things they need to know, from how the company works, to the tools they use to ship code. Executives are often present in these sessions, and talk with new joiners, answering questions directly. This sends a message that they prioritize the success of these starters, and tends to be a fun experience for everyone.
A tailored onboarding plan ready on day one, with small tasks the new joiner can easily complete, is another characteristic of a great onboarding process. At Uber, on my team, we’d generate small tasks like discovering where our team documentation lived, to pairing programming with team members.
Byte-sized coding tasks that reveal how the systems work is something several great onboarding processes share. Lyft uses Codecademy to create a custom course to deploy a small feature on an internal service, to production. At Uber, we used a similar internal service called Codelabs, where teams put together onboarding tasks and the mobile team put together a self-paced tutorial to learn Uber’s mobile architecture.
New joiners improve the materials as they onboard. Onboarding documents are very likely to become outdated as the environment changes. This is especially true at high-growth companies. Make it easy for new hires to make changes to these documents, encourage them to do so, and celebrate them when they do. Not only will your onboarding materials be more up-to-date, but people will make useful contributions from day one.
Continuously improving the onboarding process is a trait all good onboarding processes share. You need to gather feedback and measure to improve, so do this.
A typical approach for improving onboarding is doing a check-in at around a month, where the new joiner rates their onboarding and shares what works well, what could be better, and other improvement ideas and opportunities.
Gathering information is one thing, but onboarding only gets better if you act on it. Encourage new joiners to improve things they can already do, for example by improving the onboarding documentation or steps as they go. As a senior engineer or a manager, be sure to take ownership of other improvements that make sense, and put them in place by the time the next new joiner starts.