The Alpha Omega Summer Mentorship Program recently wrapped up and was a resounding success. The program connected senior software security engineers with newcomers to open source, software development, and security research. Entry-level contributors had the opportunity to help accelerate Omega’s mission under the guidance of experienced mentors. Get a behind-the-scenes look at how the program unfolded from both the mentees and mentors.
From the Mentor’s Perspective
As a mentor, Yesenia Yser, shares her experience on the Alpha-Omega blog. She explains everything from ideation to execution. Her high-level overview explains how the engineering program was structured to ensure the mentee flows through a software development lifecycle with a test-driven approach to the design. Each phase ended with a demo presentation to Alpha-Omega stakeholders.
The first six weeks encompassed a mentee getting comfortable and onboarded to the project and technical solution, finalizing the software requirements document to include requirements, acceptance criteria, future improvements, a documented list of bug patches, test cases, and architectural diagrams. For the second half of the mentorship, they implemented the SRD requirements, explored additional scope changes, and participated in Hacker Summer Camp.
During the 12-week program, the mentees had multiple opportunities to improve on their career and personal development. The mentees were offered 30 minutes a week primarily focused on their careers. During this time, discussions were had on career development, tips and tricks for their resume, LinkedIn and Github pages, and how to approach job hunting.
Read her post for further details on the specific technical solution goals and how the program was structured.
From the Mentees’ Perspective
2023 Alpha-Omega Summer Mentorship Program mentees included Saumya Navani, Glenda Garcia, Aaron Blume, and Andres Orbe. They shared their words of wisdom for future mentees:
Embrace a growth mindset by approaching the mentorship program with an open mind and a willingness to learn.
Be receptive to feedback and view challenges as opportunities for growth. Actively seek guidance by not hesitating to ask questions and seek valuable insights from your mentor, engaging in meaningful discussions, and leveraging their experiences to enhance your own learning. Finally, reflect and document your journey by regularly documenting your progress, key learnings, achievements, and challenges. This documentation will serve as a valuable resource for personal reflection and future reference, enhancing the overall mentorship experience.
“Premature Optimization is the root of all evil” – Donald Knuth.
Upon losing 38+ hours worth of work, I decided then and there to design with resilience in mind. In an attempt to architect a program that was slightly optimized to be faster, I decided to omit saving critical files to a shortlist until after all the packages completed their execution. An error within the volume during the mounting of the container was enough to wipe all the data that had been generated. With new resilience mechanisms, I would have still lost the results, but the critical files would have been saved to a shortlist (and would have saved me from the pain of that massive blunder.)
In all honesty, if an opportunity interests you, then jump on it. Don’t let it slip away even if you do not think you have every qualification for it.
I started this program with limited-to-no experience with abstract syntax trees, yet I wanted to partake in this mentorship, because I had an excellent experience in a formal languages class that I took in college. I knew that this position would be perfectly suited to my interests, despite being relatively new to the concept. So, as I said before, if something interests you, apply yourself to dive deeper into that interest and you might end up finding a new opportunity or people to guide you throughout your journey.
“Red, Green, Refactor.” Open-source code can take a long time to understand and work on, but there is a trick to ‘fast-track’ the onboarding process.
I started this program with next to no experience in open source development and initially found it difficult to start working on my implementation without spending hours trying to understand how recipes in OpenRewrite worked. This is when my mentor, Jonathan, introduced me to the concept of Test Driven Development’s three essential phases: Red, Green, Refactor. Simply put, this method starts with writing test cases that we know will fail, then adding the least amount of functionality to make these unit tests pass. The last step would be to refactor this implementation and build in more complex functionality. This allowed me to understand exactly how the recipe worked and become comfortable with the codebase. Thus, Red, Green, Refactor was definitely one of the most helpful tips I could have gotten during this mentorship.
Read more about their experiences discovering the mentorship experience and tasks they completed on the Alpha-Omega blog.
About the Linux Foundation Mentorship Program
If you are interested in being a mentee for an open source project, check out the The Linux Foundation Mentorship Program for open and upcoming applications for open source mentorships.