My Experience Contributing to Ceph During Outreachy Contribution Phase: A Month of Learning and Growth
As an aspiring software engineer, I was thrilled to have the opportunity to participate in the Outreachy contribution phase. Outreachy is a program that provides internships for underrepresented groups in tech. I used my first 48 hours to search through all the communities and their projects to find the one that interests me. I found projects in communities like Ceph, ODK, OpenStack, and Firefox interesting. My goal when searching for a project to contribute to was to learn more about open-source software development, contribute to projects that I find interesting, and gain some valuable experience.
Why did I choose to contribute to Ceph?
Ceph is an open-source community with a vibrant community of developers, users, and contributors. Ceph is also a distributed storage system. I'm looking for an opportunity to dive into a project related to storage technologies because of its complexity and challenges, making Ceph the best community to contribute to. Also, the internship's primary task, "Making Teuthology Friendly" (Teuthology is Ceph testing framework), will allow me to work on the Web user interface where I could demonstrate my frontend skills.
Contributing to Ceph
During my contribution, I was able to work on a wide range of tasks that helped me learn more about Ceph and Teuthology. My first task helped me to set up my development environment using Docker containers which were quite challenging. It also helps me familiarize myself with the Teuthology API.
From there, I was able to move to my second task, which was to write a unit test for some of the API endpoints using the TestClient library from fast-API, which was able to pass the test in the development environment successfully. I also enjoyed using Figma to create a Mockup design to schedule and kill jobs for Pulpito(a web-based dashboard for Ceph test runs and results).
Learning and Growth
My contribution to Ceph(Teuthology) was a fantastic learning experience. I gained a deeper understanding of software development, version control, and testing methodologies. I also learned how signing off my git commit can help to demonstrate my commitment and also help to establish trust with other contributors, maintainers, and users of the project, provides attribution, and makes it easier to track changes to the codebase.
I also have the opportunity to work with a diverse group of developers worldwide, each with unique backgrounds and perspectives. Throughout my contribution, I received valuable feedback and help from my mentors, which helped me grow as a developer. It felt incredibly satisfying to imagine myself making a valuable impact at a large organization like Ceph.
Challenges and Solutions
While contributing, one of my biggest challenges was setting up the Teuthology in my local environment using Docker, which was quite complex. However, I overcame this challenge by taking advantage of the resources available, including online documentation and the expertise of my mentors.
Impact on Career Goals
My contribution phase with Ceph was a significant step towards achieving my career goals. It gave me valuable experience in open-source software development, which is becoming increasingly important in the tech industry. It also helped me develop my technical skills and professional network, which will be essential in my future career.
Conclusion
In conclusion, my contribution to Ceph through Outreachy was an incredible experience that allowed me to contribute to an exciting open-source project and grow as a developer. I look forward to contributing more to more significant projects in the community and using what I have learned in my future endeavors. I am grateful to everyone who made this opportunity possible, and a big shout out to my mentors, Aishwarya Mathuria, Kamoltat Sirivadhna, and Zack Cerza.
Subscribe to my newsletter
Read articles from Dorcas Bamisile directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Dorcas Bamisile
Dorcas Bamisile
Software Engineer