The Mentorship Diamond

I’ve been very lucky to have some great mentors and mentees in my time at GitHub. Through weekly 1:1s with @seejohnrun explaining to me what a staff engineer should (and should not) be doing I was able to get the role and (hopefully!) do a reasonable job at it. Currently, I’m lucky to have regular mentorship from @eileencodes who guides me on how to think about the most important work I could be doing and avoid pitfalls that I would not otherwise have seen.

On the mentee side, I did most of my mentorship initially outside GitHub through mentoring new Homebrew maintainers informally and then more formally through Google Summer of Code. I’ve been lucky enough to work with folks such as @itsbagpack and @gallexi through their promotions to staff and senior engineer respectively; helping them figure out their role, strengths and weaknesses, review work and documents for them and generally have fun hanging out with inspiring engineers like them.

My situation shouldn’t be special, though!

Everyone can have mentors (and mentees)

For almost everyone in our industry: there is someone around who has more experience than you. That person will have some things you can learn from them.

Additionally, there’s lots of people in our industry who you may have more overall experience than but they have more experience in a particular subject or skill that you wish to learn more about.

For almost everyone in our industry: there is someone around who has less experience than you. If you’re new to the industry, you could mentor someone who is e.g. in a bootcamp, studying at college or high school.

You should have more contact with your peers than with mentors or mentees

The mentor and mentee relationship is important but to remain grounded and better understand yourself and what skills your team most needs right now you also need to remain connected to your peers. Doing so may already happen organically through pre-existing relationships, video calls, group chat channels etc. If it isn’t, though, or if you wish to supercharge this process: having regular 1:1 video conversations with your peers (structured or unstructured depending on your preferences) can help you improve this.

Mentorship Diamond

The above approach to mentors, peers and mentees can be summarised by this “mentorship diamond”:

Mentorship Diamond

How important is mentorship to my current role?

Let’s look at a few job titles as examples:

Junior Software Engineer

  • Experience: Relatively new to software industry
  • Non-manager Mentors 1:1s: 1+
  • Mentor Location: In (and optionally outside) your employer
  • Mentees 1:1s: Optional (but worth considering)
  • Mentee Location: Outside your employer e.g. open-source, bootcamps, education
  • Peer 1:1s: 1+

Senior Software Engineer

  • Experience: Moderately experienced
  • Non-manager Mentors 1:1s: 1+
  • Mentor Location: In your employer
  • Mentees 1:1s: 1+
  • Mentee Location: In or outside your employer
  • Peer 1:1s: 2+

Principal Software Engineer

  • Experience: Very experienced
  • Non-manager Mentors 1:1s: 1+
  • Mentor Location: In or outside your employer
  • Mentees 1:1s: 2+
  • Mentee Location: In (and optionally outside) your employer
  • Peer 1:1s: 3+

How can I get started as a mentor?

If you’ve already got someone who wants to be mentored by you: great! Discuss with them what cadence would work best for you both (weekly, fortnightly, monthly), whether you’d like it to be a structured or unstructured conversation, whether you’d like to pair together, etc.

If you haven’t already got someone who wants to be mentored: ask around. Ask your manager and other managers around the company if they have someone that can benefit from your skills. Consider looking outside the company for less experienced people you may have relationships with that you can offer mentoring too. If this is too intimidating, consider a structured program like e.g. Google Summer of Code.

Mentoring relationships also aren’t always “official”. They may be informal conversations with someone you’re regularly chatting and sharing knowledge with.

If you don’t have the inclination or bandwidth to take on a(nother) mentee right now: that’s ok! You can politely decline and, if you’re feeling extra nice, help them figure out someone more suitable.

How can I get started as a mentee?

This is a bit easier: figure out who you’d like to work with as a mentor and ask them if they can spare the time to be your mentor. Not everyone I’ve asked has said yes but I’m always glad I asked.

If you’re not sure yet who would be the best person to work with or you’ve asked people and they’ve turned you down: ask your manager for suggestions.

You can also start with having just informal one-off conversations with someone you would like to be a mentor and, if it goes well, arrange them to occur regularly.

This article written by @nerdneha is a great resource when searching for a mentor.


Thanks to @nerdneha for suggesting, reviewing and generally inspiring much of this post. Thanks to @seejohnrun and @eileencodes for being great mentors and @itsbagpack, @gallexi and many others in and outside GitHub over the years for being great mentees and reviewing this post.

Additional Reading