Talks
Junior Gems: Hiring, Valuing, and Empowering the Next Wave of Ruby Developers
Summarized using AI

Junior Gems: Hiring, Valuing, and Empowering the Next Wave of Ruby Developers

by Kieran Andrews

In his talk at RubyConf AU 2024, Kieran Andrews highlights the untapped potential of junior developers in transforming software development teams. He discusses the benefits of hiring and mentoring juniors, particularly in a remote environment, emphasizing their fresh perspectives and eagerness to learn.

Key Points discussed include:

- Valuing Junior Developers: Andrews argues that juniors bring a willingness to tackle mundane tasks, allowing seasoned developers to focus on strategic work. This dynamic enhances productivity across the team.

- Cultivating a Nurturing Environment: He underscores the importance of a supportive atmosphere that encourages regular feedback and open communication, promoting psychological safety where juniors feel safe to make mistakes and learn from them.

- Mentorship and Leadership Development: The journey of mentoring juniors benefits not only the juniors but also the senior developers, who evolve into better leaders and mentors themselves.

- Effective Onboarding Strategies: A well-planned onboarding process is critical for integrating junior developers. It should involve introductions to company culture and ensuring the new hires have all necessary tools from day one.

- Balancing Challenges: Andrews emphasizes finding the right balance in task difficulty to maintain engagement without overwhelming juniors, thus promoting effective learning.

- Remote Mentoring Techniques: He shares examples of effective remote mentoring, suggesting tools and practices that facilitate collaboration between juniors and seniors.

- Fostering Growth Mindset: Finally, Andrews stresses that investing in juniors is building a pipeline for future leadership and is crucial for the long-term success of teams.

In conclusion, Andrews encourages the software community to rethink their hiring practices and invest in junior developers. By doing so, companies can create vibrant work environments that attract top talent, enhance team dynamics, and drive innovation.

