Another Year, Another Hacktoberfest

A photo of a road cutting through fall scenery with the title of the article overlaid.

It’s 2025, and it’s already October! By the time you’re reading this, we’ll already be a third of the way through Hacktoberfest 2025. Regardless, I’d figured I’d make the pitch to get some help with our longstanding Sample Programs project.

Table of Contents

My History With Hacktoberfest

If you’ve been involved in open-source software in any capacity, then you’re probably familiar with Hacktoberfest. It’s an event that happens every October, which encourages new developers to contribute to open-source software.

I don’t know the exact year I got into Hacktoberfest, but it was probably pretty close to the same year that I started the Hello World in Every Language challenge. That challenge then morphed into the Sample Programs repo, which I help maintain these days.

If this is starting to sound like I’m pivoting into a plea for help with the repo, you’d be right, but I’ll save that for later in this article! For now, I just want to reminisce on my history with the event.

For instance, did you know you used to be able to get a t-shirt and some swag for making four pull requests in the month of October? That incentive has been gone for a few years, but I still have a few of those t-shirts.

A photo of the Hacktoberfest T-Shirts from 2018 to 2021
Grabbed a quick photo of the four Hacktoberfest shirts I have from 2018 to 2021. I think I also have the shirt from 2022, but I gave it to my wife on account of it being a bit too snug. Nice shirt though!

In the last few years, pull requests were rewarded instead with digital pins through Holopin. Likewise, I think they donated trees in your name, which is at least cooler to me than a digital pin.

However, it seems like t-shirts are back, at least for the first 10,000 pull requests. Perhaps that explains the jump from four to six pull requests this year. I’m suddenly inspired again to write some code!

Here’s How You Can Help

There is a never-ending list of work in the Sample Programs repo. At the moment of writing this, the repo currently has 156 languages with the potential for 38 programs each. Naturally, each new language creates a large need for contributors like yourself.

A quick back of the napkin calculation shows that the repo has a capacity for 5,928 programs, of which 1,275 are already complete. As you can imagine, most of these programs are for popular languages like Java, Python, C, and JavaScript. Less popular languages tend to have a lot less support—with a few notable exceptions like Algol68, Commodore Basic, Euphoria, Beef, Awk, Mathematica, and M4. You can see the breakdown here.

Of course, even if your favorite language is already complete, you’re welcome to help document it. Almost no one has gone through the effort of documenting existing code snippets. You’d be doing us a huge favor.

Personally, I’m looking to dabble in some Kotlin this month. I’ve already submitted a pull request for Insertion Sort, and I plan to adapt that same solution for the remaining sorting algorithms. If I manage to get ktlint going on my computer, I’m also planning to submit a pull request addressing the style of the existing snippets.

Pro Tips for Easy Submission

If you want to help us out, I would recommend reading the contributing document first. As a quick overview, here’s my workflow:

  1. Fork the repo
  2. Create or claim a separate issue for each submission you plan to make
  3. Create a separate branch on your repo for each submission you plan to make
  4. Implement your code in alignment with what is described on the project page (e.g., Baklava Project Page)
    • Note that there is a list of test cases your snippet needs to pass, of which often include precise error messages for bad input
    • Don’t be afraid to look at examples listed on each project page
    • You can run your code using glotter2 as described in the contributing doc
    • Make sure you name your file correctly (e.g., keep casing consistent with other snippets, follow naming convention on project page)
  5. Create a separate pull request for each submission you plan to make

After that, if it’s your first contribution, we will likely need to approve the automated testing process. Once the tests pass, we will merge your pull request. If the tests do not pass, you will be expected to make the appropriate changes to address any issues.

Once you’ve done it once, it’s pretty straightforward. We just have to be very explicit about the process because we’re a very small team. We don’t have a ton of time to help folks through issues.

Happy Hacktoberfest 2025

With all that out of the way, I’m going to get back to work! Hopefully, this was helpful. Feel free to reach out if you ever need anything. We are pretty active in the Discord, so you can get a hold of anyone on the team there.

Since you’re here, you might be interested in some of the history of the repo:

Otherwise, thanks for checking in! If coding and documentation are not for you, but you’d like to support the site, check out my list of ways to grow the site. If not, no worries! I’m sure you’ll be back later.

Jeremy Grifski

Jeremy grew up in a small town where he enjoyed playing soccer and video games, practicing taekwondo, and trading Pokémon cards. Once out of the nest, he pursued a Bachelors in Computer Engineering with a minor in Game Design. After college, he spent about two years writing software for a major engineering company. Then, he earned a master's in Computer Science and Engineering. Most recently, he earned a PhD in Engineering Education and now works as a Lecturer. In his spare time, Jeremy enjoys spending time with his wife and kid, playing Overwatch 2, Lethal Company, and Baldur's Gate 3, reading manga, watching Penguins hockey, and traveling the world.

Recent Meta Posts