Programming Portfolio

Web Applications

Author Alcove

Author Alcove

When: 2012-2013

LoC: Under active development

Contribution: Founder, Architect, Developer, DBA, System Administrator

Tech: Python, Django, JQuery, Celery, Solr, Git, Puppet

Description: Author Alcove is a book discovery service. Even if your best friend was a book critic he couldn't give you recommendations this good.

There is some pretty interesting math going on behind the scenes to generate the book recommendations. I am using many of the winning techniques from the Netflix prize.

More info: Visit the live site at

PPC Reporting System

PPC Reporting System

When: 2007-2010

LoC: 40,000

Contribution: Architect, Principal Developer, Requirements Analyst, DBA, End User Documentation, System Administrator

Tech: J2EE, myFaces, JSP, Tiles, Apache Trinidad, Apache Tomcat, SQL Server, SVN, Hudson

Description: A comprehensive reporting system for monitoring the pay-per-click (PPC) performance of online advertisements. The Reporting System is currently used by SEO firms and their Fortune 1000 clients.

Data is imported via SOAP APIs, parsed CSV files, and manual imports. The project features a multi-tiered login system which allows administrators to manage client login credentials, management features for adding new search engines as data sources, and 11 different reports which can be broken down by a variety of data metics. The system is scaled to handle real time generation of custom reports with hundreds of thousands of data points.

AB Landing Page Testing

A/B Landing Page Testing

When: 2006

LoC: 1,800

Contribution: Sole Developer, DBA, Statistical Analysis

Tech: PHP, mySQL, HTML

Description: Statistically analyzes the relative effectiveness of 2 or more versions of a web page.

This SaaS application uses a multi-tiered user system so that white label partners can change the branding and color scheme of the interface and manage tests for clients. New tests are created by adding the URLs of the test pages to the application and installing tracking codes on the client’s server. The test results can then be viewed on the web application's reports page.

WordPress Plugins

Amazon Affiliate Geotargeter WordPress Plugin

Geotargeter for Amazon

When: 2011-2012

LoC: 600

Contribution: Sole Developer

Tech: PHP, Javascript, JQuery, AJAX, HTML, WordPress, Git

Description: The Geotargeter for Amazon WordPress Plugin determines a website visitor’s location using JSONP APIs and then dynamically rewrites pages containing links to Amazon to show visitors links to their local Amazon store. Features include performance caching, secure AJAX calls, and configuration options via the admin area.

More info: Visit the website to see how the plugin increases Amazon Associate earnings.

Ravatars WordPress Plugin

Ravatars WordPress Plugin

When: 2008-2009

LoC: 450

Contribution: Sole Developer


Description: Ravatars is a WordPress plugin for generating custom avatars for blog comments. The plugin uses a hash of the commentator’s email address to create a random avatar from a set of source images. The avatar will remain the same each time the commentator leaves a comment. The avatar size and source images are customizable by the site owner. The Ravatars plugin has a five star rating and has been downloaded over 4,000 times.

More info: Visit the download page to get the Ravatars plugin.


GrokCode Site

GrokCode Website

When: 2007-2013

LoC: 1,300

Contribution: Theme Designer & Coder, Publisher

Tech: HTML, CSS, JavaScript

Description: GrokCode is my personal website covering programming trends, tales from the software development trenches, recommendations on development books and tools, and my opinions on anything related to programming. I try to cover a variety of topics and programming languages to make the site useful as a general resource for developers of all stripes. GrokCode uses a custom WordPress theme that I created, and contains all original content.

More info: Visit the GrokCode homepage.

Joke Generator

Joke Generator

When: 2004

LoC: 600

Contribution: Sole Developer

Tech: Lisp, Artificial Intelligence

Description: The generator is programmatically seeded with knowledge about different nouns and modifiers, then uses that vocabulary to generate jokes. The generator searches every possible combination of <modifier> <noun>, <modifer> <noun> in its vocabulary, and tries to create a punchline based on different transformations. All of the jokes are of the form: “What do you get when you cross X with Y?” This code was written for my CS288: An AI Approach to Natural Language Processing class at UC Berkeley. Q: What do you get when you cross a port with Frosted Flakes? A: I don’t know but it’s serial!

More info: The code is available on GitHub.