Fuzziqer Software

I work at Quora, and was previously a Facebook intern twice. I write code for fun sometimes.

Here's some stuff I made.

Boom! Zap! Waka-waka. Bweeeeeeeoooooooop-bwip-bwip...

Slide: Roll the balls down the slope. The further down your ball goes, the more points you get! Try to get your ball stuck to block the other player's rolls!
Move Blocks and Eat Stuff (source): a puzzle game based on the ideas and mechanics of Supaplex. This project marks the first time I wrote a game and actually enjoyed playing it. It does not mark the first time I wrote a game without the code becoming a horrendous unreadable mess.
Treads (mac download) (source): an arcade-style game. Push the blocks to squish the enemies! But watch out - the blocks bounce and can squish you too! Grab the powerups for a little help. And when something about a level looks different, something about the level behaves differently... strange things await!

Reverse-engineering projects
What were they thinking?

memwatch (source): a Mac OS process memory editor and search tool. memwatch is a powerful tool for cheating in video games, and works with any game that runs on a Mac. If you're like me and have to find absolutely everything in every game you play, memwatch can help with that.
gb (source): a Nintendo Game Boy emulator. It plays Super Mario Land (without any audio), and not much else.
gctools (source): a set of programs for unpacking and disassembling various console video game file formats. Notably, this includes a synthesizer for BMS sequences, which works with music from Super Mario Sunshine and Pikmin.
resource_dasm (source): a set of programs for unpacking and disassembling classic Mac OS application resources. resource_dump parses resource forks of any classic Mac OS application. It even has incomplete but mostly functional support for resource decompression, which involved me writing an MC68000 emulator. The project also includes some tools for formats used in specific games, such as Realmz, Infotron, Dark Castle, SimCity 2000, and Prince of Persia 2.
GameCube Action Replay Simulator and Control Simulator (GCARS-CS) (download): implements Datel's Action Replay in a manner that's compatible with more games, and supports more code types. It also enables online play of some offline multiplayer games by synchronizing key variables across client consoles. This was really cool when the GameCube was a current-generation console. Here are some scripts that enable online play for a few games (USA versions): Capcom vs. SNK 2, F-Zero GX, Ikaruga, Sonic Adventure 2: Battle, Soul Calibur II, Super Monkey Ball 2, Super Smash Bros Melee v1.0.
khyller: a free, private server for Sega's Phantasy Star Online. Supports PSO Episodes 1&2 for GameCube, PSO Blue Burst, and PSOv2 for PC, and supports lobbies (but not games) on PSO Episode 3. Don't use this server.
newserv (windows download) (source): the successor to khyller. This server uses a more robust architecture and is more stable. It's multithreaded, but has a broken locking implementation and is therefore unstable... but in my defense, I was 15 years old when I wrote this and had never taken any computer science classes at all.
new newserv (source): in a fit of nostalgia, I rewrote newserv in 2018 to use an event-driven architecture and fixed the broken concurrency primitives. I've learned so much in 12 years... *sniff*

Systems projects
They're functional! They're fast! The code is elegant in some places!

cyclone (source): a timeseries database engine. A single cyclone instance does the jobs of all of the services that run on Graphite backend machines (carbon-cache, carbon-relay, and the webapp), and provides significantly better performance. Quora uses cyclone to power its primary timeseries database.
fastweb (source): a simple multithreaded libevent-based webserver. The page you're reading right now was served by fastweb. (Did you notice? Was it fast?)
redis-shatter (source): a sharding proxy for the Redis protocol. Unlike other similar projects like nutcracker, redis-shatter strives to implement as many commands as possible, to make a sharded Redis instance look as much like a standalone instance as possible. For example, it supports the SCAN command, making various maintenance tasks easier, it supports SCRIPT LOAD, which allows better optimization of script execution in a sharded environment, and more. It's also configurably multithreaded, because I like being able to use all the CPU cores.
sharedstructures (source): a library for storing data in shared-memory data structures. Quora uses this to store small amounts of data that require extremely fast access times without keeping a copy of the data in memory in each individual process on a machine. (Because of this, Quora can run many more Python processes on a single machine, since they all share a single copy of this data in memory.) The Python interface is super clean - you can generally treat a sharedstructures object like a normal dictionary.

Language and compiler projects
Written by a non-professional.

nemesys (source): an experimental Python JIT (just-in-time) compiler. Compiles unmodified, unannotated Python to AMD64 assembly and runs it. Doesn't support enough of the language to be practically useful (yet).
equinox: an interpreter, compiler, and JIT compiler for esoteric programming languages. Currently supports Brainfuck, Befunge, and Malbolge. Why? Because some of these languages are pretty difficult to compile - self-modifying code is encouraged or even required.

This page last updated on 1 December 2018