I have been known to program computers now and again. In fact, I guess I kind of do it for a living… These days, I mostly code in Python and Rust, although I also consider myself very proficient in C, Perl, Bourne Shell, and moderately proficient in Ruby, SML, Haskell, O'Caml, Hy and C++.
If you want to hire me, you might enjoy my resume. No promises on how recently I updated it, though.
This page contains projects that I think are interesting and which I'm comfortable claiming primary authorship over, in roughly chronological order. If you want to see more comprehensive details about my open-source work, you're better off looking at my github profile or just asking me.
|Circuit sketch recognition||Research project I contributed to in college. Designed to use modern machine learning techniques to recognize and simulate hand-drawn digital circuits. Really cool idea. Never worked that well. I made a single-gate recognizer based on an annealing paper from UMass Amherst.|
|cwviz||I also did research for a few years in circuit design and optimization with the Clay-Wolkin Research Fellowship. One of the things I made there was this visualizer for specially-marked-up Verilog circuits. Allowed plugging in results from the Stanford Circuit Optimizer Tool (SCOT) to visualize timing and energy usage of particular parts of the circuit.|
|east dorm treasury||One of the first GUI pieces of software I wrote that people actually used. I little utility for managing the finances of my college dorm. Probably horrible code. I think I implemented my own ORM.|
|wamupd||An experiment in wide-area dynamic DNS|
|ybinlogp||A fast binary log parser for mysql designed for doing binary searches in binlogs ("show me the closest event to this timestamp"). I recently ported this to autotools!|
|fakemtpd||A fairly compliant mailserver which refuses to actually proxy any mail. Useful if you're sending outbound mail and need to pass VRFY checks from mailservers which do them, but don't want to expose your actual mailservers to inbound traffic.|
|/dev/pi||A little kernel module that Evan Klitzke and I wrote for a Yelp hackathon. Like /dev/zero, but emits infinite successive digits of pi instead.|
|onepasswordpy||A pure-python implementation of the 1Password keychain formats.|
|py-find-injection||Python tool for inspecting python source files to look for potential SQL injection vulnerabilities.|
|hacheck||Generic load balancer healthcheck proxying and control daemon.|
|clusto-query||Command-line querying tool (and query language) for the clusto cluster management package. Check out that hot recursive-descent parser.|
|muttdown||Tool for rendering Markdown into HTML for MIME/Alternative e-mails.|
|ssh_certificate_parser||Python library for parsing the OpenSSH certificate format|
|syslog-rfc5424-parser||RFC 5424-compliant IETF Syslog protocol parser written in Python|
|rust-syslog-rfc5424||RFC 5424-compliant IETF Syslog protocol parser written in Rust|
|duo-auth-rs||Glue package for using Duo with pam_exec|
|rust-mysql-binlog||Rust implementation of the MySQL binlog format (including esoteric bits like the binary JSON serialization), with an eye for building custom RBR binlog-based database administration tools.|