Why You Should Mentor a Junior Developer
The teacher should also be a learner.
This past summer I saw a Facebook post from my friend Andrew:
My initial thoughts we “I love mentorship, hell I started a mentorship program in Austin myself [shameless Code Orange plug].”
But I hadn’t realized how the experience of mentoring a Pesto student would shape my own perception of the current state of tech and the world.
For context, Andrew started Pesto in his own personal journey rooted in the spirit of learning.
In the spirit of my own learning, I had agreed to be a “Silicon Valley professional developer” mentor for a student in Pesto’s first batch.
I was born in Karachi in Pakistan. I’ve had the opportunity to go back multiple times, but have never gotten to visit India. (One of the potential perks of being a Pesto mentor was that I could perhaps go to India for a wedding one day.)
Still I had always held a firm belief that if I wasn’t so fortunate to have the parents I had, if we hadn’t moved to Canada and eventually the States, then I would still be in Karachi today. It’d be unlikely that I would have the opportunity to write this today. It’d be unlikely I’d be where I am today.
So in some ways it had always felt that I had a duty to give back to where I came from. (India and Pakistan were once one country and even if they weren’t I would still have felt similarly compelled.)
To those who cannot relate, to put it succintly:
If you were to consider your birthplace to be completely random, how likely is it that you would enjoy the life you do now?
This is a question I constantly ask myself.
How would I live if I was someone else’s child? It’s a heavy question. But as any kind of altruist, it’s one to ponder, regardless of how uncomfortable it is.
I was assigned my mentee soon after committing to the mentorship program. As with any new experience, I wasn’t sure what to expect. I wanted to make an impact in someone else’s life, both professionally and personally, but I wasn’t even sure how much I had to offer. This was likely a symptom of my long-standing imposter syndrome as evidence of my career would prove that I had a lot to offer a more junior developer just starting out their career.
Nikhil, my mentee, was introduced to me over email and we soon scheduled an introductory call. Admittedly though I had planned on doing due diligence ahead of time by searching up Nikhil’s past professional history and projects, I did not end up making the time to do so. This, however, was not a problem. Nikhil was very excited to be given the opportunity to speak to an experienced developer in the States.
Similarly, I was already excited for the opportunity to be a mentor. So it was a good fit. But the specifics of what needed to be done in the program seemed free-form and fluid at first. This was daunting, but luckily my experience as a founder prepared me well for the task at hand. I realized early in the program a simple guiding principle:
Mentoring someone is similar to managing someone. In management, your company’s revenue is your bottomline. In mentorship, shared personal growth is your bottomline.
The first call was a simple introduction. I gave Nikhil a rundown of my professional experience thus far and he did the same for me. In my past experience, the better I could relate to my mentee, the more successful I would be at making an impact on them. So I tried to relate to Nikhil. It wasn’t difficult as we’d both had entreprenuerial aspirations throughout our careers and had realized that there was a ladder of experience that we would need to climb in order to get to where we wanted to be.
Throughout the mentorship program, I related my past development experiences to him in ways that would be productive and helpful. Initially, I wanted to be respectful of what the instructors had intended for Nikhil to learn in terms of coding practices and frameworks, but I soon came to realize that he was hungry for more knowledge and experience.
Throughout the program, I was held accountable by Nikhil’s professionalism responsiveness in emails. Every week, whether we planned for a call or not, he would email to make sure the a follow-up meeting was scheduled. He even took it upon himself to set the agenda for the next meeting we were to have. Needless to say, I was thoroughly impressed.
At first, I would advise technically in a general sense. However, later in the program, I decided that screensharing the codebases we were working on would be the best way to understand each other’s working and coding styles. This became the standard on each call as we’d check-in on each other’s progress and have demos ready.
We got on nearly hour-long calls at roughly a bi-weekly cadence. When I didn’t have time on a given week or we had to reschedule a planned call, Nikhil always followed up. On a particular week, I had completely forgotten about a call we were supposed to have a few days prior. I felt guilty; Nikhil was very understanding:
As the program went on, the free-form fluidity of each meeting became more structured and productive. We pair-programmed at times. I gave him suggestions on npm packages, UI kits, React component strategies, styling methods, and more general advice on how to practice becoming a better developer. However, it wasn’t entirely stiff and formal. We chatted about Silicon Valley culture, the future of technology, and our lives in general. It was never boring.
By the end of the program, Nikhil demoed his final project to me and I was truly blown away at his growth and progress as a product engineer. Not only did he utilize every bit of advice I had to offer, he created a well thought-out tool that would be helpful to any remote employee called The Remotants. I was truly proud of he was able to accomplish in such a short period of time. Although he gave me much of the credit, his willingness to learn and grow were still his own.
How It Shaped Me
By the end of the program, I realized how much I had improved as a developer and mentor when I looked back at the insightful questions that Nikhil had asked and how thoroughly I wanted to answer them. I began diving deeper into the frameworks that I had recommended. The technical practices that Pesto was teaching their students were, at times, beyond what I had bothered to learn and employ in my own work. For example, I decided it was time to buckle down and deeply understand the complexities of Webpack rather than hinging entirely on create-react-app to do configurations for me. I decided it was time for me to further my creative UI abilities when prototyping a product. In a general sense, I decided that I needed to live up to my title as a Pesto mentor.
There were many points in time that I realized that we were completely in sync about our opinions on software development. We used the same PrivateRoute wrapper component for our React apps. We decided antd was a very useful UI kit to start new projects with. We utilized similar data-fetching mechanisms and error-handling. But the most important lesson I learned from mentoring a junior developer was not technical.
In many ways, seeing the personal growth of a junior developer that I was partially responsible for helped me realize that there was a lot that I had learned in my career that I hadn’t actively realized.
I found myself to be a better developer and manager than I had thought I was. My imposter syndrome began to ease up.
I had always considered myself a solid developer, but never one that could offer the level of mentorship that I finally realized that I was capable of. The gratitude that Nikhil showed me would brighten the days of exhaustion working on an early startup and building a product from the ground up. Nikhil was doing the same thing, but his attitude and excitement to learn and grow was infectious. I became eager to learn more than I already knew. I became eager to be better, not just for myself but also for others. Teaching was always a passion of mine. Learning, a desire that usually ends after one graduates from school, became a regained passion. I was very grateful for that.
I also began to realize how fortunate I was to have been given opportunities left and right to learn and grow simply by my geographic location in the States. I realized that not everyone is as fortunate as I have been in my aspirations, in terms of optionality and support.
Desipite having worked hard for the opportunites in my career, I realized that my place in tech was still one of privilege in the scope of the entire world.
Privilege comes with responsibility. Mentoring and teaching the next generation of developers is important to me and I plan to continue. And in doing so, I feel as though I am fulfilling an important part of my responsibility.
The process has always been personally rewarding. Lifelong teaching is the easiest path to lifelong learning.
Mentoring junior developers is not simply a way of easing your conscience with respect to your privilege. Mentoring the next generation is a way to gain perspective on how you fit into a world that’s larger than yourself. It’s a way to learn about new ideas and reevaluate longstanding beliefs.
As established developers, our ideas on tech are often formed in an ongoing process by the articles we read, the coworkers we work with, and the documentation we painstakingly sift through. But whether you have 20 years of experience or only a few, when you interact with people who are going through the same process that you had to go through to get to where you are today, you are often reminded of a time when learning was exciting. And you can carry that excitement into your own professional and even your personal life.
The excitement of learning from your mentee will in turn reinvigorate your excitement for learning.
Mentoring a junior developer will make you a better developer. It will help you learn the perspectives of developers that you may manage one day. It will equip you with the patience, understanding, and empathy you’ll need as a founder. And on a many levels, your personal growth will go far beyond your professional life.