Programming Portfolio

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. Data is imported via Yahoo’s SOAP API, parsing of CSV file received via email, and manual data imports. The project includes 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 Reporting System is currently used by SEO firms and their Fortune 1000 clients.

Challenges: Scaling the system to handle immediate generation of custom reports with hundreds of thousands of data points, on a limited server budget.

Geotargeter for Amazon WordPress Plugin

Amazon Affiliate Geotargeter WordPress Plugin

When: 2011

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.

For more information on how the Geotargeter for Amazon Plugin increases Amazon Associate earnings, click here.

Ravatars WordPress Plugin

Ravatars WordPress Plugin

When: 2008-2009

LoC: 450

Contribution: Sole Developer

Tech: PHP, HTML, CSS

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 been downloaded over 3,000 times.

Challenges: Supporting the plugin on a variety of WordPress versions and themes.

GrokCode Website

GrokCode Site

When: 2007-2011

LoC: 1,300

Contribution: Theme Designer & Coder, Publisher, SEO

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.

Challenges: Troubleshooting layout problems with non-standards compliant browsers.

AB Landing Page Testing

AB Landing Page Testing

When: 2006

LoC: 1,800

Contribution: Sole Developer, DB Design, Statistical Analysis

Tech: PHP, mySQL, HTML

Description: Calculates the relative effectiveness of 2 or more web pages using the Chi-square distribution. The application uses a multi-tiered user system of 3 levels: admin, partner, and client. Admins and partners have the ability to create new tests, change the branding and color scheme of the interface, and view AB test reports. New tests are created by adding the URLs of the test pages to the application, and installing tracking codes on the client’s server in order to track the results.

Challenges: Learning the best way to statistically analyze the results.

Joke Generator

Joke Generator

When: 2004

LoC: 600

Contribution: Sole Developer

Tech: Allegro Common Lisp

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!