00:00:05.480 All right, what if I told you there was a secret untapped energy force that could transform your software development team? Something that could rejuvenate your people and keep them on the track towards continuous learning and growth? What if I told you it wasn't actually that hard? The answer is right under our noses, and many of us are already doing it, but I'm not sure we've fully harnessed the power of this practice. Over the next 30 minutes, I'm going to attempt to tell you what in the world I'm talking about, how I've discovered it, and what you can do when you leave here today to implement it. Like anything else in life and business, there have been successes and failures along the way, and I've learned from both.
00:00:35.360 So, without further delay, I'm going to tell you the secret, and maybe you already know it because you’ve seen the title of the talk: the untapped power in your team is in your Junior Developers. I remember the first time I proposed this idea to my team; I might as well have just suggested that we spend some time refactoring some Legacy code. In our industry, many people feel like Junior developers are expensive, time-intensive, and require babysitting. After investing in them, aren’t they just going to leave to go somewhere else? I don't think so, and today I'm going to challenge that perspective.
00:01:05.240 Just like debugging a tricky piece of code, the solution lies in breaking the problem down into manageable parts. There are a lot of different people in this room with various backgrounds and levels of experience, but something that we all share in common is that we were all Juniors once. Everything we know now we once did for the first time. I’m going to tell a little story about when I was that Junior who didn't know the difference between a symbol and a string. When I was fresh out of university and looking for my first job opportunity, I got rejected quite a lot. Did anyone else here have that experience, or did you all get your first job on your first application?
00:01:36.680 It was an incredibly stressful time. You read all those job ads that require X years of experience with a framework that has just been released X minutes ago, and you think, 'How am I going to break into this world? How am I going to get in on this path when everyone is just hiring people with more experience?' Well, finally, something changed: someone saw potential in me, even though I had zero commercial Ruby experience. My code test submission was terrible; it was written like a PHP script. It wasn't about what I had achieved; it was about what the hiring manager saw in me: my passion, energy, and excitement for the job.
00:02:05.440 They wanted to give me a chance because they could see that I really wanted to do this and that I was keen to be successful at it. To be honest, I was shocked when they offered me the job. Thankfully, the company was willing to take a chance on me, and my mental environment was as supportive as possible for me to succeed. They didn’t just push me off the deep end and hope I’d figure it out on my own; they gave me the tools that I needed, trusting that if they did so, I would remain passionate, scrappy, and eventually become a valuable part of the team.
00:02:35.760 Now, I’m up here speaking publicly to a room full of engineers, so they must have done something right! Even though there were all kinds of crazy things happening at the company at that time, they shielded me from it all and provided me a space to both fail and learn. And oh, did I learn! That was the fastest period of growth I’ve experienced in my entire career. The way they approached this was so impactful and critical to who I've become as a developer that it shaped how I lead others, and I can’t stop talking about it.
00:03:06.160 Aside from my personal experience, why should you consider hiring a junior? Even if you're not a hiring manager, what should you tell your boss, and why should they look out for these Junior gems? Here I’ll tell you three top reasons and how to convince your boss. One: Juniors have an incredible willingness to dive into tasks that might seem mundane or less appealing to seasoned experts. For Juniors, these are golden opportunities to learn and get their hands dirty with real-world problems, which helps them build their skill set.
00:03:36.680 When talking to your boss, frame it this way: hiring Juniors allows us to smartly allocate our resources, ensuring that our senior talent is focused on high-impact strategic work that matches their expertise. Not only does this maximize the productivity of your senior staff, but it also accelerates the learning curve of your Juniors. It’s a perfect match: seniors get to concentrate on the work they find most meaningful while Juniors gain invaluable experience. Everyone is doing what benefits them the most, and the whole team's output skyrockets. I’ve seen this myself; plus, it nurtures a culture of mentorship and growth where everyone has a role that suits their current journey and aspirations.
00:04:03.280 Think of it this way: seniors are the deep divers. They've got the experience, the know-how, while Juniors are quick, agile, and ready to jump into action. When you combine the two, you create a team that's not just cost-effective but also significantly more powerful together, cranking up the value and sparking innovation. Two: Bringing in Juniors isn't just about filling a gap; it's about enhancing the entire ecosystem of your team. Juniors ask questions that nobody else does, which can lead to valuable discussions that refine your processes and approaches.
00:04:34.960 They will question outdated documentation and can contribute to updating it, helping not only themselves but the entire team in the process. So, tell your boss that Juniors not only learn from seniors but can teach us a thing or two about adaptability, learning, and the excitement of tackling new challenges. It's a beautiful symbiosis where everyone is teaching, everyone is learning, and the team grows stronger and more cohesive as a result. Three: Investing in Juniors is like planting seeds for the future leadership of your company. These individuals will grow up in your culture, embody your values, and potentially lead your team to new heights.
00:05:03.480 I know I have learned so much from Juniors myself. Let your boss know that by nurturing these talents from the get-go, you're not just hiring for the role you need today but strategically building the leadership pipeline your company will rely on tomorrow. Plus, seeing them grow firsthand is one of the most rewarding experiences out there, hands down. There are obvious financial benefits, productivity benefits, and culture benefits to inviting these Juniors into your team.
00:05:34.120 If I've convinced you, and you’ve decided to hire more Juniors, how do you go about doing that? How will you find these gems among all the applications you’ll be sifting through? You need to attract the right people. When you advertise a position for a junior developer, be aware that these candidates often look for companies that value culture, mentorship, and exciting technologies. They want a space to shine while also having a place to learn.
00:06:03.720 I wouldn’t focus on a list of requirements or years of experience, as they likely won't have that yet. Just like my personal story, you can ask them to speak to any experience they have with the technology they've used or even just personal dabbling or learning through a boot camp. Speaking of boot camps, they are a great avenue for finding amazing candidates. I know General Assembly and Le Wagon are excellent places to start your search, and these boot camps often host career days, giving you a chance to connect with candidates while also giving back to the software development community.
00:06:31.240 Once you have those applications in front of you, shortlist candidates based on enthusiasm and potential rather than just technical skills. Soft skills like communication are a huge plus when you’re training and mentoring someone, and you can spot candidates with strengths in these areas by how they represent themselves and by other experiences listed in their work history. Some of your candidates may be career changers who have spent time in another field and are now looking to get a foot in tech. Think carefully about what they bring with them; for instance, a scientist likely brings strong problem-solving and analytical skills, while someone with a marketing background likely has solid communication skills.
00:07:00.960 Keep in mind that while people can be taught technical skills, it's much harder to teach work ethic and attitude. Look out for these attributes above all else as you go through the interview process. I’ve also found some compelling research on diverse teams: teams with members who represent a target user are 144% more likely to say they understand the end user, addressing their issues and coming up with ideas to meet their needs. Diverse teams build better products.
00:07:30.560 Once you’ve considered all these elements and have a shortlist of your top candidates, you should conduct a phone screen. This is where you get to make your initial impression of these candidates. I usually tell them a bit about the company and what it would be like if they joined us, in addition to answering any questions they might have. What I'm looking for are their communication skills, whether their salary expectations match the role, and if they can work in Australia.
00:08:01.160 If things go well, I offer them a one-hour take-home test that’s relevant to our day-to-day work, rather than giving them a theoretical puzzle. Once they submit their code test, I always provide candidates with feedback. This means if they aren’t ultimately selected, they leave with something of value. They've spent their own time unpaid working on this code test, so it’s fair to give them feedback. I also invite our candidates to do a one-hour call to provide them with feedback on their solution, collaborating with them on their code.
00:08:33.760 This way, our team members can review the code, providing comments and asking questions in that one-hour interview. During this process, we’ll ask the candidate to enhance their submission as well. This helps ensure they didn't just use ChatGPT to submit their code test and also allows us to see how they collaborate with the team. I also conduct a behavioral interview. I won’t delve into detail here, but you can find plenty of advice online regarding this.
00:09:02.760 Once you’ve found your gem, it’s time to extend an offer. When they've accepted, enroll them in your Junior development program. This should be designed and envisioned before you hand them their job offer. That first impression of your company will come through onboarding, so a positive onboarding experience helps them feel comfortable in their new environment. This is critical as it enables them to gauge whether it’s safe to ask questions.
00:09:31.840 You'll want them to feel safe doing this, especially when they're in the middle of building something and really need to ask questions, rather than breaking something. During onboarding, ensure they have access to all the tools they need; for example, their laptop should be ready on day one. Plan induction sessions for them to meet people across the business, which introduces them to your company culture.
00:10:01.680 This time should be more than just paperwork and training videos; you're welcoming them to the team, and it should feel like that. Now, I don’t want to suggest it’ll be all sunshine and roses. A lot of what I’ve learned has been the hard way. When I worked at the University of Adelaide’s Apprentice program, a new junior came on board who was really eager. While the onboarding was relatively good, I was pulled in many directions and failed to spend enough time with this Junior.
00:10:31.760 As a result, they ended up spending a lot of time working on tasks I gave them, building complex technical solutions. I was impressed with their technical abilities, but if they had just had a little bit of guidance, they could have asked me questions and I could have been more available when they got stuck. They would have had a much better time. I've learned from that experience and ensure with my bosses that we allocate critical time in those first 3 to 6 months, which is essential for any new junior.
00:11:01.520 When assigning tasks to your Junior, balance the challenge level to keep them engaged without overwhelming them. There’s research that shows there's a sweet spot where training is neither too easy nor too hard, where learning progresses most quickly. I've found this to be true, and ensuring optimal learning takes place just beyond a person's current ability can result in a flow state.
00:11:32.240 This state is associated with high learning and accuracy. So how do I achieve this? Easy. I integrate pairing and targeted exercises that promote learning and help them to meld with the team. This is when you find their learning sweet spot and continually challenge them, probing their understanding through questions as you pair with them. It’s advantageous for both parties, and it allows you to see how effectively you’re communicating concepts.
00:12:01.680 If they quickly comprehend the material, great; but if not, it’s time to rethink how you're explaining it. This process benefits your seniors as well. Everyone involved with the junior must slow down, practice patience, and think carefully about why they do what they do. You have to communicate how to set up your environment and what tools are needed to complete tasks. Ensure you’re providing regular feedback along the way.
00:12:30.640 There’s a concept called psychological safety that was developed by Dr. Amy Edmonson from Harvard, which has become somewhat of a corporate buzzword these days but is critically transformative in building a culture. It was mentioned in a great engaging talk yesterday. The basic idea behind psychological safety is that you’re creating an environment where people feel safe to fail. When they don’t feel safe to fail, they will be stressed and less innovative. They may take fewer risks and possibly make mistakes because they feel they can't succeed perfectly every time.
00:13:00.360 This difference is essential; we’re not machines programming code—we are humans, and we should acknowledge the issues of self-confidence, egos, and performance as real challenges. Here’s a quote from a junior I interviewed for this talk. They spoke about how talking with other developers and seeing that even seniors get nervous from time to time helped them realize this is a shared experience and it’s okay to be wrong or nervous.
00:13:29.360 Here’s a quote from Robert: 'Psychological safety is the key to creating a workspace where people can act confidently without undue fear of being ridiculed, punished, or fired, and be humble enough to openly question what is believed or done.' For those interested, I have included some books on the screen that can help broaden your understanding of this valuable concept.
00:13:54.960 As you go through this process, you may encounter a common concern: in a remote environment, many believe we can't mentor people effectively. They think this type of interaction must happen in person in the office, side by side, for juniors to level up quickly. I stand here as living proof that this is absolutely not the case. It is entirely possible to mentor effectively in a remote setting. I've already shared numerous methods, especially pairing, which have worked well for me in this environment.
00:14:23.360 However, I encourage you to devise your own strategies. I’d like you to imagine various scenarios that help illustrate the good and the bad outcomes. Imagine you're a fly on the wall during a Google Meet between a junior and senior. The junior is sharing their screen, but it’s difficult for the senior to see. The senior gets frustrated. They say, 'Oh no, it’s all right,' as they share their own screen and show the junior how it’s done. The junior gets confused, stops asking questions, fearing they’ll slow down the senior who is in the flow, wanting to complete the task.
00:14:53.520 Now, imagine a different call using a tool designed for pairing, like Tuple. Here, the junior does all the typing. If the junior gets stuck, the senior patiently waits for them to figure it out without jumping to the answer. When the senior needs to look something up, they ask the junior to do it to teach them how to Google relevant information together. The senior notices something, quizzing the junior to help reinforce their thinking as they work through the process.
00:15:21.920 This alternative scenario is far more effective, and it’s one I prefer! I have additional tips: I highly recommend reaching out preemptively to ask if your juniors want to pair. They may think you’re busy and not make requests again. It's critical that you establish a safe learning environment early on. One-on-ones are also a crucial time for providing feedback. It’s important to give constructive feedback during these sessions, but if you are praising them, it’s best to do that in a public forum.
00:15:51.520 I also enjoy implementing a book club format where team members can suggest various topics to learn about that relate to their work. This creates opportunities for pairing sessions such as bi-weekly meetings to work on something different from daily tasks, focusing on general computer science topics or design patterns, whichever they wish to explore.
00:16:20.280 As we wrap up our time together, I want to address a common concern when hiring juniors. Will we invest all this time in them only for them to leave and go to another company, forcing us to start over again? My answer to that question is this: if you create an environment where people feel invested, and they can clearly see a trajectory towards advancement in their career, they're much less likely to jump from job to job.
00:16:49.360 If you implement the strategies we've discussed today and do them well, these juniors will quickly recognize that they have a rare situation working for you. They'll see their peers at other companies stressed out or feeling neglected, and they'll appreciate the value in their position with you. By truly investing in your juniors, you create a workplace where they enjoy their role and the relationships they build.
00:17:18.080 The fact that you hire juniors and how you treat them will serve as your competitive advantage. You won’t just attract top talent and garner a reputation as an excellent company to work for; this diversity, energy, and vitality will also invigorate your team and their work. I hope this information has been helpful, and remember to give your Junior gems a chance.
Explore all talks recorded at RubyConf AU 2024
+14