(selected, old) projects
more information and screenshots coming eventually.
Market sizing/forecasting platform
2011 - VBA, Excel
I wrote core functions of a MS Office application for visualizing and performing computations on a directed acyclic graph which represents the segmentation/valuation of consumers in a market. One of my most interesting tasks was to create a dynamic flow chart, which allows the user to specify an arbitrary selection of properties by which to group nodes at each level of the tree. This required a novel graph traversal algorithm and data structure to represent, perform computations on, and render the new tree structure defined by the user's selections.
Contract web development engagement
A related set of e-commerce sites I built for a small business to sell direct-mail marketing resources. Features include an online order form (with admin site for fulfillment and basic analytics) and an affiliate program (including affiliate admin site, customizable affiliate PDFs, and support for segmented pricing based on affiliate ID).
(Email for links/demo)
2008 - Java
A desktop app to quickly record, intuitively graph, and interactively explore my blood glucose. Tragically, way ahead of its time.
Life data logger
2008 - Java, Python, Django
A desktop app in Java, and subsequently a web app in Django, to easily log and graph quantitative life data. I went through a major "lifehacking"/"quantified self" phase when I lived in Beijing, and wanted to create a way to quickly log and graph metrics such as sleep, weight, exercise, mood, productivity, etc.
Web design for high school and college organizations
2005-2008 - PHP, HTML
Flash video games
2005-2008 - Flash, ActionScript
My favorite was a side-scroller game heavily influenced by Awexsome Cross 98. Coming very soon.
Chinese learning tools
2005-2006 - Java
A set of small tools to help me when I started learning Chinese: a character/pinyin flashcard program, pronunciation practice (user recording and playback of native speakers), and a handwriting practice sheet generator.
2004 - VB
A flashcard program in VB that built on the ideas from my Word Quiz. It was centered around an editor to manage "stacks" of flashcards. The program sat in the system tray and periodically popped up with a subset of the flashcards associated with all "active" stacks, as long as the user was at the computer. It included a simple spaced repetition algorithm which was vaguely similar to what I later found implemented much better (and more elaborately) in SuperMemo.
2003 - VB
A simple vocab quiz program in VB that was popular at my high school during SAT prep season. It sat in the taskbar and popped up every 10 minutes with a list of 10 words to define, selected at random from a tab-delimited input file. After entering the definitions, the correct answers were shown, and the user grades him/herself to determine which words will be asked again in 10 minutes and which will be replaced with new words.
2000 - Perl, HTML/CSS
In the summer before 8th grade, during my aspiring comedian phase, I created a site for some friends and myself to broadcast our brilliant observations and anecdotes in what resembled a blog. I wrote a very crude but ambitious content management system from scratch in Perl, certain that the level of customization I envisioned would be impossible to find in any other package. The site featured a multi-user login page to add new stories, a custom category system (pictures, MP3 uploads, IM conversations, etc.), and sidebars including the most recently uploaded items, an admin-editable poll, and a Letterman-style "current top 10" list.
1999 - VB, Perl
An AOL chat room-based Pokemon battle game which ended up becoming quite popular. I was obsessed with Pokemon in 6th grade, and a huge online fad among us preteen Pokemon fans was "battlers," chat bots which you run while in a chat room and which you and others interact with to have a pokemon battle. I wasn't completely satisfied with the options available, so I made my own in Visual Basic using a freely available ActiveX control to interface with the AOL chat room.
I released 3 versions: v1 was a 1-on-1 pokemon battle, v2 allowed players to choose a lineup of up to 6 pokemon and switch between them, and v2.5 which combined the two and sent battle results to a Perl script on my server so that players could compare their battle statistics by screen name. One key differentiator was my internal database of carefully weighted attack strengths for each pokemon. My battler had thousands of downloads, and dozens of sites linked to it as one of the best 2 or 3 battlers available. It was a surreal and bizarre little pocket of fame that I enjoyed for a few months. In 2003, on my last archived version of the statistics page (which wasn't launched until a couple months after v2), there were over 2,300 screen names and 10,000 battles logged.
Goldie Goes To War (1 2 3)
1997 - VB
My first full-fledged video game, written in Visual Basic in 4th grade, starring my dog Goldie. Gameplay was to move Goldie up/down along the left side of the map and to shoot bullets at space cats moving vertically at random across the other side of the map.