Technical mentorship

May 03, 2021

Over our career we constantly find ourselves in positions where we can act as mentors or mentees in a formal or informal capacity. The way we choose to approach this situation sets ourselves up for successful relationships and career opportunities, or not.

Given that this is a recurring topic among teams I’ve managed and worked with, this seems like a good opportunity to discuss how I approach mentorship and maybe structure my thought process into actionable steps. At the end of this post I hope we have a formalized set of items to act upon.

Disclaimers

Mentorship can happen in a formal way, but it can also happen informally when you are working with your peers and sharing something new you have learned, or a behaviour that you’ve observed. Don’t let those moments pass without action, sharing is a great way of building trust and a healthy team.

Mentorship is a mutually beneficial relationship, both the mentor and mentee should learn along the way.

This is based on my current observations and is not supposed to be interpreted as the way to do things. If you have a different idea of what a good mentorship is please share.

Pre-requisites

More often than not I end up learning when mentoring, it is not expected that you should know everything about one or more topics before you can become a mentor. That being said, it is helpful to have relevant expertise over the topic you are planning to mentor on.

It is helpful to be a few years ahead in your career compared to your mentee, but not so many as to lose touch of how you felt when you were learning that particular topic. You should be able to relate to your mentee, and vice-versa.

Getting to know your mentee:

Before even starting I find it helpful to get to know the person you are entering this relationship with. It doesn’t need to be something personal, but knowing the answer to the following questions has helped me before.

  1. What’s your favourite way to communicate? (Email, Slack, Video)
  2. What’s your preferred way to learn? (Books, Videos, Problem Solving, Pairing)
  3. How do you prefer to receive feedback (Communicated in writing / verbal / immediate or at planned checkpoints)
  4. How much time are you planning to invest on this? (Sets the tone and workload)
    • 1h per week for syncs with the mentor plus 4 hours to study
    • 1h every two weeks with mentor plus X hours per week to study
  5. What would you like to get out of this relationship? (Goal setting)
    • Do you want to master a particular topic or learn in a broader capacity?
    • Do you want to learn how to learn about similar topics?
    • Do you want to learn how does it applies to your career?
    • Or maybe how to teach the subject?

Most of these questions apply to both the mentor and mentee, establishing answers to those questions in a first meeting is a great way to set your relationship up for success. It’s useful to shorten the feedback loop in the beginning of the mentorship, I highly recommend meeting weekly over bi-weekly or monthly. After the relationship is established and is going well it is okay to slow down the cadence if that’s what both parties want.

Not reaching consensus on the last two questions is especially problematic.

Gauging knowledge

More than owning the conversation, it’s highly beneficial for the mentor to ask focused questions and listen to their mentee’s explanation. I particularly like to ask people to teach me what they know about the subject they want to know better since it gives me a very good idea of gaps in their knowledge. Based on this explanation I can come up with a list of things that might be interesting for my mentee to learn about, and more importantly, how deep I can go in my explanation without confusing them.

Not knowing the answers for their questions is also a great opportunity to share how you would approach the challenge of learning that thing yourself. You absolutely shouldn’t pretend to know something you don’t. Not knowing is fine, like your mentee, you are still learning things along the way.

Giving the impression that you know everything will pass the wrong message to your mentee that they should also know everything in order to level up. This is wrong, giving them the confidence to be comfortable with not knowing, and instead focusing on how to ask the right questions and how to find the answers is an investment that pays off a great deal long term.

Sharing knowledge

By now we should have a pretty good idea of how much you can share with your mentee without overwhelming them. At every session you can issue challenges or material to be reviewed and ask your mentee to walk you through their solution. This will bring you back to the gauging knowledge step. These two steps will be repeated until the end of the mentorship.

It’s worth it to double check every few sessions if the mentor/mentee relationship is working out and tweak it accordingly. Please give honest and direct feedback if you feel things are not progressing as you expect.

Last but not least, if you have learned something from your mentee you should absolutely let them know. Sharing with the broader team is also a great way to promote knowledge sharing and building trust.

Hypothetical mentorship situation

Mentee: "I would like to learn about trait objects in Rust." Mentor: "What are trait objects?" Mentee: "They are used for dynamic dispatch." Mentor: "You are right, but what are trait objects exactly?" Mentee: "I'm not sure, I think..."

This is the perfect moment to pause, you’ve understood how much they know about the topic at hand and now you can issue technical challenges or share literature about the topic. Sharing more than necessary at this point would only have confused the mentee. For example, talking about the Sized marker trait and stack frames, or even vtables or multiple traits. It’s tempting to show all you know about a topic, but resist the urge.

Final thoughts

The best mentorship is the one that caters to each individual and raises their knowledge to the next level as opposed to being a one size fits all. That being said, what they should all have in common is a respectful relationship, honest and direct feedback and celebrating your mentee’s wins.

Recap

Get to know your mentee and align expectations and goals as early as possible followed by gauging their knowledge level through thoughtful questions. Asking your mentee to teach you about a subject is a great way to get an understanding of where they stand. Teach the minimum viable amount in order to get your mentee to the next level and repeat it until the end of the mentorship program.

Be honest when you don’t know something, it is perfectly fine to be transparent about it and use the opportunity to teach how you would approach learning about that subject in question.


Bernardo de Araujo

Application Security Engineer @Shopify.

© Bernardo de Araujo 2021