Beta logo, with winged snake wrapped around

Don't anthropomorphize computers. They hate it when you do that. — ?
« home

Computer Science

Although “science” has connotations of theory and experimentation, this page is meant to also cover the practical aspects of what I’ve done programming and generally tinkering with computers. (On the other hand, theoretical computer science is on the math page. It should also not be confused with my cheat sheet.)

So yeah. I wrote code to make computers do stuff. I have the most work experience developing on the front-end, with TypeScript and React/Redux as well as HTML/CSS, but I also write Haskell, Python, and Scala, and love learning new languages (exhibit A, correct solutions in 23 languages on Google Code Jam 2015.)


For personal projects, see the projects page.


I like open source software. Here are some pull requests I’ve sent out.

Functional Programming


I’m a fairly big fan of Haskell, an elegant purely functional programming language with a strong type system. bcodex is my biggest personal project in it, but I also write a lot of simple Haskell scripts. Examples include:

I’ve never been paid to write any Haskell, though. (If you want to change that, definitely send me an email :)

If you are interested in learning Haskell, here are some resources:


Scala is an expressive language combining the functional and object-oriented paradigms. gridderface is my biggest Scala project; I also wrote a compiler in Scala in a team for 6.035: Computer Language Engineering at MIT. And I think I wrote at least one line of Scala at Dropbox.

Everything Else

Computer Security

I’m interested in computer security, although I am not very good at maintaining a consistent threat model.

I do some online exploitation challenge sites; I think the first place I started was HackThisSite. I’ve also done a lot of challenges on rankk and on some other sites.

Since more recently, I do CTFs with a somewhat fluctuating group of friends that has mostly stabilized as galhacktic trendsetters. I participated in the 2017 and 2018 CSAW CTF finals, the first time with Don’t Hack Alone, the second time with TechSec.

I use KeePassX for many of my passwords. I like EFF’s Diceware word list (although I hope to improve it someday), and own two precision backgammon dice for personal password generation (as well as extremely fair games of Settlers of Catan :)

User Interfaces

I’ve worked a bit with Bootstrap components for the ESP website, although in an effort to try for a more minimalist and deeply customized theme for this site I chose Pure.css. I think semantic markup is a pretty good idea.

I like playing with gradients and shadows and hover/active effects on buttons, probably to a mildly unhealthy degree. To spread the passion, I taught the class “How to Build the Perfect Button with CSS” for Spark and Splash 2017. Once you’ve seen Bootstrap basic and themed buttons, you’ve probably seen most of them, but there’s the occasional much fancier example like BonBon buttons.

Other cool things: