I started programming in Java in the summer of 2003, just before I took a high school class that taught Java. I continued to teach myself Java after the class ended, and I created, during those latter high school years, a class-based chess game complete with "learning AI". I put that term in quotes because it learned by recording its moves and whether or not it would directly result in a win or lose, moving essentially randomly otherwise. This is, of course, not a very good AI, though it helped me debug the chess program.
There was a bug in the function that would verify whether a move was legal that allowed a player to move out of check by placing the other player in check. It turned out that this occurred because the player newly in check could not legally move their piece onto the opposing king's square, as it would not bring them out of check.
As a freshman at Carnegie Mellon, the final assignment in my Data Structures and Algorithms class was implementing a chess bot that used Alpha-Beta pruning. This time I didn't have to program the chess engine itself, though I did get a chance to find a bug by source-diving. The bug allowed an en passant to occur after a pawn moved two squares forward followed by each player castling.
In the summer of 2007, I worked at a company known as Princeton Softech (later absorbed by IBM), where I created data masking functions for their enterprise data privacy software. The data I was responsible for masking were foreign country identification numbers, similar to the Social Security Number used in the United States.
I learned C in my freshman year of college (Spring 2007). My biggest project to date in pure C was the implementation of a basic kernel in the CMU course Operating Systems Design and Implementation, with my friend Julia Tuttle.
I taught myself C++ in the spring of 2009 while programming the Game Creation Society project "Backfire". The source for that game is available on the project page for Backfire.
In August 2009, I began submitting bug fixes to the Dungeon Crawl Stone Soup development team. I traditionally find these bugs by source-diving or otherwise having an understanding of the code, and possibly running the game through gdb and replicating the bug. I have also submitted minor gameplay patches which have mostly been accepted (some with modifications).
The Captcha was once available on captcha.net as "Squigl-PIX" but no longer appears to be functioning.
My next big Python project was Jokeserver, an IRC bot that maintains a Redis database of jokes, telling them in channel upon request, observing the reactions, and determining which jokes are better.
jokeserver, and the more general ircbots project that forms its backbone, utilize Joel Rosdahl's python-irclib package for the low level IRC/socket framework. The ircbots source code is available at https://bitbucket.org/zannick/ircbots under the GPL.
For a while I worked on Demystify, an ANTLR-based parser for Magic: The Gathering. I have since moved onto numerous other projects and never came back and updated this page to list them.
Most of my work at Google as an SRE (2010-2017) was in a mixture of Python, C++, and Go. My work at Google as a SWE (2017-) has been mostly C++.