Vidya Mani has worked at many well-known companies in senior engineering roles building top-class teams around her: she was at software consultancy Thoughtworks, PayPal’s Braintree and blockchain payments solution Ripple. She is now the chief technology officer of cryptocurrency fintech Nuri where she is, once again, growing a team. But this time, she’s doing it remotely — and speedily. Our Startup Life newsletter chatted to her about how to onboard remote engineers.
Onboarding starts at the recruitment stage
The hiring process has to mimic a day in the life of a developer at your company, so the candidates can get an honest taste for the workplace and we can see how they work within that. For example, keep the coding challenge simple and relevant to your domain, avoid algorithms and theoretical questions unless you use them actively in your team, engage them in a conversation to solve a problem and see how they collaborate. Remote hiring means they can’t come in to feel the vibe of the office, so you want to give them as much information as you can and set up conversations with people they will work with to help the process.
Get them building ASAP
As an engineer, you feel best — and most productive — when you're building something. So as a leader, I want to give them the space and support to do this as fast as possible. "How soon can I get somebody familiar with and comfortable writing code that will make it to production?" should be the question to guide successful onboarding planning.
This will determine the length and steps of the onboarding process: will they need to meet your technical leaders to understand the tech vision, or the product leaders to learn about the suite of products and features? If your team uses a data warehouse will they need an intro session?
At Nuri, our people and culture team ask new engineering joiners what kind of tools and equipment they prefer to work with and provide them well in advance of their first day, along with a whole set of instructions — their first day should not only be about setting up their laptop.
Don’t leave remote developers on their own
Saying "Hey, yeah this is the GitHub repository, here’s the link to GitHub, see you at the planning meeting next Monday" is the worst thing you can do. It can be easy to get lost in tools and information, especially when remote. You need to create a process where developers are coming into (virtual) contact with the wider team so they feel comfortable asking for help — whether that’s a colleague walking them through a specific feature they worked on, introducing them to team ceremonies and rituals or just grabbing a remote coffee.
You need to create a process where developers are coming into (virtual) contact with the wider team so they feel comfortable asking for help
Create a buddy system
When working remotely, it’s harder to be exposed to different parts of the company. Assign someone to the new joiner as a buddy — they are a peer to go to for anything that isn’t role specific, like helping you set up your machine, getting you familiar with the codebase or walking you through the team makeup.
Automate setting up the developer environment
This can take a whole day or even more in some companies — and that just doesn’t need to happen. The ideal situation would be automation, like a script, that just runs and sets the developer environment up for the joiner, preferably on a remote machine. The code is already checked out with the latest version of the codebase.
Be async where possible
We use enterprise wiki platform Confluence, which new joiners can peruse to dive deeper into how we work. It includes a lightweight template which walks new engineers through processes like how to get access to our code, how you run the code on your machine, how you make a change to it, how to submit it to the main repository, etc. It’s content they can consume at their own pace that doesn’t need synchronous time with a colleague.
We’re also working with our technical leaders to build an in-house bootcamp to show how Nuri builds software, our belief systems and our processes. It's important that joiners know how you use specific tools and how they work together (which is different to knowing how a tool works — there are tonnes of tutorials online for that).
Think about timezones
Working remotely means your engineers can be in all different timezones. You don't want anybody working at 5am or 10pm. Figure out where there are reasonable overlaps for meetings and introductions. Set reasonable deadlines that give them time during their working hours. Consider what time you have whole-team ceremonies like standups or design discussions. Also set time specifically for getting code reviewed or being unblocked on work. You don’t them spending hours waiting for help — that can be frustrating.