Tips on becoming a good software engineer mentor

Peter Simic

If you’re a senior engineer or a team lead, mentoring can be a great way to share your knowledge and experience with people who are just starting out in their careers.

But before you begin pairing up with junior engineers, it’s important that you have some idea of what they need from you as their mentor.

That’s why in this article we’re going to give you some tips on how to best help your juniors grow into successful engineers.

Let’s see what they are!

Be ready to learn from your mentees

Although at first glance, it seems that the mentee is the main beneficiary of the mentoring relationship, in reality, both parties gain from it.

As the mentor, you can guide the mentees through the pitfalls of learning, help them avoid common mistakes, and ensure they’re successful in their projects and tasks.

And as you can see in the picture, the benefits of mentorship for a mentee can be huge, from improving confidence to helping them get a promotion.

Source: Paymentsense 

However, being a good mentor means more than just providing advice. It also means being open-minded enough to learn from your mentees as well.

A good example of this is Zynga, the company behind several popular social network games like FarmVille. The company is well known for its mentorship program for new tech hires.

Source: Mentorloops

Upon joining the company, new hires are assigned a senior mentor to provide advice and guidance on how to adjust to the company culture and teach them about the products.

However, at Zynga, they also make it a point to foster two-way communication between mentor and mentee by implementing the practice of reverse mentoring.

Bug and crash reporting tool for your app

Try Shake SDK for free.

Mentors are encouraged to listen to the ideas of their mentees and get fresh insights about the industry and technology from them.

Kirill Shevchenko, Ruby Developer at RubyGarage, perfectly sums up what reverse mentoring is all about:

“As a mentor, you constantly broaden your mind. When you think that you’ve completely mastered the technology, your mentees ask you questions that make you look from another angle at your knowledge and approach.”

As you can see, mentorship is a win-win situation for mentor and mentee because it opens up new possibilities for learning and growth for both parties involved.

Guide, don’t control

When you’re a mentor, it’s tempting to try to control how everything plays out in your mentees’ tasks and projects.

But a good mentor is the one who guides their mentees, not the one who micromanages them.

Effective mentors give their mentees space to explore their own ideas and make their own mistakes.

Meta’s Engineering Bootcamp is a great example of how to effectively mentor new tech hires by giving them a significant amount of autonomy from day one.

Source: The Star

Bootcamp is the 6-week training program that all new engineers, regardless of their rank and experience, go through at Meta.

From the beginning, they’re paired with senior engineers as mentors.

Mukul Rathi, the software engineer who personally went through the Bootcamp and described the experience in his blog, defined a role of a mentor as a sort of manager.

According to him, it’s a person who helps manage the engineers’ expectations, provides an extra level of support throughout the program, and eventually decides when the mentee is ready to graduate from the program.

In order to get new engineers up to speed quickly, Meta gives new engineers access to its entire code base and puts them on assignments they have to do independently.

Each task is given a level of complexity from 1 to 5 and mentors assign new hires a few to do each week.

Of course, they start with small tasks, such as fixing a bug or refactoring a code, but they increase in difficulty level each week.

Mentors supervise them and offer them guidance, but they don’t control them.

However, in the end, they do check their code before it’s rolled out to Facebook’s users as potential errors can negatively affect the user experience.

But this doesn’t mean controlling in terms of micromanaging their every move.

On that note, it’s clear that when you guide your mentees, without watching them like a hawk all the time, you’re giving them the space and encouragement to get the ropes quickly and develop a sense of ownership over their projects.

And finally, you enable them to become better software developers because of it.

Teach the “why”

One of the biggest challenges in mentoring is helping mentees understand how their work fits into the larger scheme of things.

Mentees, especially junior ones, often struggle to see the impact their work has on their team and the project.

A good mentor will help them see the big picture and build an understanding of where their role fits into the entire project lifecycle—from inception to delivery.

For example, Canva, a popular online design tool, has had great success with its mentorship program because it clearly defined roles for new hires, and helped them see how all the pieces fit together.

Source: Enboarder

In her interview with Enboarder, Linda Lin, People Operations Lead at Canva, provided some insight into the processes that the company uses in its onboarding and mentorship programs.

According to her, it’s crucial to give mentees the big picture as well as the little picture.

The big picture concerns Canva’s goals, and where the company is heading.

The little picture has to do with the new hires’ role: their tasks, and how they contribute to the team and its success.

Source: Shake

Based on Canvas’s example, we can draw the conclusion that by having clearly defined expectations for the mentees and describing exactly how their role fits in the team and the project, mentors can help them gain a valuable perspective on what they could be contributing to the company.

This will enable them to see how everything they do makes an impact and will give them a better understanding of what it really means to be a part of the organization.


Share resources with your mentee

Mentors can’t always be available at a moment’s notice to answer all of the mentees’ questions.

When an issue comes up and mentees need help, a lot of the time they’ll have to find a solution on their own.

That’s why pointing mentees to a list of resources can go a long way in helping them tackle problems and find answers independently.

If they’re looking to dive more deeply into programming techniques, something like Coursera or Udemy may help them get to speed quickly.

For example, Udemy is an online learning platform with a large collection of video tutorials that cover almost everything, from programming fundamentals to more advanced topics like data science and machine learning.

Source: Udemy 

And access to Udemy as a gift for your mentees can really make a difference in how fast they learn new skills.

You can also recommend some of the popular blogs or point them toward books or other resources that can help explain concepts in more detail than you have time for during one-on-one time with your mentee.

