Talks

Investing in the Future: Unlocking the Potential of Junior Developers

Investing in the Future: Unlocking the Potential of Junior Developers

by Hana Harencarova

The video titled 'Investing in the Future: Unlocking the Potential of Junior Developers,' presented by Hana Harencarova at Ruby Day 2023, explores the significance of nurturing junior developers in the tech industry. As companies face difficulties in hiring senior developers, Hana argues that investing in junior talent can be a viable solution. The talk emphasizes three key points regarding the empowerment of junior developers:

  • Kindness and Support: Hana discusses the importance of fostering a supportive environment in which new developers feel welcome to ask questions and seek help. She shares her own experience at GitHub, where various colleagues reached out to assist her, which helped her integrate smoothly into the team.
  • Hands-On Experience: The speaker highlights the essential role of practical experience in the onboarding process. She underscores the practice at GitHub of encouraging new developers to contribute code early in their journey, emphasizing 'good first issues' to provide manageable entry points.
  • Clear Path Forward: Clarity in expectations and opportunities for growth is crucial. Hana advocates for regular check-ins and encouraging juniors to express their interests, enabling them to take ownership of their development journey.

Hana also shares anecdotes from her journey, including her transition from teaching paragliding to web development and her initiatives to elevate others in the coding community, such as 'Moms Learn to Code.'

In conclusion, the talk reinforces the notions that kindness, practical experience, and clear communication are vital to cultivating skilled junior developers who can contribute significantly to their teams and the tech industry as a whole. Attendees are encouraged to reflect on their mentoring styles and consider how they can make their environments more inclusive and supportive for new talent in the industry.

