Frameworks

Website Design

Designed multiple informational websites

- Used a variety of client and server side web technologies to create visually appealing and soundly structured websites.
- Managed deployment and version control schemes for the sites.

Autotask Billing Export

Created an app to transfer information out of Autotask Web API and into a legacy DBC system.

- Designed and implemented a wrapper for consuming Autotask Web Service.
- Created a DBC file generation framework.
- Implemented architecture in such a way that future persistence schemes can be swapped.

Auto REM

Designed and implemented a C# assembly for interfacing with multiple COM driven Auto REM devices.

- Created an architecture extensible enough to provide a single service interface with different internal implementers for each device.
- Integration with existing software components proved the design valid by allowing additional implementations without modifying existing code.
- Made use of null object, state, factory, facade and bridge patterns to provide a consistent abstraction to clients of the module.
- Used dependency inversion and mocking to allow for over 90% code coverage.

Autotask Query Browser

Created open source project that mimics function of "SQL query browser" for Autotask through its Web API

- Layered architecture to allow multiple presentation formats (web/command line/desktop)
- Implemented a parser and defined rules for a language as a subset of TSQL.
- Defined and processed a series of non-query, runnable commands.

Sound Effects Control

Implemented a module for setting the notification beeps on a hearing aid.

- Reworked a "Smart UI", code-behind-heavy application to use MVVM.
- Achieved 100% test coverage of business logic.
- Satisfied all requirement of original implementation in a fraction of the time.

CodeRush Plugin

Created a plugin for DXCore/CodeRush.

- Implemented a Code Rush plugin within visual studio for auto-converting between different variable naming conventions.
- Allowed developers with different stylistic preferences each to see code as they prefer.

Database Evaluation

Authored a study on the relative usability of various front end programming technologies in conjunction with various RDBMs.

- Designed small applications in 5 different languages, each of which connected to five different databases.
- Created normalized schema and metrics for evaluating performance that eliminated as many comparison variables as possible.
- Presented results in website format.

Ear to Ear

Implemented hearing instrument streaming configuration software.

- Designed solution across all vertical application layers.
- Setup reading of information from devices and configuration files.
- Created user experience in accordance with current best practices.

EasyMoq

Created an open source extension of the Moq utility for easy dependency mocking.

- Used C# extension methods and reflection to extend the native Moq API.
- Made project public on github and accepted any pull requests.

Feedpaper

In the process of implementing open source web app to scrape RSS feeds and display them in newspaper-like format.

- Uses ASP MVC, Github and App Harbor.
- A fun pet project for when I have a bit of spare time.

WPF User Controls

Designed a series of reusable user controls for a feature-rich desktop application.

- Designed controls extensible enough for broad reuse by other developers.
- Made use of dependency properties and XAML binding to allow maximum flexibility for client code.
- Overrode control templates or wrapped existing controls in user controls as situation dictated.
- Delivered ahead of schedule, allowing me to provide assistance to clients in how to use.

Proprietary Salesforce/Apex Development

Custom Salesforce development with Apex for a client

- Implemented MVC-driven Apex logic
- Worked within security constraints to display anonymized aggregate information.

Database Evaluation

Implemented an interactive PHP calendar for a Content Management System

- Created an independent module that fit seamlessly into an existing system.
- Created a normalized MySQL schema for maximized flexibility and extensibility.
- Worked in a distributed environment and effectively managed deadlines and source control considerations.

Home Automation

Created a fully functional and integrated home automation system.

- Wrote low level code to interact with home electricity and automation devices using the X10 protocol.
- Architected and implemented a web server that drives the home automation system.
- Configured and programmed an assortment of hardware, computers, and remote devices to facilitate a system for controlling lights, music, and other functionality throughout the house.

Proprietary Financial Application

Implemented a series of pages and controls for a major financial application.

- Contributed to refinement of underlying development framework.
- Completed all tasks on or ahead of schedule and under budget.
- Extracted common logic for reuse by other developers

Machine Base

Maintained a database application for tracking customer subscriptions

- Managed software development through two major releases and many minor releases.
- Continued to satisfy new requests on schedule in spite of drastically increased scope from original design.
- Successfully managed stakeholder expectations that were not necessarily compatible and kept everyone satisfied with the application.
- Eventually architected and oversaw a new version of existing software.

