My Technical Mentorship Experience – Senior to Principal Path

Sharon Xie

Author: Sharon Xie – Principal Software Engineer

Impactful Engineer shares the stories and journeys of women and men who are making a significant impact in the software industry. The purpose of Impactful Engineer is to inspire young software engineers to see that there are many paths they can take to move forward in their careers and grow their impact wherever they work.

Technical mentorship usually means the mentoring relationship between two engineers – one engineer (mentee) receives advice, guidance, or learning from a more experienced engineer (mentor). This relationship is often informal/implicit. For example, when a buddy (mentor) is assigned to an engineer (mentee), who newly joins a team to help him/her on board. I also see code/design review as a form of informal technical mentorship. Formal/explicit technical mentorship is less common based on my experience. However, I’ve found it very useful for my career development as a mentee.  As a result of an explicit mentoring relationship, I was promoted from Senior Software Engineer to Principal Software Engineer. In this blog, I’d like to share how I set up my mentorship with Joey Echeverria,  previously a Senior Principal Software Engineer at Splunk. I hope my story can provide some ideas to start formal mentorships.

Seeking a Mentor

I started considering having a mentor when I switched from a front-end engineer to a platform engineer working on Data Stream Processor (DSP) at Splunk. My primary goal was to speed up my learning on the platform. The secondary goal is to get advice on how to get to the Principal level (P5) from the Senior level (P4).

To find the mentor, I searched my network to see who was doing well on the goals that I wanted to achieve. It was pretty easy for me to identify Joey to be the one at that time because

  • He was the architect of DSP. He was also an early engineer who worked on the platform. He knows the platform inside out.
  • He was at the Senior Principal (P6) level. He interacted with a big group of engineers at various levels daily. I think he should have some good ideas about what it takes a Senior Engineer to get to the Principal level.
  • Most importantly, I’ve seen him in action, and I wanted to become Joey.

Initiating the Mentorship

I talked to my manager Vidya at that time about having Joey mentor me. I asked her to talk to Joey about this idea first because I wasn’t sure if Joey is open to a formal mentorship. He was busy and important, and I didn’t want to add more workload to him if it’s hard for him to commit to the mentorship.

He said “yes!” and my journey started.

First 1 on 1

The first 1 on 1 is more or less like a two-way interview. Both of you should feel comfortable talking to each other and working on the goals together.

I used the first 1 on 1 to address my questions and concerns. For example, I asked Joey how he felt when my manager asked him to be my mentor. It was my way to figure out if he believes in mentorship. I further asked Joey to tell me his interpretations of engineers at different levels. It confirmed that he knew how promotion works. I was very nervous then as I was still new to the team and was afraid of judgment. I could see that Joey made extra effort to make me feel comfortable talking to him.

On the other hand, Joey asked about my short-term and long-term goals and what I thought was needed to achieve those goals. He asked me how he could help me too.

In this 1 on 1, we also agreed on the following structure for recurring meetings:

  • Weekly 30min 1-1s
  • Focus on: expanding my platform/system knowledge and technical leadership skills.
  • Adjust the schedule and structure if needed

Recurring Meetings

We adhered to the weekly 1 on 1s with very few exceptions. Joey always offered to reschedule if he couldn’t make it.

On my side, I was the one who set the topics for our 1 on 1s. As a mentee, I tried not to waste Joey’s time so I always go into the meeting prepared. This weekly meeting pushed me to review my work regularly, which was a pleasant side effect. Things we usually talk about:

  • Code / design reviews
  • Deep dive a specific part of the system or codebase
  • I talked through challenges (technical, communication, collaboration, etc) I was facing, and Joey shared his perspectives/suggestions.
  • I went over something I did (eg: an incident response) and got Joey’s advice on how I could have done better.

Joey did an awesome job being a mentor. He was very patient in listening and creating a safe space for me to talk. Gradually, I was very open to talking about my vulnerabilities and frustrations. He never criticized my work. Instead, he asked me why I did it my way and helped me discover the room for improvement myself. If he had different proposals, he always described how he approached the problem and why he approached it that way. The key to getting to the Principal level is technical leadership. However, it was very vague for me in the beginning. Joey guided me to discover what it means and how to achieve it in a very concrete way.

Beyond Mentorship

Joey actively used his influence to provide opportunities for me to push the boundary of my comfort zone and demonstrate my abilities. He nominated me to take on bigger projects; He mentioned my name in meetings I was not in; He pointed people to ask me questions, etc.

In other words, Joey became my sponsor.

Other Resources


The Non-Definitive Guide To Mentoring Software Engineers

Impactful Engineer

