-Being-

(art by Katie Ellison)

Hi. The short version is that I am a trained physicist, have worked professionally as a computational neuroscientist and data analysis type guy, and more recently have been working in software development, primarily in the languages Common Lisp and Javascript, where I am bringing idioms and ideas from functional programming into my company's codebase.

In addition to the raw pleasures of making bits move around by typing symbols at machines, I am now nursing a deep interest in the process of developing software in teams. I've become particularly interested in what interpersonal dynamics enable successful software development. I've recently enjoyed Specification By Example, by Gojko Adzic, and Inspired by Marty Cagan.

I've got good communication skills and I am comfortable using them in front of a large number of people. I particularly enjoy communicating about challenging and abstract ideas. I may even enjoy rendering ideas comprehensible more than having the ideas in the first place.

Although professional life often intervenes, I make an attempt to stay creative. I occasionally write non-fiction, poetry, and music and recently have been working on a large series of generative art pieces in a Lisp dialect of my own design which targets Javascript.

Sorry humans looking for love: I'm quite happily married.

-Doing-

Of course, most of my time is spent working for Agri-Esprit, the finest purveyor of Farm Information Systems in the world. The rest of the time I get up to:

-Projects & Code-

  • The Death Of The Corpse Wizard is a minimalist roguelike arena game made with HTML5/Javascript. Needs a modern browser to run. The Death Of The Corpse Wizard is under active development, and you can play an experimental version here.
  • Clocks is a generative art project (HTML5/Canvas) which tries to make interesting images out of non-random but complex behaviors. The above image was produced by one such clock. The clocks are written in...
  • Gazelle is a Lisp-like language targeting Javascript. Gazelle has built-in support for modules, metaprogramming, and extensible pattern matching. Gazelle's pattern matching is based on...
  • Shadchen, the name of which derives from a Yiddish word for matchmaker, is an ml-ish pattern-matching library for Common Lisp. I maintain two versions of this library, one in Common Lisp and one in Emacs Lisp. The latter provides special forms which implement self-recursion without growing the stack (most Common Lisp implementations are capable of tail call elimination) and forms for doing computations inside monads (I tend to put experimental code into the Emacs Lisp version first).
  • Patty is a super-tiny pattern matcher for Picolisp.
  • For many years I was devoted to finding patterns in neural spike trains produced by grazing bifurcations. While it has been some time since I worked with that code, it is available here. Also of interest may be...
  • Parenlab, which is sort of like Gazelle for Matlab, a Lisp dialect that targets Matlab and Matlab-like languages while preserving syntactic features for making vector-based programming easier. Parenlab is a bit idiosyncratic, so if you are interested in using it, let me know and I will help you out.
  • My github hosts all sorts of other fun stuff, including a giant pile of emacs-lisp utilities, a Random Demon Name Generator (almost purely functional), some persistent data structures for Emacs Lisp and Common Lisp, a version of Parenscript that will run on Franz Lisp's Modern Mode and behave about as well as that implies, and a bunch of other cool stuff which is probably not clean enough to talk up on its own.

-Saying-

Dorophone (archive here) is my blog. I don't have nearly as much time to write as I did back in my languorous graduate student days, but I still update it periodically. A Dorophone is not a super easy to use phone which I am now dismayed to find exists, but a communication device from Ada, or Ardor which uses water to transmit sound, since electricity is taboo.

If I ever tweet, such tweets shall appear, as if by magic, here!: