projects i've worked on

Termcast

Termcast is a program which allows users to stream the contents of terminal-based programs to a central server, and allow other people to watch them. It is useful for remote pair programming, as well as things like spectating on terminal-based games. I have written a client which allows users to broadcast, as well as a server which allows users to watch the broadcasters either over an SSH connection or through a website.

libvt100

I am the author of libvt100, a terminal parsing library written in C and Lex. I am currently using it in the Termcast server and in Runes, a terminal emulator.

Dungeon Crawl Stone Soup

I am a member of the development team for Dungeon Crawl Stone Soup, a roguelike game written in C++ and Lua. I contributed several features throughout the game, and I was also the release manager for the 0.6 release.

Reply

I am the author of Reply, a customizable and lightweight REPL for Perl. It provides features like pluggable tab completion, automatic class loading and refreshing, history support, and (through the Carp::Reply module) automatically launching a REPL when an exception is thrown. It can be easily extended through a powerful plugin system.

Plack

I am a member of the core development team for Plack, the reference implementation of the PSGI specification for Perl web server/application interaction (similar to Python's WSGI and Ruby's Rack). I have also contributed to the design of PSGI.

Perl

I was the release manager for the 5.17.1 development release of Perl, and I have also contributed many bug fixes to the Perl core. In addition, I have been a lead developer on the p5-mop project, a prototype of a new object system for Perl, including features like a meta-object protocol.

Moose

I am a member of the development team for Moose, a module which provides advanced object orientation capabilities for Perl. I was also the release manager from 2011 – 2012. I am also the maintainer of several widely used Moose extensions, such as MooseX::NonMoose and MooseX::Aliases.

Spreadsheet::ParseXLSX

Spreadsheet::ParseXLSX is a Perl module which can read .xlsx files (as generated by new versions of Microsoft Excel). It handles reading both the data and formatting from these files.

Text::Handlebars

Text::Handlebars is a port of the Handlebars.js templating language to Perl. It uses a custom parser on top of the Xslate template engine framework. It supports nearly the entire feature set of the JavaScript implementation, and we used it at Infinity Interactive to ease the transition of one of our large web applications from client side templates to server side templates.

OX

OX is a web framework for Perl based on the PSGI specification, which uses the Bread::Board dependency injection system to manage application components. We used it internally at Infinity Interactive for many client projects.

TAEB

I am one of the lead framework developers for TAEB, a Perl framework for programmatic interaction with NetHack. I am also the primary developer for the leading AI written for TAEB.