Software I have written.

I have been writing software since QBASIC in elementary school, and I spend a great deal of my time, both working and recreational, learning all I can about new languages, libraries, and algorithms. Programming is more than a skill to me – it’s a passion.

I’ll take this opportunity to mention that my current language of choice is Scala. Previously it was Java, which I taught myself back in high school. I also like C for pedagogical reasons, and I regularly use C++ when writing numerical code. Being strongly in favor of static typing, I am not a fan of most scripting languages, Python included. For a while I was intrigued by X10 and Fortress, but nowadays I am most excited by Rust.

One’s language preferences are often shaped by the libraries and frameworks available for them. Past favorites include Akka, MPI, FFTW, BLAS/LAPACK, and Thrust, along with Scala’s collections framework and the Java Class Library. And I’ve recently been intrigued by Delite and Legion as having potential for achieving high productivity and high performance. Along similar lines, Halide is inspiring for its separation of logic and execution (without giving up control over either).

I write most of my code in either NetBeans or Vim.

Projects

See my projects page for a reasonably complete list of my programming experience.

Most of the code I wrote in grad school was contributed to the Spectral Einstein Code, which unfortunately is not open-source (yet). However, I have just started pushing some of my personal projects to GitHub and bl.ocks.org. This currently represents only a tiny fraction of my programming output, but it should become more complete over time.

Some of my more interesting programming projects hosted there include:

I have also written a considerable amount of code in the process of conducting research and completing academic assignments, in addition to the projects I complete in my spare time.