Over the past 14 months, Monetate engineers have had four Hack Days events, ranging from a single day to our most recent four-day hackathon.

During Hack Days, everyone in engineering gets to work, alone or in teams, on a project of their own choosing.

Some of the finished hackathon projects were relevant to our business, such as new product features and improvements to existing features. Some will never become part of our codebase, but allowed the engineer to learn a new language or API. And some were just off-the-wall ideas but a whole lot of fun to put into practice.

Of particular note this time around, all four of the quality-assurance engineers who participated in Hack Days got their hands dirty with some code.

Below are brief summaries of some of the projects that our engineers worked on during the final Hack Days of 2012:

Eric Snyder wrote a program to produce product recommendations using a genetic algorithm.

Karl Shouler and John Peeler created a heat map visualization of open-issue metrics, built on top of a Python/Firebase backend with Javascript and canvas on the frontend.

Derek Spicer, one of our project managers, learned Python and the Salesforce API and wrote code to pull SalesForce contact and account information into Jira, a spreadsheet, and a web page.

Geoff Johnson, Elise Wei, Eric Heydenberk, and Jon Reeb created a system to inject custom Javascript unit tests into Monetate’s frontend scripts on a client-by-client basis.

Jeff Patti and Jason Stelzer investigated the use of Graphite for real-time system monitoring.

QA engineer Kim Killaly got her feet wet in front-end engineering by working on some open tickets. She learned how to use our in-house action-building tools and performed cross-browser debugging.

Ashley Sheppard added some new features to our banner actions and experimented with ways to make it snow on clients’ sites.

Mary Beth Gombola and Tristan Hoffmann built a web app using Rails and Resque scheduler to monitor the price of an item and send an email alert when the price drops.

Patrick O’Brien and Jon Aldinger redesigned a client-facing dashboard to include real-time statistics and analytics, as well as frequently accessed links.

Spencer Creasey, Jon Aldinger, and Gil Raphaelli upgraded an internal debugging and profiling tool.

QA engineer Becky Hernandez-Cuebas learned how to use the Lingo object-oriented programming language in conjunction with Director to animate a short film.

Rob McGinley worked on a bunch of helpful little backend projects as well as some user-interface enhancements.

Kris Molendyke wrote a simple command-line utility for piping Javascript expressions to a Chrome instance for remote evaluation; learned about the WebAudio API to create a mobile soundboard featuring effect chaining on vocal samples; and deployed an internal chat bot for interaction with a third-party datastore and serving up random quotes from the “Die Hard” script.

Jeff Horwitz automated the process of consolidating multiple production databases for use on individual development servers.

Chris West created a gravity DOM doodle, a JSON string editor, and a generic date difference function.

Tom Chandler started with FloraJS and added consumption, production, and reproduction to produce a self-sustaining ecosystem.

Ram Parthasarathy created a way to deliver customized messages to users with in-page notifications.

Jeremy Clewell used Python and the PySerial module to communicate over USB with a micro-controller and thermal printer, which prints out responses to custom queries made to a web service.

QA engineer Yaffa Landis wrote an automated-testing script to ensure that updates to our production scripts don’t break existing functionality.

Luke Walker wrote an iPhone theramin app.

Mike Hand worked on a number of new product features involving page scroll and banner placement.

Shaun Gallagher and Dave Scarlatella continued work on a user interface for creating and editing templates used in client campaigns.

Geoff Young worked on a product-search feature that presents meaningful content when the search returns no results.

QA engineer Manuel Hakimian added Javascript functionality to a web page.

Mike Brewster worked on a bookmarklet that searches through properties and values of a given object for a given string.

Chris Conley wrote a script that allows our engineers to compare recent active versions of our production scripts.

Laura Stokar prepared and taught a class for engineers on our QA and web development teams about how we develop custom Javascript actions.