Here is my experience contributing to open source during the last few months.
I consider myself someone who is good at Web Development in general. I didn't even go near projects that are core tech or ML libraries. So, I think I can talk about the OSS scene in these low-hanging repositories where the bar to get your PR merged is relatively easy.
The primary reason I was contributing to OSS is to get a feel of engineering and coding at a normal pace. No agents, no AI reviews, no deadlines. Just me working on tech I find cool with my night lamp on and my headphones on. Think about it, man. You're talking to someone on the other side of the world who shares the same interests as you! You are both nerds working on what you enjoy!!!
How I Found Projects
Next up, it's just how OSS contributions work.
Scroll GitHub in your free time. Follow cool engineers on GitHub. Do not follow tech influencers on Instagram. This way you get to know what senior engineers are working on, whether they're contributing to interesting projects, and what is actually happening in the ecosystem.
Just doomscroll GitHub instead of Instagram, and you will eventually land on some project that you want to work on. Explore the repos, check out the projects, see what piques your interest, and start contributing. Start communicating with the maintainers, be curious, and ask good questions.
Don't ask stuff you can find the answer to by digging a little deeper.
The GSoC Part
I contributed to 2-3 orgs with minor issues and fixes before finalizing my orgs for GSoC. Some orgs had a tech stack I didn't like, some had workflows I didn't vibe with. I kept exploring until I found an org I liked.
I only started seriously contributing after the selected orgs were revealed, and I knew I had to be strategic with selecting an organization to contribute to.
This was mainly because I didn't want to compete with folks pushing 5 PRs a day. So I ended up choosing only the new orgs.
The reason for this is that people are already working hard on the well-established orgs for months before the selected orgs are announced. If you start after the selected orgs are released, people already have a deeper understanding of the codebase and have established relationships with the maintainers.
New orgs aren't easy either. Everyone kinda knows this already. It's just the approach that made the most sense for me as a working professional.
PS: I had a ton of help regarding this from a friend.
I also vibe-coded a tool to help me find repositories with the most activity and active maintainers. It helped me scope projects and avoid places where a lot of spam was happening. Check it out here: https://repo-buzz.vercel.app/
AI and OSS
Let's address the elephant in the room: AI.
I didn't use much AI while contributing because I was already using a lot of AI products at work. I just wanted to code by hand when contributing to OSS and actually feel alive, sort of. I don't know if you can relate to this lol.
So the PRs and most of the coding I did on my own.
I'm not saying you can't use AI, but you have to be responsible for the code you push. Any slop that you push is just making OSS worse for everyone.
That said, there are tools that you should absolutely use during the overall GSoC process. Proposal creation is a great example.
You can:
- ideate
- scan the code with tools to understand the codebase and architecture
- identify ideas to improve it
- use ChatGPT
- use Gemini
- create diagrams with Mermaid and add them to the proposal
Another thing I've noticed: please don't use AI to communicate with others when you're tagging a mentor for review.
Just say "Please review."
Two words. Enough.
Don't type an AI-generated paragraph explaining everything you've done. Keep your PR descriptions only as detailed as they've asked. Don't elaborate much beyond that with AI.
It is fine to have a few mistakes in your communication. You're still learning. English might not be your first language. For most of us, it isn't.
It's good to have correct English and improve over time, but not every message needs to be an AI-generated response that you copy and paste.
A Small Rant About Behaviour in OSS
I would also like to rant about some behaviour I've noticed in the open source community.
Here are some things that annoy me:
- Not reading the docs properly.
- Recreating issues that already exist.
- Not reading the CONTRIBUTING.md file.
- Asking questions that can be answered with one Google search or ChatGPT prompt.
- Submitting AI-generated PRs without even trying to set up the codebase.
- Bombarding a repo with PRs instead of waiting for feedback on one first.
- Forgetting that maintainers aren't machines.
- Not taking responsibility for the code you write.
https://opensource.guide/how-to-contribute/ Check this out for some good practices that everyone should follow.
There are a few more best practices that people should adhere to, but in summary:
Just be respectful and empathetic. That will get you a long way in the OSS community.
Closing Thoughts
This blog is turning into more of a rant now, so I think I'll stop.
Feel free to mail me if you have any questions regarding GSoC or open source in general. I still have a lot to learn, and that's exactly what I'm hoping to do through this.
Cheers!
