I'm a software developer in San Francisco. I'm pretty good with Python, but I also work in Javascript and C. I run a successful passive online business. Always interested in opportunities! Recruiters welcome.


Visualizing Newton's method using WebGL

An interactive renderer of Newton's method animations.

Notes on emulators

An overview of video game console emulators.

Interview with Tom Kalinske

Tom Kalinske was the CEO of Sega of America from 1990 to 1996.

How decompilers work

Decompiling reconstructs source code from compiled machine code.

Side projects

ROM info

Utility for extracting information from ROMs and disc images, such as headers, file systems, file lists, files and disc sector errors.


A simple cross-platform Sega Genesis emulator.

The Hidden Palace

A community dedicated to the preservation of classic video game development history. At the center is a wiki with close to 10,000 pages, over 5,000 uploads, and active contributors. It has had over a million page views since I started it in 2006.


A C decompiler. It attempts to recreate the original program structure of a compiled program by performing control and data flow analysis.

Steam Monster Game leaderboards

Leaderboard, ranking and hall of fame for Steam Monster Game 2015, a massively multiplayer game that ran during the 2015 Steam Summer Sale, with almost 5 million people playing. I was on one of the winning teams and this website was used to track our progress in real time.

Older projects