My Experience as a Remote Volunteer Software Engineer at Sustainable Education Foundation 🌍

Hello everyone,

This article shares my experience as a remote volunteer software engineer at the Sustainable Education Foundation (SEF) over the past six months. When I joined SEF, I had just started my second year as a Software Engineering undergraduate at the Open University of Sri Lanka. I had theoretical knowledge and had created a few applications using different technologies like Go, ReactJS, and NodeJS. As undergraduates, we study theoretical aspects of software engineering, but practical experience is essential to gain a deeper understanding of the subject.

SteveJobs

About the Organization

SEF

You can learn more about SEF in the resources section at the end of this article.

Finding SEF and Getting Started 🔍

As an open-source enthusiast, I was looking for a project to contribute to. I found SEF because I had previously applied as a mentee for their ScholarX mentoring program. I explored their website, reviewed the people behind the project, and read their handbook to understand how to get involved as a volunteer. The handbook was well-maintained and provided all the necessary information for new volunteers. After a bit of research, I decided to get involved and cloned their ScholarX repository, which was under active development.

First Contributions 👨‍💻

My first GitHub pull request (PR) was a small fix in the ScholarX frontend repository's README file, which added instructions on setting up the frontend repo in a local environment. I identified the issue, opened a PR, and it was merged, ensuring that future newcomers wouldn't face the same problem.

First PR (opens in a new tab)

My second contribution was particularly interesting for me. At that time, I was learning Docker and containerization. I decided to Dockerize the ScholarX backend codebase, which uses a PostgreSQL database. I opened a PR after Dockerizing it, and it was accepted. I was thrilled to start contributing as a software developer.

Second PR (opens in a new tab)

Progressing in My Role 🚀

My journey progressed from fixing minor issues to becoming a member of the main engineering team. I consistently joined weekly standup meetings and had the opportunity to share my thoughts with the team.

An exciting part of my journey was developing a new feature for sending bulk emails to mentors and mentees through the ScholarX platform. I took on this feature, even though I had no prior experience with production-level coding. I was learning the Go programming language at the time, and the team was okay with me developing the email-client API using Go. I successfully implemented the API, and it is working well. I also created a simple UI for it.

Email-Client-API (opens in a new tab)

Lessons Learned 🧠

Through this experience, I have learned significantly more compared to when I was just a Software Engineering undergraduate. Here are the key lessons and insights I gained:

Overall, this experience has been transformative, providing me with practical knowledge, professional skills, and a deeper understanding of the software engineering field. I am excited to continue this journey and look forward to the opportunities and challenges that lie ahead.

Tips for Aspiring Open-Source Contributors 💡
Conclusion 🌟

This is my experience so far, and I know the future holds even more opportunities for growth. Volunteering at SEF has been incredibly rewarding, allowing me to contribute to meaningful projects while growing as a software engineer. I look forward to sharing more in my next article and continuing this journey of learning and contributing.

Please check out the resources below if you're interested. See you in my next article.

Resources 📚

The Imitation Game