It was not an easy task, but my pull request https://github.com/exercism/xjava/pull/115 was accepted https://github.com/exercism/xjava/commit/61b8773cb380e77ef77cdbb9ebfa9846c17b2c71 and I’m glad I did it!
While attending self.conference in May, I heard a talk from Katrina Owen about lessons learned as the creator of a popular open source project. At the time, I was looking at how to get involved in a project, but overall I found that getting over the “getting started hump” was extremely overwhelming.
Most open source projects that I’ve come across are huge and it felt like I needed 20 years of experience just to be competent enough to get involved. Katrina spoke about www.exercism.io which I’d heard of, but hadn’t looked into the contribution process.
As she spoke, I took some time to check out the architecture for the project and contribution guidelines. Although her talk was on ways that she wanted to improve the contribution process, it already seemed great to me! I found that each language track was maintained independently and integrated by an API which meant, I never had to worry about learning languages and tools that I’d never worked with before just to get started. I saw that I’d only need to setup the API and the Java repos, get them talking, and I could start contributing.
Coincidentally, I was able to meet Katrina and talk to her after her keynote when she came to sit at the same table. Speaking with her really solidified my decision to take the dive and try submitting my first ever pull request to exercism.io.
It was not easy to get started since the API was build in Ruby and I have limited experience in the language, plus, of course there were tools being used that I’d never seen before. However, I understood enough to setup my environment and work through the issues I faced along the way. That was truly empowering.
Once I got my code submitted, there was a learning curve with good old Git. I learned to squash commits and rebase, partially on my own, but mostly by reaching out to Katrina and one of the Java track maintainers when I hit a wall. They were excellent at responding with positivity and actionable recommendations.
My contribution implemented an exercise in the Java track which consisted of adding the exercise, incorporating it in the build, writing tests for the exercise, and writing a sample solution to run against the tests. A single exercise can seem so simple, but a lot of work went into the execution.
In the end, I learned so much and I know it may be a bit before I can submit another pull request, but I will definitely be back! Thanks to the exercism.io team for being so amazing to a noob in open source.