The Most Effective Ways To Onboard New Software Engineers
On their first day, a new engineer is less helpful than an empty chair.
According to Michael Dehmlow, Pax8’s chief operating officer, who oversees the company’s engineer onboarding program, that’s because new engineering hires face a lot of roadblocks. They don’t know the systems architecture or the codebase, and they don’t have the context to see how their work fits within the bigger picture at the organization.
Dehmlow’s goal, therefore, is to give all new engineers the tools they need to pass his “empty chair test” and start contributing quickly, while striking the right balance of reaching out for help and figuring things out on their own.
Sure, some engineers just tend to pick up on things faster. But the software engineer onboarding process can be equally important — and it’s entirely within your control. Here’s how tech leaders at Pax8, OrthoFi and Quantum Metric get their new hires up to speed.
Software Engineer Onboarding 101
- Pick the right first project. Bug fixes tend help new hires get up to speed.
- Should you set environments up ahead of time? Opinions vary.
- Give new hires access to the learning resources they need.
- Consider pair programming. A mentor can speed onboarding up considerably.
- Show the bigger picture. Help new engineers understand what they’re building, and why.
- Celebrate wins.
Fixing bugs helps new engineers learn about your whole system
Every new engineer at OrthoFi, a Denver-based provider of software for orthodontists, fixes a bug as their first project.
Director of Engineering John Ockers said new hires work for at least a week in product support. Recently, OrthoFi’s eligibility check system incorrectly listed a client’s wait period for a procedure in months rather than days, saying they had to wait 30 months instead of 30 days for a procedure. A new engineer fixed the bug.
Ockers said he believes addressing bugs is the best way for new engineers to learn OrthoFi’s whole system, from its codebase to domain area.
“We don’t break up the organization like, ‘OK your junior devs are going to be fixing bugs and your senior devs are going to be writing code,’” Ockers said. “For us, your team is responsible for everything, meaning new feature development as well as product support.”
“For us, your team is responsible for everything, meaning new feature development as well as product support.”
New engineers focus on troubleshooting at Pax8, too.
Dehmlow said fixing bugs gives new engineers experience working with Pax8’s code and system, the opportunity to have their code reviewed by a senior engineer and a chance to build trust with their coworkers. His eventual goal in onboarding is for engineers to feel comfortable contributing productive, original ideas to the team.
“We want to move that engineer into a much bigger role,” Dehmlow said. “How do we give a new engineer the ability to [bring new ideas to the table]?”
Should new engineers set up their own environments?
Some organizations have a new engineer’s computer ready before they walk in the door. Others find value in having new hires configure their software systems themselves.
“We want it to be educational, but we also want it to be a seamless experience,” said Eric Irwin, director of engineering at Monument’s Quantum Metric.
Before a new engineer walks through the firm’s doors, Irwin said, he already knows what they will work on, who they will be paired with and what they should have accomplished by the end of their first week.
This strategy has changed since Quantum Metric first started in 2011. Initially, the firm had new hires configure their own development environments, tools and software. But feedback from staff about their onboarding experiences revealed engineers found little value in the tasks. Quantum Metric now makes sure each new engineer’s equipment is ready before they start.
“That’s time that we want to dedicate toward other things,” Irwin said.
Other companies see things differently. At Pax8, Dehmlow said, having new engineers configure their development environments themselves helps teach them about the company’s ever-changing system.
“We do multiple releases every week, and that often means that the development environment is going to change.”
“We do multiple releases every week, and that often means that the development environment is going to change,” Dehmlow said. “That’s something that you’re going to have to have a lot of insight on.”
Give new hires access to the training resources they need
OrthoFi does not expect new junior engineers to be fluent in its backend code when they start. The Denver firm uses the C# coding language, which Ockers said is relatively uncommon at this point. He said the firm is more focused on hiring individuals who have the drive and critical thinking skills required to be good team members, rather than a background in C#.
“We kind of assume that you’re able to learn a new language,” Ockers said.
“We kind of assume that you’re able to learn a new language.”
OrthoFi has new junior engineers watch Pluralsite training videos to learn its coding languages. The company also pairs them with other engineers to familiarize them with its systems. He said junior engineers are expected to have knowledge of OrthoFi’s stack within six weeks or less, meaning they are completing tickets by themselves and acting as contributing members of their scrums.
For senior developers, that expectation is shortened to three weeks.
“We likely wouldn’t hire like a mid- to senior-level engineer unless they had experience in the languages that we use,” he said.
know when to pair program — and when not to
Six years after OrthoFi was founded, the company has grown from a small startup to a more than 200-person organization. Ockers said that growth sometimes led to knowledge silos, where new engineers were unfamiliar with what was built and how it worked, particularly around OrthoFi’s software domain.
“This is one of the biggest problems, going from year two to year five at OrthoFi,” Ockers said.
The firm instituted paired programming to make sure that at least two people were always familiar with different aspects of its system. Ockers said the practice also led to a higher quality of code that was reviewed faster than if engineers waited for pull requests. Bugs were resolved faster, too, since two people are working on them at once, he added.
Initially, all engineers were paired all the time at OrthoFi. But Ockers said this wasn’t realistic.
Now, only new engineers are intentionally paired at OrthoFi. Junior engineers are paired for up to six weeks, and senior engineers are paired for about three weeks. Each spend about half their time learning the codebase, development environment and systems architecture from an OrthoFi engineer, and half their time figuring out these things by themselves.
“Let’s let you get into the codebase and kind of dig through it at your own pace so you can get more familiar with it.”
“We want to give them 50 percent like, ‘OK, let’s leave you alone,’” Ockers said. “Let’s let you get into the codebase and kind of dig through it at your own pace so you can get more familiar with it.”
Pax8 also only pairs new engineers actively, but it’s styled its office to foster collaboration among all team members when the situation calls for it.
Dehmlow said every engineer’s desk has wheels, so individuals can move around and form formal and informal groups together. Power cords also hang from various points of the ceiling, so engineers can cluster around them to form teams. Dehmler said the majority of engineers switch projects every week and form new teams.
New engineers are paired with a more senior member for as long as they need to learn the ins and outs of the company’s systems. But their pairs may switch — and they may move around the office — as teams and projects change.
“After you’re done with that person, you’re probably going to be on another project, and you’re going to be doing that for probably a period of months,” Dehmlow said.
Show engineers the bigger picture of what they’re working on
Customers introduce new engineers to Quantum Metric’s mission. The firm shows new engineers session recordings of how customers use their analytics platform, has them sit in on sales and marketing calls for product demonstrations, and read over a Slack channel titled “Customer Quotes,” where staff posts feedback from customers.
“We will show them firsthand through a lot of different ways, from the customer's perspective, how we’re actually adding value.”
“We will show them firsthand through a lot of different ways, from the customer's perspective, how we're actually adding value,” Irwin said.
Build confidence early by recognizing a new engineer’s success
When a new engineer has their first ticket go into production at Pax8, Dehmlow said the entire engineering team cheers for the individual.
“It’s the opposite of feeling like ‘I’m failing that empty chair test,’” he said. “We want to make sure that people are engaging with them when they need to.”