An engineer’s take on onboarding at Elastic

Guilherme_Xavier_(1).png

There was a time when software engineers had a select set of tools to work with, and becoming an expert in a language or technology was part of one's career aspirations. Backend folks would usually become experts in Java, C/C++, or C#. At the same time, the infrastructure team would be kings in Linux and virtualization.

But now the norm is for engineers to work with several technologies, approaches, and paradigms sequentially or in parallel. The likelihood of two companies using the same technology to solve the same problem in the same way is very low. And even if they do, each company has made their own choices about how they use it, which, of course, leads them to completely different states.

So, when a platform engineer like me joins a new company, we have to unlearn previous practices and get up to speed on complex and proprietary tech, practices, and workflows.

Onboarding engineered for success

At Elastic, we use many industry-standard technologies, such as Kubernetes, Terraform, and Secrets Management Platforms, but the way we use them is unique to our organization. The glue between them is custom code meticulously crafted by exceptionally talented Elastic platform engineers over the years. It's impossible to, out of the blue, "know" all the moving pieces or read through a best-selling book and be ready for the job. 

My own experience joining Elastic two months ago has highlighted for me that a company and its people’s commitment to collaborative and thorough onboarding makes all the difference in a new hire’s experience. 

Here are the key pieces of Elastic’s process that have smoothed my integration and accelerated my knowledge as a platform engineer working remotely.

The onboarding document

Nobody is going to remember everything, especially when starting a new job. It's much more reliable to have a write-up of the most important information (context, purpose, and supported use cases) to know, along with links to dive deeper into a team's product documentation.

The onboarding document I received included a checklist I could use to track what I’d done and what I was still missing. I know that the expectation wasn’t that I check every single box, but it helped ensure I wasn’t missing important information.

An onboarding-specific communication channel

At Elastic, team members work in several time zones, so it's natural that our main communication is written. But it was a surprise to me that my team has a dedicated onboarding communication channel in Slack.

In the onboarding channel, teammates share things like "beginner" tasks they are working on or problems they're having with starting a service. It was a helpful way to learn from the questions and experiences of others that didn't require much context to digest, especially during my first few weeks. 

Plus, it created a comfortable environment for me to ask questions that I wouldn't be as comfortable asking in a "regular" channel. If my teammates were having a deep conversation about a complex implementation that stakeholders wanted, and I needed to ask why a small service wouldn’t start on my laptop, I didn’t have to interrupt them. I could ask in the onboarding channel without feeling like I was distracting from important work.

Runbooks and cheat sheets

As an engineer, learning by doing is paramount. Runbooks and cheat sheets helped me during incidents, recurring tasks, and even for (underrated) knowledge sharing. Our team's runbooks helped me understand how our systems are configured and interact with one another.

Yes, I could’ve asked a teammate to walk me through the architecture and connect the dots. Still, nothing could prepare me more for the real world than actually running commands and reading the system's feedback. Moreover, I had the opportunity to give feedback and update them accordingly, which is a win-win for the team!

Integrating with a global team

With Elastic being a globally distributed company, the entire team can’t be physically available to help onboard every new team member — even though everyone on the team wanted to provide me with the best possible experience. One of the first and most important tips I received when I joined Elastic was to have a 30-minute chat with each person on the team. 

Obviously, I knew it would take me a long time to have the opportunity to meet them in person (we usually meet in person at least once a year), but getting to know and build rapport with the people I collaborate with was a necessity.

At Elastic, we’re always hard at work to deliver for our customers, so finding the time to meet with everyone I wanted to connect with was going to take some time. I decided to set a reasonable pace and aim to have a private chat with one person every week. I found it worked perfectly.

Sharing my experience

My role at Elastic includes a lot of moving parts. Several overarching, cross-domain functions fall under the platform department's umbrella, and platform engineers like me help our peers (i.e., our internal customers) more easily adapt to ever-growing exposure to new integrations, technologies, compliance requirements, and more. 

The steps Elastic took to ensure my onboarding process was successful helped me get up to speed quickly and allowed my team to remain focused on its deliverables so that, together, we didn’t miss a beat.

Soon, I’ll get to be a part of the onboarding process from the other side — as an established platform engineer operating in a framework that lets me get to know and empower my new colleagues while remaining on track with my day-to-day work.

Are you interested in joining Elastic? Check out our open roles and apply!

The release and timing of any features or functionality described in this post remain at Elastic's sole discretion. Any features or functionality not currently available may not be delivered on time or at all.