Personal Software

There's a prompt for that

While learning to code, I struggled with whether I was legitimate. There was a threshold of knowledge I needed to cross to be validated as a real programmer. By the way, I never crossed that threshold. I just stopped giving a shit. Among all the job titles I’ve had in my career — developer, engineer, idea engineer, experience architect, architect — each triggered my impostor syndrome. Perhaps the most honest title was the one I hated the most: “software integrator.” In the end, that’s what I (we) do most. I integrate software to build solutions. It’s rare to get an opportunity to design and code something from scratch. There was always a jQuery plugin, a Ruby Gem, a Composer package, or an NPM library.

Today I was tinkering with an idea to add MIDI background music to the site. As it turns out, you can’t simply play a MIDI file in an HTML audio tag. A MIDI file doesn’t contain audio data. It’s a sequence of instructions: “play note C4 at velocity 80 for 200ms on channel 1.” To play MIDI on a website, you need at least a parser to read the score, oscillators to serve as instruments, and the Web Audio API timeline as the conductor. Hell of a project for such a simple ask, which is why there are plenty of JavaScript libraries that do just that and more. But in the name of this site’s rebellious spirit, I should build my own MIDI player that works exactly as I want. To be an extension of my digital self and an expression of me.

What was intended to be a space for experimentation turned out, once more, to be an integration job. Only this time, instead of installing an NPM library that sort of does what I need, I prompted Claude AI to build the library to spec. For most of my career, I found the available tool and bent my vision to fit it, compromising along the way. Now I start with the vision and prompt for personal software that aligns with me. The cliché of democratization of creation. Liberating. This is better. This is the closest the execution has come to the idea. It also dilutes the essence of what I thought made me a programmer, or maybe it’s my impostor syndrome talking. Did we romanticize the craft too much? I doubt line workers had existential crises when they traded the hammer for the machine that swung it—at least those lucky enough to keep a job as an integrator.