The drum kit
I want to start with the embarrassing one, because it's load-bearing.
In November 2023 I was one month into learning JavaScript at a bootcamp in Tunisia, and I built a drum kit in the browser. No framework. No build step. Just an HTML file, some CSS, a folder of drum samples, and a keydown listener that was, I'm fairly sure, doing three things it didn't need to do.
Here is the description I wrote for it at the time, which I've never edited, because editing it would be lying:
This is my first ever solo project although it looks bad and I have used no frameworks whatsoever and the code is very bad but it is functional. I love music and drumming and I have not found a drumming app that really satisfies me so I took it on my own hands to make one. As I said this is my first project so I had no idea where to start or how anything works it was rough but I completed it and I think its a good first step.
The code is very bad. I stand by "functional."
But look at the actual reason it exists: I have not found a drumming app that really satisfies me, so I took it on my own hands to make one. That's the whole sentence. Three years and about forty thousand words of notes later, that is still the sentence. Every project on this site is a variation of "the thing I wanted didn't exist, or existed badly, so."
Job Scraper, four years on: built it as a tool for myself because I was tired of checking ten different job boards every morning. The WhatsApp tool: built for myself because I was tired of doing all of the leads messaging manually. OpenDerja_TN, an open corpus for Tunisian Derja, a language twelve million people write every day with almost no proper record: same instinct, wearing a much more serious coat.
I didn't plan that. I noticed it later, while trying to figure out what to put on this website.
Why it's on the site at all
Because leaving it off would be a small dishonesty, and the whole point of this site is that I got tired of small dishonesties.
The drum kit doesn't demonstrate any skill I'd want to be hired for. It demonstrates that I finish things, and that I start them for a specific, slightly stubborn reason, and that when I don't know how something works I will build a bad version of it rather than wait until I'm qualified. Those three traits are the only reason the rest of this exists.
Also, it still works. Go hit some keys. The samples are fine. The code is a crime scene and I will not be taking questions.