(This is the first blog post of Impactful Engineer, make sure to sign up for our monthly interviews with software engineering leaders)

You are someone who would like to mentor someone else in their professional career to help them grow their influence and impact.

More Comprehensive Reference Material

Benefits Of Mentoring

  • You develop a network of enabling and trusting relationships.
  • You give yourself  an opportunity to reflect on your own practice.
  • You get recognition for being a force multiplier.

How to Become a Mentor

  • Volunteer To Be A Mentor: If your organization offers a formal program and is looking for mentors, this is the easiest path toward becoming a mentor. Throw your hat in the ring and reach out to the organizer.
  • Offer To Mentor Someone: If you’ve already established a relationship with someone on your team or in your organization, you can reach out to them directly and their manager to offer yourself as a mentor.

Time Commitment

Being a mentor usually requires you to dedicate a minimum of 6 months to 2 years to your mentee. I’ve even seen 3 to 4 years of commitment. Weekly check-ins are usually a healthy way to see how each other is doing, handle any urgent questions and build up a level of trust and habit.

Start By Building Trust

The first meeting is crucial to the success of the ongoing mentoring relationship. For the mentor, it’s their job to be open to listening, come prepared, be honest, show commitment and most importantly build trust. At this point of the mentor/mentee relationship, the mentee has the most to lose and is the most vulnerable.

I can’t emphasize this enough: build trust first before moving forward on working on goals. If you don’t feel like there is enough commitment, keep on working on the personal relationship so that there is genuine care taken on both sides.

Emphasize Privacy

Keep everything confidential, even with the mentee’s manager. If you want to communicate and talk about the mentorship, take the time to ask for permission before disclosing any information to others. Do not even disclose the mentorship unless both parties are in agreement to do so.

Ask For Clarity Of Goals

Usually, a mentee wants to reach a career goal but is unsure about how they can get there. After trust has been built, ask them what they would like to get out of your time together.

Listen And Reflect On The Goals

Listen, don’t talk. Make no judgement on the goals themselves. Stop and listen. This is what I work on for myself. Then after the mentee is done talking, summarize back what you heard.

Your Job As A Mentor Is Simple But Difficult

  • Ask the hard questions for the mentee in order to get them to think about difficult subjects.  (future blog post coming)
  • Teach the framework to think about problems, instead of offering immediate solutions. (future blog post coming)

How To Mentor Software Engineers

With software engineers, start with explaining how the corporate game is played: there are players in the game (peers, product managers, managers, manager’s manager, VP, other more senior people), and there are rules of the game (HR policies on evaluation, software job family and level guides). You want your mentee to learn how the corporate game is played: what are the rules for evaluation? What are the rules for getting promoted. Who is in the room when they are evaluated?

Then, recommend a process of self-evaluation, where the engineer ranks themselves on how they are performing at their current level and at the next level. Software engineers are promoted when they operate at the next level. Have them print out their corporate job definition and spend 2-3 hours going through each of the skills and talk through why they rank themselves at that level.

I also recommend an exercise where they “project” into the future. Ask them to imagine themselves in two years: What are they doing more of, less of? Ask them about the people they are interacting with: How have those interactions shifted over the years? What are they spending their time doing? What will they enjoy doing in two years? What do they not want to be doing?

A Question Worth A Few Weeks Of Time: What Is Your Brand?

Ask this question to get them to explore how they want their co-workers to perceive them as at work. Ask: What do you want to be known for within your organization? Another way to approach this question is to ask them about the top three values they want to hold on to. Values are self-imposed rules that you follow even when nobody is watching.

Questions You Might Ask When Mentoring a Software Engineer

– Do you understand the corporate game?  The rules such as job leveling.  How the promotion process works?  How are in the room making recommendations and making decisions?

– What steps could you take to be a more effective communicator in meetings? For example, you could set goals like preparing ahead for all meetings, or speaking up or ask one question in every meeting. Don’t be afraid to take initiative in a meeting, take notes, or put ideas on the whiteboard.

– What could you do to focus on improving your own iteration speed? Then, how could you help others with theirs?

– How can you make your job obsolete? Can you automate, document, train someone else? This opens up opportunities for you to take on something bigger.

– How can you make your manager’s job super easy? What can you do so that your manager just can’t help but give you a raise, promote you to the next level, or give you a stretch assignment? 1:1’s can be quite productive if you are always asking thoughtful questions.

– What would it mean for you to take on 110% and stretch yourself? There are always breaks where you can work on multiple things at once.

– What can you do to heighten your love for your job? Can you look at it from different perspectives? Can you increase the quality of your work? Can you see your work as part of solving a bigger problem?



See Also