Our Engineering team is the largest team at Buffer. It has a lot of moving pieces and is composed of several smaller teams. As with any large team, we’re keen to make sure no one individual lacks guidance or an opportunity to grow. In this post, I’ll share a little bit more about how we’ve done that through a new program at Buffer that we’ve already had a lot of success with, our Engineering Mentorship Program.
Why a mentorship program?
Over the years on our Engineering team, we’ve had great results from engineers pairing and sharing knowledge. We’ve also seen spontaneous mentorship relationships form and are currently at a point where we have several senior engineers who naturally fill the role of a mentor for a more junior team member.
These relationships proved to be extremely beneficial both for the junior and the senior engineers’ growth and have helped the teams be more cohesive and move faster. To extend the mentorship opportunities to more engineers, we’ve decided to launch an official Mentorship Program in the Engineering team, to add momentum to existing relationships and form new ones between engineers interested in growing as mentors or learning from one.
One of our main focuses on the Engineering Management team is helping engineers grow and advance in our career framework. At the same time, they learn and apply best practices to improve our codebase quality over time.
In the past, we’ve heard some confusion from our engineers around how investing in code quality and best practices relates to our career framework, and concerns that some technical debts might be making it more challenging to advance for newer engineers. This Mentorship Program feels like it has helped to level up more junior engineers, something we’re always keen to do more of.
How we’ve set up our mentorship program
There are three roles in our Engineering Mentorship Program: mentors, mentees, and mentorship champions.
Mentors are senior engineers who have a depth of experience to develop the skills of others. They have regular meetings with their mentees and provide a safe space for the mentee to think out loud and be a sounding board to explore new ideas and innovative thinking.
Mentors can also be the personal cheer squad for a mentee, motivating mentees to achieve their goals and inspiring mentees with a mentor’s own accomplishments.
Mentors will share best practices, code quality, testing, refactoring, and how those relate to our engineering career framework. A mentee's promotion is a sign of success! A mentor’s goal is to grow mentees technically, and promotions are one (but of course not the only) way that growth shows up.
Mentors will help identify and solve problems and provide practical, timely advice, and pair program to help remove any blockers and share knowledge.
Mentees are engineers that feel they could benefit from having a mentor to guide career and skill growth. They don’t have to be “more junior” necessarily. A Senior Back-End Engineer who wants to learn front-end could be a mentee, too.
This program is for mentees, so they own the relationship and are responsible for organizing and driving all meetings with their mentor. They shouldn’t wait for their mentor to drive this growth. In their discussions, they should prepare tasks they want help with and code examples.
Mentees are responsible for implementing and growing from the feedback their mentor gives them. It’s on the mentee to take the advice and run with it.
We’ve tried mentoring before, but we’ve had something missing: supporting our mentors. To fix this, we came up with the idea of Mentorship Champions. These are team members who are amazing mentors themselves, have extensive experience with teaching mentoring engineers and are highly experienced engineers.
Mentorship Champions regularly meet with mentors to provide guidance and support on how to be a great mentor. They help with any blockers, challenges, or frustrations that mentors might have and give feedback on the program to the Mentorship Manager to make sure it’s successful.
The difference between a mentor and a manager
Although there are some similarities in the mentorship and management relationships, such as helping and guiding team members to achieve certain goals, there are also key differences.
A manager’s focus is generally on achieving organizational and team goals, as well as ensuring their advice and decisions are aligned with the organizational vision. With a mentor, the focus shifts to personal and career growth. The agenda of a mentor-mentee relationship is focused on sharing knowledge and experience.
A manager is responsible for reviewing the contributions of an employee and giving performance feedback, while mentor feedback and reviews are personal communication targeted to help a mentee remain focused on their long-term goals.
Open and candid communication is a key element in a mentor-mentee relationship. In fact, the entire purpose of the relationship is to openly talk about mentees shortcomings and learn how to overcome them with the help of an experienced mentor, while it can be trickier to talk about ones technical gaps with a manager.
✅ Mentors give answers; managers ask questions
✅ Mentors advocate for you; managers develop you
✅ Mentorship is casual; management is formal
✅ Mentorship is personal; management is organizational
Key principles of this program
To help guide our mentors and mentees, we’ve defined some key principles of this program:
A mentorship session is all about the mentee.
It's the mentee's time, so the mentor should focus the session around them, their questions, and what they need. The mentor should also be prepared to fill in the gaps that the mentee does not bring or struggles to see for themselves.
Mentors help their mentees grow technically by supporting their mentee’s identity and interests.
The program’s aim is not to take a one-size-fits-all approach. It provides the tools and support for mentors to help everyone flourish in their own unique way.
Not everyone needs a mentor.
Some people learn best alone, or from casual chats with lots of different people, or they might already be getting everything they need at this moment from their manager and do not require additional mentoring.
An engineer does not need to be a mentor to grow.
There are other ways for engineers to expand in their careers and our mentorship program isn’t a requirement in our career framework.
Feedback from the Mentorship Program
Initially, we ran this program as a six-month experiment. After the first 6-months, we asked those who participated for feedback on the program and if they wanted it to continue.
The feedback we got from the program was extremely positive, showing that these kinds of relationships and the support the program provides has been very useful for the growth of both mentees and mentors.
Here are a few highlights:
- [...] I believe this mentorship has been the biggest factor in my growth at Buffer
- [...] the mentorship syncs are definitely one of the most helpful syncs I have
- [...] it's a very positive experience overall, really enjoy building a trust relationship with my mentees, and seeing them progressing, it's a rewarding experience for sure. It's also a good way for me get more involved with different product areas, and problems, outside of my strict day to day work
- This program has been an amazing help for me, I’ve been enjoying every single one of the calls I’ve had [...], my mentor always challenges me and he has helped me to grow by doing the things I love.
- […] "it’s been only a joy full of learning and mutual trust. I felt that we were able to bond together and discuss many things on career framework, personal growth and technical decisions in our organization”
Based on the feedback and individual chats with engineers, we decided to continue the Mentorship Program indefinitely with a few changes.
What we’ve changed in the program
Adding more Mentorship Champions
One of the Mentorship program's identified benefits was having dedicated support for our mentors through Mentorship Champions. So far, this role was fulfilled solely by our Staff Engineer, Mike San Roman, making it difficult to scale and add more mentorship pairings (support more mentors). Because of that, we decided to add additional senior engineers and experienced mentors as Mentorship Champions.
Introducing regular mentorship chats
There have been important topics that emerged from this experiment, such as ensuring the program is inclusive and diverse, supporting and growing women mentors, and making the program more transparent and collaborative with Engineering Managers.
For this reason, we are now holding once-a-month calls between Mentorship Champions to discuss the above points, chat about any recurring themes in mentorship, and share learnings and updates with the Engineering Management team and wider Engineering team.
Introducing async office-hours
It has been quite tricky to gather mentors and mentorship champions on one call since so many of our team are in various time zones. With the 4 day work-week and leaning more towards asynchronous communication, we decided to introduce async office-hours where, on a dedicated day, everyone will share their updates asynchronously in our private Slack channel. The updates will include any successes, challenges, blockers, and celebrations that emerged during the past few weeks.
So far, we’ve seen great results from the mentorship program for the Engineering team, and we’re excited to keep investing in it and supporting our engineers in their career journey.