Technologies

HTML/XHTML and CSS, JavaScript and jQuery, C# and ASP.NET WebForms/MVC, Microsft SQL Server and MySQL, Python and PHP, Mercurial and Perforce source control systems, automated unit testing with NUnit and Moq.

Job Experience

Beanstream Internet Commerce Inc.
Application Developer
March 2011 to February 2012


ACD Systems International Inc.
Web Systems Developer
October 2004 to February 2011

Project Experience

WordPress Upgrade

Upgraded a heavily customized WordPress and bbPress installation across three languages and whose user base exceeds 10,000 active users. Had to become reacquainted with PHP and MySQL as well as learn how the WordPress and bbPress platforms operated. After the upgrade new bugs were introduced and fixed, in particular the federated login which handled authentication for two blogs and number of forums. Plug-ins were either upgraded, to use new APIs over deprecated ones, or retired, due to their functionality being available after the upgrade. Long standing bugs were also fixed which included localizing strings and quirky upload dialogs for images.

Marketing Tool Reimplementation

An internal marketing tool used to configure daily advertisements for a few product lines was reimplemented according to the updated work flow of the Marketing and Design departments. The installation was migrated from Microsoft's ASP platform to their more current ASP.NET platform and also leveraged Castle's MonoRail, an MVC web framework. This simplified development and eased maintenance significantly compared to the old implementation. Met with users to collect their ideas about how the application should change to meet their needs. The look and feel was updated to fall inline with more modern design aesthetics as well as include a standards compliant web front-end using XHTML, CSS and jQuery. jQuery was used to help save mouse clicks and prevent users from making input errors.

SOAP Service Port

A public facing SOAP service was ported from C++ to C# to leverage the .NET platform, ease deployment and change ownership from the Development department to the eBusiness department. The port had to sustain upwards of 50,000 hits per day and be completely compatible with existing clients. Connection pooling, provided out of the box on the .NET platform, improved database connectivity and a logging infrastructure improved issue reporting.

Code Management Tasks Scripting

Many source code management tasks like branching, merging and Perforce spec management was scripted using Python and Perforce's P4Python API. Conventions were established for Visual Studio solutions and projects then a high level Python module was written to provide functions to complete discrete tasks following those conventions. High level scripts were produced to combine those discrete tasks into units of work, like checking in new projects, integration resolution and hooking into the build process. As a result this significantly reduced mistakes caused by human error and allowed focus on more important things like features and maintenance.

Web Site Refactoring

Refactored four large public facing web sites from a custom content management system to the more modern MonoRail MVC web framework. Refactoring needed to preserve existing functionality while providing better opportunities for new features and future refactorings. Some of the improvements include identifying duplicate functionality and providing it via shared libraries, using the Windsor Inversion of Control container to automatically resolve runtime dependencies, and migrating to the NVelocity templating engine for generating HTML pages. Refactoring resulted in an easier to maintain and more robust site making it less brittle.

Reporting Application Refactoring

While extending an internal reporting application a lot of duplicated code, among other poor coding practices, was discovered. Before starting a code audit was performed to determine if the refactoring could be finished quickly before extending it. Before the refactoring was started all the code was imported into CVS and from then on CVS was used to manage it. Many of the pages contained inline JavaScript where it wasn't necessary and so it was consolidated into a few files and included where needed. All database connectivity was implemented in a handful of classes in VBScript and shared among pages as well as being available for future projects.

Education

North Island College
Computer Science & Technology Diploma
1997 – 1999