On songs and code

I am a songwriter.

I write because I want to talk about things that matter to me in ways I think other people can understand. I want my songs to mean something (and something different) to everyone who hears them. I write verses, choruses, bridges, rhyme schemes and melodies. I steal ideas, words and melodies from other people; sometimes I use them as-is, more often I change them a little or a lot. Although I can read music, it’s faster and easier for me to learn a song by ear. I record what I think are my best songs. I sing my songs in front of other people; which songs I sing depend on who I’m singing to, and who I’m singing with. I sometimes sing other people’s songs, because I only fully understand a song when I sing it.

I am a coder.

I write code because I want to help people find things. I write code that will allow people to use what I build in ways I didn’t expect and couldn’t have predicted. I write with tags, schemas, controlled vocabularies and unique identifiers. I often borrow someone else’s code because it’s easier and faster for me to see how something works than it is to try and start from scratch; I usually change it to make it work in my system, or to make it work better or faster. When I’ve done something I’m proud of, I’ll make it publicly available so other people can use it, tweak it, or tell me what needs improving. The kinds of systems I build and the languages I write in depend on the people I’m working with and for. I read other people’s code so I can understand how they think about and solve a problem.

Songs are code/code is a song.

I am a songwriter/I am a coder.