For instance, one of the most well-known blogs about software development is Joel on Software, written by Joel Spolsky, co-founder of Stack Overflow and the creator of Trello.

He writes about many technical topics, including user interfaces, programming languages, and project management, to name just a few.

And his blog is an excellent resource for everyone who is entering the complex world of software engineering.

Moreover, while books such as Clean Code and The Pragmatic Programmer are considered classics and a must-read for everyone in software engineering, there are also books you can recommend to your mentees that will encourage them to be better problem-solvers, all the while having fun reading.

The Martian by Andy Weir is one such book.

Source: PopBuff

The story revolves around Mark Watney, a botanist and mechanical engineer who finds himself stranded on Mars after he is accidentally left behind during a mission to explore the planet.

He has to figure out how to survive on a planet where there’s no water or food.

In essence, this book is about overcoming seemingly impossible odds and finding creative solutions to difficult problems.

Therefore, it’s a very good resource for mentees who, besides constant learning, sometimes need a dose of inspiration too.

Always give specific advice

As a mentor, you should always be as specific as possible.

It’s not enough to say “you should write clean code,” as that doesn’t help your mentee actually write clean code.

Instead, you should provide concrete examples of what you consider clean code and what you would consider an example of messy code.

That’s exactly what Selleo, a web, and mobile software development company, does in its extensive mentorship program.

Source: Selleo

Dawid Pośliński, their CTO, recommends leading by example as the best way to mentor others, meaning that it’s not enough to talk about it, mentors should also show in practice how to tackle various issues.

“I think that throwing your mentee into the deep end while helping him swim is best. If we are mixing: learning through doing and theory (which explains why things work as they work), we will get the most out of such a process.”

This kind of direction will help mentees gain confidence and improve their skills faster than if you simply explained the concept and then left it up to them to figure out how it works.

And feedback from one of Selleo’s junior developers, shown in the picture below, proves that this type of approach can truly reap great results.

Source: Selleo

In his own words, this kind of mentorship gave him valuable knowledge and skills, enabling him to learn even faster.

To sum up, the vaguer the feedback, the less helpful it is and the more likely it will discourage your mentees.

Your goal should be to help them solve their problems and steer them in the right direction.

And specific advice is the best way to do that because it’s easy to follow and, at its core, it’s an actionable piece of information.

Use skill matrix

As a mentor, you’re probably looking for ways to help your mentees develop the skills they need to be successful in their career.

But how do you convey this information to them?

Sure, you can give them a list of things that they’re good or bad at, but it’s difficult to get across what they’re doing right and wrong without accompanying commentary.

That’s where a skill matrix comes in.

Simply put, a skill matrix is a table that shows which skills are required for each level of experience.

For example, Philipp Hauer, a Head of Engineering at the Spread Group, uses the skill matrix when he wants to assess his team’s skills and performance.

The picture shows that Hauer first lists skills on one side of the table and engineers and scores on the other side. He attributes the score next to each skill and sums up all the scores.

He doesn’t make assumptions based on the total score, but he still uses it to get a basic indication of how engineers are performing and what areas in their skill sets need improvement.

Although his skill matrix it’s not primarily intended for mentorship purposes, it can still give you an idea of how you can easily create one for your own mentees, especially if you mentor only one or two engineers.

If you have more than two engineers under your wing, the best would be to choose from more than 50 free skill matrix templates that Vectorly offers on its site.

They’ll give you a more automated, and thus quicker way to track your mentees.

Source: Vectorly

As you can see in the picture, from templates for Android developers to QA developers, you can choose the one that best suits your needs and easily create extensive skill matrices for all your mentees.

This will give you the opportunity to tailor your mentorship style and focus on specific areas where you can make the biggest impact as a mentor.

Have an organized review process

The review process is a key point in the mentoring program because it’s what allows you to discuss with mentees their strengths and weaknesses.

Therefore, once you’ve created a skills matrix, the next step would be to engage in a review process with your mentee.

In the picture below, you can see the skill matrix for Python developers. In this stage, you would go through every skill on its list with your mentee and see if there is room for improvement.

Source: Medium

Packed with all this information, you’ll have a clearer picture of where your mentees stand and be able to develop an action plan to help them build skills that are lacking.

It would be useful to schedule a periodic meeting with your mentees, for example, every week or two, even if you think that they’re on the right track.

To make those meetings more organized and structured, you can use a specially designed list of questions, shown below, and ask them during your one-on-one meetings.

Source: Vectorly

For instance, you can ask the mentees if they agree with your evaluation, what skills they would like to develop, how would they describe their weak spots and strengths, and finally how you can help.

This way, you’ll get an insight into how things are going from your mentee’s perspective and hopefully identify any problems early on before they become too big to handle.

Conclusion

As a mentor, it’s your job to help your mentee develop as quickly as possible.

In many cases, this is as simple as pointing them in the right direction. In other cases, it means teaching them new skills or guiding them through the learning process.

It can be daunting if you don’t have much experience in that area yourself, but it’s also incredibly rewarding.

You’re helping to shape someone’s career path and giving them the tools they need to succeed, which is an invaluable opportunity and recognition of your expertise.

In this article, we’ve tried to cover all of the key points that you might want to consider when you’re helping someone become a successful engineer.

We hope that these tips will help guide you through the process of mentoring and make the whole experience more enjoyable for yourself and your mentee.