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.