Posted in Professional Improvement

10 Best Practices For Software Engineers To Ensure a Successful Onboarding

1. Version Control Systems

Learning and mastering the basics as well as frequently used version control concepts are crucial for Engineers to make onboarding easier. It also helps to set oneself up for productive future work. If your company uses a graphical UI for source control, there is a temptation to never learn the Command Line Interface (CLI) but you will eventually have to work at companies who extensively use the CLI. If you are going to be using the Git Version Control System, then here’s my article on some of the Git commands that I have used the most in my career. This should get you through 90% of your Git encounters.

2. Befriend Your IDEs

As soon as you meet your team, find out about IDE(s) they prefer to use. If there’s a clear majority, spend some time learning the basics of using it, including but not limited to cloning repositories, automatic deployment and syncing code changes with a remote host, debugging workflows, automatic refactoring – For example, IntelliJ offers a way to refactor a constructor and replace it with with either a Factory or Builder pattern in Java which can come very handy. Learn shortcuts to search for files, keywords, classes, functions etc. in any code base.

3. Searching For Information

Some companies do a great job of documenting their code, processes and knowledge base and some don’t. Wherever you are, it helps to understand how to search for documentation, previous conversations or issues around a certain topic, code search, ticket search if you’re using a tool like JIRA to manage tasks. The ability to know where and how to search for information facilitates a natural curiosity to indulge in problem solving time before deciding to give up too early and reach out for help. Eventually you might enjoy helping out other Engineers as well with their questions which solidifies the knowledge gained.

4. Regular 1:1s With Manager/ Mentors

One aspect of my current job that I enjoy the most are the 1:1s I have with my manager, mentors and mentees every week. These are some ideas to help you get started with 1:1s with your manager.

  • How did you feel about last week’s work? How was your weekend?
  • What did you most enjoy working on?
  • What exhausted you and is there some help that you need?
  • Feedback on team members/ projects
  • Any areas where you struggle with or need more information on
  • Suggestions for team improvements
  • Any feedback you have for your manager

An important thing to remember here is to be candid in your 1:1s which will make it easier for others to help or guide you in the right direction. If you are bored working on something, voice it!

5. Do Code Reviews

Find opportunities to do code reviews for your team members. If you are super new to the team, ask to be added to the code reviews of repositories that you will soon be working with. This is a great way to understand what kind of changes are pushed and how the technical material that you’re reading links to actual code. It also exposes the coding standards to adhere to within your team. If you are already familiar with the coding language used by your team, this is a great opportunity to warm up to new code while helping the team with the expertise that you are bringing in.

6. Mix It Up

Onboarding can get boring and overwhelming when you spend all your day reading up on documentation. Try to have a good mix of concrete coding tasks as well as something to read and absorb since you will have to look up all that information later anyway. Take regular breaks and make notes of terms that you want to look up later. Get a breath of information before deciding to dive deeper into a particular topic. If things get too difficult to comprehend, setup a 1:1 with a team member and ask for a quick walkthrough.

7. Get To Know The Team

Setting up 1:1s with all your team mates in the first few weeks of joining a new team will bring a sense of familiarity and comfort as a new Engineer. It’s also the time to discover the expertise and interests of people in the team and you may even find a great mentor.

Another aspect of knowing the team is to learn what you will actually be doing. Think of questions such as this.

  • Who are your customers?
  • What products do you build and own?
  • Where can you find a list of repositories owned by the team?
  • Any important code that you can take a look at?
  • How does the team contribute to the company’s growth?
  • How is your team adding value to other teams across the company?
  • Get a team member to subject expertise mapping from your manager to understand who would be the best person to help you with certain topics

8. Set Clear Objectives

Having a clear set of objectives makes sure that onboarding does not feel like a never ending process. Your team probably owns a lot of code and processes but it’s important to not get overwhelmed by it and instead focus on a small subset of core topics and tickets to work on. If the ramp up is draining or overwhelming, do reach out to your manager. When you work outside of office hours or withhold from surfacing the challenges that you are facing, you miss out on giving valuable feedback on the onboarding process. This could potentially help out future members joining the team. As you check off items on your ramp up, make sure to keep notes on what’s working and what isn’t, any questions that you have and links that you want to read up on later. This is a great way to build your knowledge base.

9. Look Outside Your Team

One of the first and foremost things that I did when I joined my current company Yelp was to scan for organizations or employee groups that I’d love to connect with outside of my team. For more than a year now, I have absolutely enjoyed participating in various events and programs for Women in Engineering. 1:1s are a great place to express your areas of interests and colleagues almost always remember to point you to some amazing groups that you can be a part of. These are also great opportunities to grow as an Engineer and a leader outside of regular coding tasks. Get to know about some interesting communication channels or emails you can subscribe to.

10. Wrap Up Onboarding The Right Way

  • Make sure to offer feedback on the onboarding process and mentorship that you have received so far. Highlight the work that interested you most and any challenges that you faced with existing processes, codebases or systems.
  • Find ways to improve existing code, documentation or processes however small it might be.
  • Talk to your manager about areas that you felt aligned better with your interests and see if there are existing projects that you can be a part of.
  • If you think you got the most out of your mentorship, feel free to space out your future sessions or be on a lookout for new mentors in your areas of interest.

A well laid out onboarding process is when you feel slightly uncomfortable and challenged in good ways but not overwhelmed to a point of exhaustion. That’s the sweet spot to find – not too easy, not impossible either like the Goldilocks Effect on Infants! Hope you enjoyed reading this post. If you have more ideas on how to improve onboarding, feel free to leave your comments on this post. Have a great week!