I’m a first-year grad student in the PLASMA Lab at UMass Amherst, advised by Emery Berger. Before this, I was most recently a software architect at SocialCode where I worked on developing scalable, maintainable backend systems.

Recent Posts

Selected Projects

  • libsd - System Dynamics simulation engine in C.

  • sd.js - System Dynamics simulation engine and diagram layout in JavaScript.

  • seshcookie - http sessions stored in encrypted cookies for Go.

  • psm - a Linux utility for RAM and swap reporting.

  • cnote - a music indexing service written in C that exposes a REST API.

  • btscale - reverse-engineered JS API to the Acaia scale.

  • slackfs - FUSE filesystem to interact with Slack, along with tmux-based UI.

Free Software

I use and support free software, having contributed to a variety of projects over the years - mostly to address issues that I’ve encountered. I like to leave things better than how I found them.

Linux kernel

I helped test and fixup the initial x32 pseudo-arch support in 00194b2e, ce5f7a99, and f044db4c. f75a8df3 and 10db4e1e address spurious and actual warnings emitted during kernel builds.


I found and fixed some issues with git diff --no-index in 176a3354 and f3999e03.

Go language

I’ve authored a number of small changes, addressing issues in HTTP headers (235bd4eb543e), JSON support (233ff5d46b3d), gob (7f39a0541e03), and the build system (5a1c75805f59, 4f0d27dab290, 7d0f321ea87c), along with a nice little performance hack in the time package (d9e4f47ae341).


Once upon a time I was an intern with (and subsequently a community member of) OLPC. I helped with some bugs that had cropped up, worked on a (sadly unfinished) activity named Model to enable students to do system dynamics modeling on the XOs, and rewriting the boot animation in C, speeding up boot time by 12 seconds.


I love coffee. I’ve done some work on accessing the Acaia scale from JavaScript, which required reverse engineering their wire protocol.

System dynamics

I studied system dynamics in school. I even wrote a nice thesis on how you could neatly apply object-oriented programming to modeling, as a method of reducing complexity.

I’m currently working on a web-based editor for SD models, with a focus on usability and design: