Like all good nerds, I like writing code. Between what I do in my free time and what I’ve done with school, I would call myself very familiar with Python, C, C++, C#, Ruby, Perl, Shell, Scheme, ML, Haskell, and a half-dozen or so other languages. If you’re interested in hiring me and having something vaguely-interesting in mind, I might send you a résumé, but I’m pretty happy at my current job.
I’ve got a bunch of projects listed below that are primarily hosted here, but I’ve worked on a lot more than just these. I’ve done a good bit of coding for my employers at Yelp and Google, plus plenty more at school. There’s also some personal and work code of mine up on Github, some of which is just other peoples’ projects that I worked on a bit. But some of which isn’t.
I’ve worked on a goodish number of projects over the years; below are a few:
| East Dorm Treasury | An application for managing a dorm treasury; sort of like a simple checkbook application, but with a bit more sophistication. Written in Ruby with Gtk+ and CLI front-ends |
| Sketch Recognition Software | I worked on this research project with Professor Christine Alvarado at HMC during the summer of 2008. I worked on implementing some sketch recognition algorithms, and also did a lot of work on the auxiliary tools (the Labeler, etc.). It’s a giant mess of C# code… NOTE: This software only runs under Windows XP, requires the .NET Runtime 2.0, and might require the Tablet PC SDK. |
| SimServer | This little game was a project for my CS 121 (Software Development) class at HMC. It’s meant to teach some basic computer hardware skills. It’s written in ruby and uses wxWidgets. It’s been tested on Windows and several Linux variants, so it should be able to handle whatever you’d like to throw at it |
| BC# Compiler |
The class project for CS 132 (Compilers) (wiki) at Harvey Mudd College is, unsurprisingly, to write a compiler. The year I took the course, we were writing a compiler from BC# (a reasonably-complete subset of C#, including classes, inheritance, built-in functions and so forth) to X86 assembly, in SML. I worked with Kwang Ketcham on this project. Our I do still have the code from this project; however, since the class is still in existence and, as far as I know, working on a similar project, I am not going to post it online. It was pretty cool, though |
| cwviz | A Verilog visualization tool that I wrote for research, with some neat features. |
| wamupd | A wide-area Bonjour updater for Linux and Linux-like systems. Written in Ruby. Sort of hackish, but still kind of awesome |
| ybinlogp | A fast parser for the MySQL binlog (statement-oriented), written in C. The one that ships with MySQL is annoying. This one can do binary-searching in binlogs and neat things like that. It has a ctypes-based Python library. Written for Yelp |
/dev/pi |
A character device driver for Linux which computes pi in kernel space. Like /dev/zero, but irrationally better. Written as part of a hackathon project for Yelp with Evan Klitzke |
| fakemtpd | A fake SMTP server. Useful for testing, and also for asymmetric SMTP. For example, you can set this up to listen on port 25, but then send using postfix, and rest assured that you will not have an open relay, but still pass the anti-spamchecks like the terrible VRFY checks that some mailservers (ahem, hotmail) run. Written for Yelp |






