I’m a software engineer and musician living in the greater New York City metro area.
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 also worked or consulted for the following companies and organizations:
- Eclipse Foundation
- EY (Ernst & Young)
- MLB (Major League Baseball)
- Morgan Stanley
I earned a B.A. in Music from Binghamton University, where I studied under the late great organist Dr. Paul Jordan. Stylistically, I play and compose 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
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 email@example.com