00:00:00.000
Have you thought about doing some mentoring? I used to have a mentor.
00:00:05.000
Actually, that's how I went from hobby coding to getting paid to code. I had a mentor who helped me along the way.
00:00:12.719
You know, I have done a fair bit of mentoring myself, but I'm always up for a few new tips on how to do it better.
00:00:18.060
Well, great news for you! Our next speaker is going to do just that. After being a Ruby developer for over 12 years, Sameera Gayan has now moved to looking after developers as an engineering manager.
00:00:31.619
He still likes to get his hands dirty with code and has many unfinished projects. Here's an opportunity for a speaker sponsor moment. Sameera is here today with the help of Mabel, who has shipped him over here from Sydney and is looking after his flights, accommodation, and everything else.
00:00:43.980
Thank you very much, Mabel! But of course, we’re all wondering, does Sameera pair?
00:00:56.820
Well, he does, and he has some pairing tips as well. Oh, what are they? Number one: Junior on the keys, slow person drives. Remember, don’t be pushy! That’s why I’m always the co-author on the commit when we’re pairing.
00:01:10.740
You, as the coach, are the one pushing. Sameera Gayan, mentoring: for me or not for me, that is the question.
00:01:23.280
Thank you, everyone, for coming. First off, I need to say a huge thanks to Ego because my computer stopped working.
00:01:29.460
That’s his computer now! Who would have thought? So, I’ve been to Ruby conferences here since I moved to Australia back in 2013.
00:01:40.020
From 2014 to 2018, I had been on that side of the fence, and this is the first time I’m on this side of the fence, so it’s a bit terrifying, but it’s good.
00:01:52.200
Before the talk, Ego told me that if I do a bad job, his presentation will look better, and he’ll give me 50 bucks. If this goes well, that’s fine; if not, at least I’ll get 50 bucks.
00:02:03.360
I’ll be talking about mentoring and helping other developers, mostly about developers who are starting new, at the associate, graduate, or mid-level.
00:02:14.520
About me, this is my web handle, you can find me on Twitter, GitHub, and all that.
00:02:25.740
I’ve been a long-time Ruby developer; I started using Rails back in 2008-2009, and then I moved to this role as an engineering manager.
00:02:39.239
I joined Mabel as a developer, and over the last one and a half years, we grew from 15 developers to now 70 plus developers.
00:02:46.319
As a company, we had to support junior developers, graduate developers, and mentoring, as our company had the capacity. I was fortunate to be on that journey and learn a few things along the way.
00:03:04.500
Before I get into the topic, let me show you what I do when I have free time. That is camping!
00:03:14.000
So, it’s nine-to-five, which takes up my time with my little one and my wife.
00:03:20.000
In my free time, I also enjoy four-wheel driving and camping. If you’re into camping, let’s talk!
00:03:36.720
I showed this slide to my daughter, and she’s delighted; she thinks I’m going to talk for the next half hour about her, but it’ll take some time for her to figure that out!
00:03:58.800
Cool, so next is my journey a bit. I started coding back in 2005, and from 2005 to 2008, I was basically company hopping—six months here, eight months there.
00:04:17.560
I’ve done Visual Basic, .NET, ASP, Java, PHP, you name it. I even dabbled in a language called Visual FoxPro; it came with the Visual Studio bundle.
00:04:28.500
Back in 2009, I joined a company using a new framework—this was back in Sri Lanka—and they mentioned they were using Rails. I had no idea what Rails was, but I thought, "Let’s do it!"
00:04:43.500
So I started working with Ruby and Rails, and it clicked with me in a way that no other language had.
00:04:51.360
I think we can see from our community that we are a very happy group of people. Ruby has a way of hooking you; you aren't typically looking for another language.
00:05:04.860
Around that time, the Sri Lankan software economy was primarily based on offshore companies.
00:05:09.360
In 2008-2009, the U.S. recession hit, leading most Ruby developers to shift to other programming languages like .NET or Java. I chose to stay with Ruby, which paid off in 2011.
00:05:39.240
There was a U.S. project that needed an experienced Ruby developer, and I was one of the few available in Sri Lanka.
00:05:53.000
During salary negotiations, I asked for nearly three times my previous salary, and they were happy to pay me! I then applied for permanent residency, landed a job before I even arrived in Australia, thanks to Ruby and the community.
00:06:10.680
I arrived on April 28th, 2013, opened a bank account and Medicare on the next day, and started working the day after.
00:06:19.420
I’m sharing all these experiences to emphasize that everything I’ve achieved so far—my family, my career, all the good things—are due to the community and the help I've received.
00:06:34.380
As I started becoming comfortable with Ruby, I wanted to give back to the community. I have been active on Stack Overflow for some time, but I haven’t used it for about four years now.
00:06:47.579
It’s not because I know everything, it’s just that I don’t have the time to contribute. I started a Ruby Meetup back in Sri Lanka, and after moving here in 2013, I’ve been mentoring at Rails Girls events.
00:07:05.880
There’s an event called InstallFest organized by a company called Reinteractive. It involves helping non-IT people install Ruby and Rails on their laptops and build a small blog post, which serves as a great introduction to programming.
00:07:19.680
For the last two years, I slowly transitioned into a management role—somewhat of a dark side—but I’ve aimed to help more developers and assist the community.
00:07:31.680
At Mabel, we initiated a graduate program where we hired four graduates undergoing a six-month program, consisting of three months of test projects and learning.
00:07:51.360
We recently hosted a Ruby Sydney Meetup, which occurred last Tuesday, and we’ve also conducted two Rails Girls events, looking forward to many more!
00:08:00.900
This transition helped me contribute more than I was just as a developer.
00:08:10.440
Now, let me share a quote: "Tell me and I forget; teach me and I remember; involve me and I learn"— Benjamin Franklin.
00:08:22.020
If there’s anything to take away from this talk, it’s this. However, it’s important to note that Benjamin Franklin didn’t actually say this—it’s a misconception.
00:08:34.680
So now that I’ve cleared that up, let’s get back to the actual talk.
00:08:47.220
Now, let’s discuss the types of mentoring. There are various approaches: long-term structured mentoring, where you set up regular policies, and ad hoc mentoring.
00:09:01.620
Structured mentoring involves having a mentee, a planned meeting schedule, and clear goals. In contrast, ad hoc mentoring allows peers to come for guidance when facing particular challenges.
00:09:10.740
A third approach is online help, such as answering questions in forums. My focus will be on structured and long-term mentoring, though some elements can be of use in online help.
00:09:24.480
The first point I want to make is to be kind. This may seem obvious, but kindness is crucial in mentoring.
00:09:36.220
You need to create a space where the mentee feels comfortable approaching you with questions, without feeling that they’ll be judged.
00:09:50.240
Even the smallest question should be welcomed, as it can foster a psychologically safe and inclusive environment.
00:10:01.680
You should be careful with your word choices; avoid trivializing things for someone who is still learning.
00:10:10.800
Phrases like 'this is a quick fix’ can add unnecessary pressure. Instead, frame things from their perspective, so they feel capable and less intimidated.
00:10:32.500
The next point is to know their learning style. People learn differently.
00:10:43.320
Some prefer reading documentation before coding; others might jump right into coding and then consult the documentation.
00:10:53.880
Unless they’re heading in a wrong direction, avoid forcing your way on them. Understand their preferred methods and adapt.
00:11:11.420
Sometimes it helps to have a conversation about how they would like support and what forms of guidance they prefer.
00:11:31.440
This also promotes cognitive diversity. Bringing people with different viewpoints and backgrounds can lead to greater insight.
00:11:43.560
I’ve experienced moments during InstallFest where participants ask questions that stump engineers. It’s important to remember they are often coming from a fresh perspective.
00:11:57.060
You don’t have to be a superhero. If someone struggles, don’t just solve their problem without explaining it to them.
00:12:09.720
Let them explore the solution with you. Ideally, let them drive the conversation and the solution so they can learn along the way.
00:12:24.960
One analogy I use comes from four-wheel driving. When in a convoy off-road, the pace is set by the slowest vehicle.
00:12:36.840
Similarly, in a team, the speed of work is determined by how fast everyone can keep up. It’s about not leaving anyone behind.
00:12:48.840
If you have a super senior engineer speeding along while leaving a junior behind, that isn’t effective teamwork.
00:13:00.240
Next, listening is key. As a senior developer, it’s easy to jump to conclusions while someone explains a challenge.
00:13:10.920
However, the person experiencing the issue may have insights you’re not aware of, so always start by listening.
00:13:22.200
Encourage them to lead the way to find the solutions, even if you see a one-line fix. Help guide them to discover the solution themselves.
00:13:33.400
During debugging sessions, if something unrelated comes up, pause the session. Let them know it isn’t tied to their current problem.
00:13:48.140
Let them choose whether to explore that issue or return to the original question. This will help them stay focused and avoid confusion.
00:14:05.720
Mindfulness is also important. If you have your own work and responsibilities, it’s easy to get distracted during mentoring.
00:14:16.920
If someone is talking and you receive a message, it’s respectful to communicate that you need a moment to address it before returning to them.
00:14:29.040
Remember, their time is just as valuable as yours.
00:14:40.560
Set goals and create plans with your mentees. You want them to feel like they are progressing.
00:14:55.740
Setting achievable milestones helps. For example, if you say, 'In one month, I will refactor a spec,' it gives them something to strive for.
00:15:10.200
Celebrate those wins, no matter how small they may seem. Recognize graduate-level or junior developers for their achievements.
00:15:23.660
Their achievements may not seem as significant to you, but for them, even completing their first pull request can be a monumental victory.
00:15:36.480
Also, create a help network to prevent bottlenecks. When junior or mid-level developers join, ensure they have a buddy to help them navigate their tasks.
00:15:48.600
After they settle in, encourage them to reach out further, fostering an environment where they can ask questions freely.
00:16:03.360
Recognize that not every answer has to come from you; they should feel comfortable exploring a range of resources.
00:16:12.780
In conclusion, the key return on mentoring is self-satisfaction. Seeing people grow in their careers from your guidance is immensely rewarding.
00:16:32.040
It’s worth giving back to the community in any capacity you can. As an engineering manager, I've also found that alongside hiring, the human element is critical.
00:16:51.420
While technical skills are essential, we value good people in the team. A friendly environment benefits everyone.
00:17:10.560
In engaging with folks, you’ll create a nice community, develop lasting friendships, and feel that sense of belonging.
00:17:23.460
Finally, to answer the question: is mentoring for me or not for me? I say definitely yes, give it a try.
00:17:34.920
When you witness someone who started with little knowledge grow to the point of being able to correct you, that's a wonderful feeling.
00:17:49.440
Thank you very much.