MS Test Report Generator

Architected and implemented a utility to read MS Test XML results files and generate formatted HTML reports.

- Used XDocument model to create a consistent data access abstraction for HTML and XML, allowing fluid translation between persistence formats.
- Created a tiered architecture using data access, domain, and service layers to allow application extension to other storage and reporting formats.
- Made use of IRepository pattern to facilitate persistence ignorance.
- Took advantage of flexible design to provide nearly 100% code coverage with unit tests.

No Exception

Implemented an open source library in C# for providing the no-throw guarantee.

- Created wrappers for common C# classes and literals that guaranteed no throwing of exceptions.
- Designed classes to supply customizable, sensible defaults for behavior and return values in situations where exceptions would have occurred.
- Designed the implementation to be extensible in that others can build on the no-throw guarantee classes to implement no-throw in more specific situations.

PCS 2.0

Oversaw initial rewrite phase of a legacy accounting application.

- Created architecture and relevant artifacts for implementing version 2.0 of a legacy application.
- Setup J2EE, Spring framework and development environments for team collaboration on the project.
- Maintained initial, aggressive schedule, even absorbing periodic resource re-allocation and requirements creep.

Autotask Project Status

Created a custom app for managing project status in Autotask

- Designed scheme for resolving Autotask "UDF" fields to strongly typed, DTO-capable primitives.
- Created CRUD-mimicking infrastructure for interacting with Autotask web service.

Proprietary Salesforce Customization

Implemented a series of Salesforce customizations

- Configured email/web interface with existing Salesforce installation for cases.
- Enhanced and expanded existing schema to support new workflows.

Software Control System

Collaborated on supporting control systems for mail sorting machinery.

- Wrote deployment and maintenance scripts for configuration management in production.
- Implemented protocols over TCP/IP, Serial and IDE for supporting a variety of devices.
- Automated common configuration tasks to allow greater software flexibility.
- Modified Linux kernel and kernel modules as needed to support high precision device communication.

Data Store Editor

Architected, designed, and led implementation of an application meta-data configuration tool.

- Setup architecture, dependency graph, IoC container, source control, and all other project overhead.
- Led and coordinated a team of 8 people in the implementation.
- Sustained 100% unit test coverage and excellent static analysis marks throughout development, keeping defect counts minimal and user story completion on track.

Mail Sorter Simulator

Designed a system to exercise control system for industrial machinery.

- Collaborated on circuit schematics for hardware design.
- Designed and implemented software protocols for TCP/IP, Serial, and custom IDE card driver testing over hardware lines.
- Architected and implemented both kernel space and user space application for driving hardware simulation.
- Used results generated to help refine and enhance implementation of machines under test.
- Successfully unified different concerns across a variety of languages of implementation and layers of software using IPC, multi-threading and shared kernel memory.

Test and Evaluation Server

Created a web application allowing industrial machinery testers to manage test execution and results.

- Using J2EE and Spring Framework, architected and created a system that replaced paper based test recording.
- Developed iteratively, receiving positive feedback at all stages from stakeholders.
- Deployed to production without any show-stopper issues, even in Beta.

Autotask Ticket Merge

Implemented custom app to allow Autotask tickets to be merged

- Wrapped Autotask web service using repository pattern.
- Abstracted inconsistent API to allow transparent manipulation of different entity types.
- Delivered under budget and ahead of schedule.

Tinnitus Sound Generator

Designed and implemented a module for hearing aid fitting software to support tinnitus sound generation.

- Designed and implemented new functionality for an existing application with minimized mutual dependencies.
- Created a testable, dependency injected design with over 80% code coverage.
- Introduced a conceptual service layer to an application that was formerly binding GUI elements directly to domain objects.
- Implemented object communication and validation schemes that served as a template for minimizing coupling elsewhere in the code.

Custom SCS

Maintained software that powered enormous production mail sorting operation.

- Successfully implemented enhancements and defect fixes in spite of taking over in a situation with no test environment or deployment process.
- Created a test environment and deployment process to make future changes go more smoothly.
- Delivered results on time and with good feedback, even having to develop on-site in a high pressure situation with no room for error.
- Introduced version control to help standardize releases and ensure quality and configuration management.