RyJo

A few months ago, I made my first-ever open source contribution.

This admission may surprise, even shock, as I've worked in industry across a variety of stacks for over a decade.

While it's true my employers have been small and mid-size companies with a penchant for using rather than creating open source software, the real reason I've made it so far without contributing is simple...

I never tried.

Indeed, the massive and welcoming ecosystem for open source software today leaves little excuse to not take part. As noted on Github's blog:

"In 2022 alone, developers started 52 million new open source projects on GitHub—and developers across GitHub made more than 413 million contributions to open source projects."

This is not to say that issues of project scarcity, gatekeeping, or other barriers to entry don't exist, but the simple fact is that a vast array of opportunities exists for developers in many domains and of many different skill levels.

Which brings me to...

MonkeyType

Monkeytype was created in 2020 as a single-developer passion project to make a minimalist, customizable online typing test. Since then it has grown rapidly, with 365 million tests taken, an active Discord server, and hundreds of supporters and contributors.

monkeytype app screenshot

I've been a big fan of Monkeytype for my typing practice, with highest speeds to date being 135wpm over 15 seconds and 117wpm over 60 seconds (100% accuracy). When I saw that Monkeytype is open-source on Github, I saw a perfect opportunity to contribute.

In particular, I observed that the subproject Fingermap, a keyboard finger map editor, exhibited multiple issues I would happily take on, including:

fingermap old screenshot

I started by joining the Monkeytype Discord, creating an issue on the repo, forking, and working up a draft solution for keypress selection. I was updating this code as a fun exercise, so I wasn't concerned with negotiating the changes in advance with the project owner Miodec. I hypothesized that providing a hosted demo of the updates would offer a strong introduction and elicit a faster response.

discord message screenshot

The response was prompt and positive!

Miodec expressed interest in the update and suggested additional changes. Over the course of a week and with numerous iterations, updates addressing all items of interest were PR'd and merged to the main repo.

fingermap new screenshot

fingermap mobile new screenshot

Some noteworthy process and implementation points:

At the time of writing, Fingermap is hosted at https://fingermap.monkeytype.com/

I've also separately hosted snapshots for:

Before | After

Thank you for reading!