00:00:06.399 Many companies are hiring, and you probably know the struggle to find senior developers and great talent. However, there are alternative solutions, one of which is to bring in junior developers and teach them your ways. It's important to get them up to speed in your company.
00:00:19.680 Let me share a little about my background. My formal education is in judgment and decision-making psychology, and I was working on my PhD when I learned R, which rekindled my interest in programming, as R is a statistics language quite similar to programming languages.
00:00:41.420 After completing my PhD, I spent about five years teaching paragliding. When my daughter was born, I hoped to continue my activities uninterrupted, thinking that once she was three months old, I could take her along on the hills as if nothing had changed. However, I soon realized this was not the case. While looking for activities to do with her, I stumbled upon an initiative called Ruby Moners, which is a free Ruby course for women. That’s where I had my first contact with Ruby and its fantastic community.
00:01:24.400 As I decided I didn't want to teach paragliding while constantly tending to my child, I sought something I could do from home that was also enjoyable for me. I started offering web development services to small businesses, learning as I went along. While searching for adult courses that allowed me to bring my daughter along, I found that there were hardly any options available. Instead, many offered activities for kids, such as baby singing and movement classes, but none for new parents seeking to educate themselves.
00:02:13.080 To fill this gap, I launched 'Moms Learn to Code,' a program teaching web development to parents, allowing them to bring their babies with them. Impressively, about 30 to 50% of participants did exactly that. Later, when my son was born, I continued teaching Ruby on Rails and took on small projects as a freelance developer, mainly using WordPress.
00:02:48.879 Eventually, I aimed to focus more on Ruby and Rails. When an opportunity arose to work as a contractor for a sizable company as a Rails developer, I seized it and worked there for a year. I was fortunate enough to apply to GitHub, where I currently work, and this journey has brought me here to Ruby Day.
00:03:20.000 Now, let's dive into the main content of the talk. First, I want to clarify what we will not be discussing today. We won't focus on the hiring phase, such as how to make your job advertisements inclusive or how to articulate what you're truly looking for to attract developers, including those from minority backgrounds. We also won't explore how to minimize hiring risks related to onboarding new developers.
00:03:58.680 However, I hope that you take away three key points from this talk: the power of kindness and support for your new and existing developers, the significant value of hands-on experience and its impact on professional growth, and finally, how to look toward the future for those new hires.
00:05:21.080 I joined GitHub in March 2020 and have been a part of the code scanning team since then. In this talk, I'm sharing insights from my experiences as both a new developer and as an educator at Ruby Moners, integrating my psychology background. I encourage you to pick what resonates most with you from this presentation.
00:05:50.840 First, let’s discuss how kindness and support can empower individuals to open their minds, ask questions, and learn more efficiently. When I came to GitHub, something extraordinary happened after my general onboarding ended.
00:06:27.680 Random colleagues reached out to me with warm welcomes, introducing themselves and offering to answer any of my questions. They suggested setting up chats, which I did. Within just a few weeks, I became acquainted with many people, which emphasized the importance of establishing connections, especially in a remote work environment.
00:07:06.320 In many companies, a new developer is paired with a single mentor for guidance, which can be effective but also burdensome. Relying solely on one mentor for answers can lead to inefficiencies and missed perspectives. At GitHub, I found various individuals willing to assist me, which eased my transition.
00:08:04.560 For instance, I had different onboarding buddies—one for general guidance and another for technical support—who helped me familiarize myself with our codebase and observability tools. Furthermore, we established a channel to ask questions openly, allowing different team members to pitch in to help where they could, fostering a supportive environment.
00:09:49.280 This approach not only makes asking for help easier, but it also encourages others with similar queries to seek assistance. So, don’t hesitate to share your questions with the team, as it often turns out that many share the same issues.
00:10:44.759 Often, many believe that hiring junior developers is more complicated in a remote setup. From my perspective, the real privilege of working remotely is that you can manage your calendar purposefully. You can carve out specific times to focus on your work, escaping interruptions from casual office conversations.
00:11:38.560 Additionally, spontaneous meetings can occur; it's perfectly acceptable to ask a colleague if they have time to discuss something. This flexibility can be immensely beneficial for onboarding new developers.
00:12:05.480 Now, let's check in with you. Can those who feel like new developers in their companies raise their hands? Not too many, right? And how about those who mentor others or feel like seniors in their companies? Interesting mix, indeed.
00:12:51.680 If there are any company owners, technical leaders, or architects present, could you also raise your hands? Good to see you! For those of you who influence company culture: What can you do to make the onboarding experience better and foster a culture of trust and kindness?
00:13:43.760 It's crucial to allocate time for mentoring and coaching. Developers should understand that part of a senior role involves helping to unblock newer members of the team. If each developer has their workload and is solely responsible for onboarding, it can create challenges.
00:14:27.520 Seniors should model the behavior of asking questions and admitting that they do not know everything. This normalizes uncertainty among juniors, encouraging them to ask questions and seek help too.
00:15:28.880 Encourage juniors to find a balance between seeking help and working independently. Learning to work through challenges is essential. Sometimes guiding them with the right questions can lead to their self-discovery.
00:15:55.360 Make it apparent that learning is a collaborative process. As a new developer, it's also important for you to reach out and initiate contact with your team members, especially in a remote setting.
00:16:29.600 In one instance, a colleague reached out to me saying, "I really want you to succeed, and I'm here for you if you need support." Such acknowledgment was powerful and motivating.
00:17:29.959 The second aspect I'd like to highlight is the value of hands-on experience. At GitHub, we encourage our new developers to ship code quite early—initially, it was on the first day, but now we aim for the first week.
00:17:48.680 The focus is on actively involving new employees with real code from the beginning. This necessitates constant, small submissions to keep the momentum going.
00:18:33.400 We also identify and label 'good first issues'—small, manageable tasks or bug fixes that developers can address without getting overwhelmed. When newcomers join our team, often they are assigned these initial tasks, thus easing their onboarding process.
00:19:40.080 One practice I particularly appreciate is pairing sessions, where junior developers can partner with more experienced ones. This doesn't just facilitate learning coding skills but also sharing methodologies, problem-solving strategies, searching for documentation, and passing on shortcuts and tips.
00:20:56.720 When confronted with a new codebase, it's crucial to help developers focus on manageable tasks first, facilitating their comfort before diving deeper into complex concepts or codebases.
00:22:07.520 Pull requests can also serve as educational tools. Encourage juniors to review PRs; this way, they can learn from how seasoned developers approach problems, document their work, and express their reasoning.
00:23:24.400 Ensure you provide constructive feedback on their PRs, clearly differentiate between necessary changes and potential improvements, reinforcing that they should take ownership of the final decisions.
00:24:30.760 Finally, don’t overlook the importance of walkthroughs when new parts of the code are being introduced. This collaborative reviewing process is beneficial for understanding and clarifying any doubts.
00:25:25.720 Collaboration extends beyond coding; understand that your new developers, depending on their backgrounds, may need different types of guidance based on their previous experiences.
00:26:15.840 While coaching them, ensure to enhance their independence and ability to handle their development path by suggesting opportunities aligned with their interests.
00:27:08.160 During one-on-ones, ask about challenges and aspirations. If the company sets clear expectations for all development levels, it assists everyone better themselves accordingly.
00:28:06.600 My former manager idolized the concept of 'Choose Your Own Adventure.' While teams have priorities, encouraging developers to express their interests in projects can be very empowering.
00:28:57.959 To summarize, ensure clarity about expectations for developers at different levels and routinely check in on their progress, feelings, and needs.
00:29:40.600 As a senior colleague, suggest suitable opportunities, keeping an eye out for tasks that would foster skill development, and grant them the stage to shine, allowing them to present their achievements.
00:30:42.400 As a new developer, remain proactive by preparing for feedback sessions and keeping track of your progress. Create a 'brag document' to remind yourself of your accomplishments and express your desire to explore new tasks.
00:31:24.320 In conclusion, I encourage you to remember three key themes: the power of kindness and support, the significant value of hands-on experience, and having a clear path forward.
00:31:42.160 Thank you for listening, and I invite you to stay in touch. I also have a question: what would be the one thing you would try differently next time?
00:32:03.240 Where are your phones? This QR code leads to a Google Form allowing you to share your thoughts.
00:32:26.000 Now, let's open the floor for any questions.