Jumping into a New Adventure: Navigating the Onboarding Process
Tags: work
Published: 2023-07-15 15:48:28

---
title: Jumping into a New Adventure: Navigating the Onboarding Process
published: true
description: A Guide for New Software Engineers
tags: #work
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-07-15 15:42 +0000
---

Having recently joined Hopin as a Senior Front-End Engineer, I've navigated the challenging yet rewarding onboarding process onto a new team. Based on my experiences, I wanted to share some insights on the process and principles that can help make your transition smoother.

## Embrace Humility and Empathy from the Start

Starting a new role can be nerve-wracking as there can be pressure to prove your value from the start. However, it's crucial to approach your first days with an open mind and a listening ear. Share your past experiences, but respect the team's knowledge and trust their judgement. Be wary of inadvertently intimidating your new colleagues by appearing overly knowledgeable. Instead, strive to build relationships and foster an environment of empathy.

## Navigating the Technical Landscape

As you immerse yourself in a new codebase, understanding the extent of technical debt becomes crucial. Exercise caution against an inherent bias towards [code you didn't write yourself](https://www.dancowell.com/software-engineers-hate-code/). Use tools like [Flog](https://github.com/seattlerb/flog) to measure [cyclomatic complexity](https://linearb.io/blog/reduce-cyclomatic-complexity) and pinpoint areas of the codebase that are frequently modified and could benefit from refactoring. However, remember that there may be better uses for your time than tidying up files that haven't been touched in a while.

## Observations, Solutions, and Effective Communication

You'll likely encounter issues during your first few days. Instead of fixating on these, note them down and concentrate on navigating around them. Adopt a solution-oriented attitude - when presenting problems, also offer potential solutions that have worked for you in the past. If you don't have a solution, try to figure out why things might be the way they are by speaking to your teammates.

Effective communication is even more crucial in this era of [remote and asynchronous work](https://about.gitlab.com/company/culture/all-remote/asynchronous/). Be clear about any impediments hindering your performance, and add as much context to your messages as possible. Also, if you need help to make progress for any reason, write down each path you can take and choose a way forward until you hear otherwise.

## Building Trust and Dealing with Disagreements

In the beginning, have faith in the guidance you receive. Your team knows the system best at this stage, and there may be better strategies than expressing scepticism early on.

Disagreements are inevitable but can be an opportunity for growth if handled with empathy. When advocating for a preferred technology, for instance, present a balanced view of the advantages and disadvantages of each option. Show that your argument is rational and not biased.

| ![Solution analysis for Polaris Foundations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/abbjuzrw4n3lsj8q4na1.png) | 
|:--:| 
| *[Solution analysis for Polaris Foundations](https://docs.google.com/spreadsheets/d/1rxrRTlbNWiLVu-Q5IK7xh5O1FmWcjyAS2XN7jiPrhYM/edit#gid=0)* |

For example, when Shopify was [considering a new CSS tool for their design system](https://github.com/Shopify/foundational-design-system-proto/discussions/44), they created a table explaining the features they value and the trade-offs they were willing to make.

## The Power of Asking for Help and Delivering Early Wins

When you need help, be precise in your explanations. Detail what you've already attempted, your thoughts on where the problem may lie, and your understanding of the system. This approach will help you spot gaps in your knowledge and accelerate your journey towards autonomy.

Strive for some early victories as well. In my first week at Hopin, I undertook a few minor bug fixes, allowing me to familiarise myself with the codebase and demonstrate my ability to deliver.

## Wrapping Up

In the end, remember that it's alright not to know everything on day one. Your role as a new team member also involves identifying gaps in documentation and tools, which will benefit future new starters. You can successfully navigate the onboarding process with careful listening, understanding, and empathy. Enjoy the journey, and happy onboarding!