Another successful Outreachy internship round at OISF ended the first week of March. We have already shared our views on the importance of supporting an initiative like Outreachy – as well as how to apply – so now I want to share about the awesome folks we met and how they helped us make Suricata better.
This time, we were honored to welcome Modupe Falodun from Nigeria, and Sam Muhammed, from Egypt (how cool is that?). They have different backgrounds and professional experiences but had in common that they had not worked with Rust or contributed to Suricata before. From the very beginning, both of them understood how much we value community and cooperation and how that could make a difference on their journeys which is great because it allows us to build a career path and life-long friendships.
While in the past we have had projects for our Python tools, last round, we decided to take the opportunity to work towards our goal of having more of our codebase in Rust. So we planned projects for adding a new feature to our Rust parsers (“Expose PDU Parser to Suricata Engine”) and for cleaning up C unit tests that were too complex to be true unit tests (“Suricata tests! Clean up, simplify, increase coverage”). We also aimed to offer projects with which the interns could collaborate and help each other more – supporting more fruitful journeys.
Both Modupe and Sam had several PRs merged during their internships – which is no small feat, considering how thorough the reviewing process & CI checks for Suricata and Suricata-Verify patches can be. Looking into line diff contributions:
Contributions to our Suricata repository:
Contributions to our Suricata-Verify repo:
These stats also reflect the nature of each project while Sam got to dive deep into NFS Rust parsers, in the process of studying the parser and writing unit tests for those before adding Frame support to it. Modupe was going over a series of different files, figuring out which tests could be scraped out and how to convert their expected behavior to Suricata-Verify tests effectively. She also helped us clean up more than 10 files (already merged) and has more work under review. Those became several S-V tests, covering an assortment of rule keywords.
Meanwhile, because Modupe was focused on the same parser, Sam was able to find bugs in our NFS parser – uncovered messages between different NFS versions – leading to improvements to our code that were not initially predicted in her internship project.
Bonus outcome: Outreachy webinar – a challenge coming to stay?
When I was an intern, OISF invited Tharushi Jayasekara and me to present a webinar about our contributions. It was a nice opportunity to think of what we were doing from a different angle — giving us a chance to consolidate our learning on Suricata and our projects while also offering something to a greater audience. Not just those who are already our community but also those who want to learn how they can get involved. So this round, we did the same invitation to Modupe and Sam, and the result is a video that offers content to potential new members and to those who have started contributing but may not yet have done things like adding a Suricata-Verify test or don’t know how to not write a unit test.
The webinar preparation phase was also the perfect time for discussing soft skills, showing what a safe environment for growing and learning can look like, and introducing them to other important women from our community during rehearsal calls. The result was a successful, fun, and engaging webinar showcasing what they were doing and their ability to communicate to an audience. We amplified it among folks new to Suricata, focusing on steps for adding features and improving our QA.
Where can we improve?
It is always a learning process, not just for those who join: also for us, who are trying to figure out how to explain the projects from the perspective of a newcomer, and to have projects, task tickets, aiding materials, and all that as accessible as possible. From the contribution phase, we learned that Rust (and C?) are languages that won’t bring that many contributors, yet – the difference from when we listed Python projects was quite evident. We don’t know yet how to reduce resistance around that, so if you have had a positive experience with this, we would love to know!
We noticed that we underestimated the onboarding phase and the materials needed to ease this moment when the projects started. In hindsight, we realized that we could have broken down the project tickets into smaller tasks to help with their sense of accomplishment. And that we could also have the first project tasks better discussed and elaborated with the interns, as that is the moment when absolutely everything is new. Hence, the chances of being overwhelmed are higher.
As part of our farewell moments with the OISF team, we invited Modupe and Sam to have an informal interview with our President and Executive Director, Dr. Kelley Misata. Because we understand the importance of representation and role models, we imagined that having a moment to chat horizontally with a woman who has managed to reach a leadership position at a worldwide renowned open-source network monitoring tool team is rather special.
They seized the opportunity to learn from the source how did she get to be part of OISF; what inspires her; how did she start her InfoSec journey; how could they make the most out of the journey they had with us – to conquer the world ahead of them, now.
And we, Women of Suricata, made sure to share with them that they are now part of this community – not just the meerkats family, but the Outreachy network and this ever-caring group of folks who will be watching their backs out there. Watching them grow in their beautiful and unique potentials, and making noise if anyone so much as thinks they can mess up with them.
We are committed to building safer networks. And that goes beyond the wire, which speaks of the bridges we build and the hands we hold worldwide—making us all stronger, supporting each other so they can shine.
Thank you, Modupe and Sam! We highly appreciate your contributions to Suricata, Suritaca-verify, and learning materials for other community members. And we’ll keep an eye on you. 🙂
Check their work on GitHub:
Learn how to Get Started contributing to Suricata
Support our mission: https://oisf.net/
Join our Discord server: discord.gg/t3rV2x7MrG