This was in early 2001, I was an exchange student in Japan, and I'd bought a really cool gadget in Akihabara that almost nobody had heard about: a hardware MP3 player. For storage, it used MMCs (precursor of SD cards), affordable ones held 32MB. To get music onto those cards, I also bought a USB card reader.
And there I ran into problems: the PC in my dormitory room was a used Pentium Pro desktop I'd gotten very cheaply without an OS, and I'd installed Linux on it. But at that time, USB support on Linux was still rather spotty, and while the card reader was in principle supported as a mass storage device, the USB driver would reproducibly freeze up after a short time accessing it.
As mentioned above, my C skills were basically non-existing, but compiling your own kernel was at that time still a pretty common thing for Linux users to do, so I had some experience with that. And I was motivated. I enabled kernel debug output, and discovered that just before freezing up, the driver would report that it had received an event with a certain ID. I found the code that handled events, and I found the code that handled the problematic event. I looked at it and realized that I was many months of learning away from being able to fix it.
So instead, I deleted it. I simply made the driver ignore that type of event.
It worked. I could use the card reader to put MP3 files on the MMCs and listen to them on the player.
I felt a strange mixture of achievement and embarassment.