I’m a software engineer and musician living in the greater New York City metro area.

Software Engineering

For the past two decades I’ve done full-stack web development across a range of stacks and technologies, with particular expertise in the Java and JVM-based ecosystem.

I’ve created a number of open source projects such as the mascii music engine and springsandwich, am an Eclipse IDE contributor, and am creator of bachsearch, a searchable melodic index of all of Bach’s music, and brahmsy.com, a search engine for local live arts.

I’ve worked or consulted for a number of fortune-500 companies in the New York City area.


I earned a B.A. in Music from Binghamton University, where I studied under the late great organist Dr. Paul Jordan. Stylistically, I work in a variety of styles, but especially enjoy baroque and early jazz.

I am the author of Stride Piano Tricks, a popular guide on how to play early jazz piano, and a youtube video of the same topic. I’ve also played with local bands, for which I’ve written some pop songs.

The intersection of music and programming

Toccata (“Touch”)

Some express surprise, but I think they naturally go together. Ways in which music and programming are similar:

  • Small set of symbols (or tones) which are recombined in novel ways within the confines of a well-defined grammar, with syntactic and semantic rules governing their usage

  • Parallel processing (polyphony)

  • Source code (sheet music) versus the final runtime product

  • For both piano and programming, I touch-type at a keyboard. So a keyboard toccata is kinda like a touch typist??

  • Both are somewhat octal and ascribe great significance to powers of two

  • Both are quasi-mathematical, but also involve artistry and judgement and taste.

  • Both concern themselves with runtime performance and speed (called “tempo”)

  • Both are written in a variety of languages which differ in style and purpose yet retain certain core traits

  • Both use scoped variables (in music, accidental markings are always scoped to the measure, like a local variable)


I can be reached at ari@arikast.com