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.
Counts Estimator
Designed a tool for forecasting margins when using industrial machinery.
- Architected and oversaw implementation of a tool to help industrial machinery customers project their margins over the lifetime of the machinery, including initial ROI.
- Provided a valuable tool to corporate sales team for helping customers select the best machinery for their needs.
- Successfully followed an iterative and agile release schedule to provide as much up front utility as quickly as possible.
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.
Fluent SQL Generator
Wrote small open source utility as a fluent interface for generating SQL where clauses
- Implemented with fluent, readable semantics in mind.
- Voluntarily used by other developers to replace a more outdated system.
- Was genuinely fun to write and helped me practice use of composite design pattern.
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.
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.
IlliniGroup
Created a web utility for automating college class group formation.
- Implemented a user-friendly PHP front end for prospective students.
- Backed the utility with a sophisticated MySQL implementation, including XSS and SQL injection attack prevention mechanisms in front end code.
- Added a machine learning algorithm for calculating optimal prospective group compatibility.
- Was awarded a computing habitat competition award for the finished product.
INI Generator
Created a configuration management scheme for software with complex settings.
- Initiated an effort to manage configuration complexity for a highly customizable production application.
- Finished product significantly reduced the time needed for techs to perform installations by reducing the amount of configuration necessary by over 80%.
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.
Manpower Loading Forecaster
Created a custom database application for tracking resource allocation in an engineering department
- Architected and implemented a well-received product for less than the cost of purchasing comparable products out of the box.
- Managed the software through dozens of minor and two major release cycles.
- Successfully contributed to significantly increased efficiency as a result of new ability to plan and forecast resource allocation and budgeting concerns.
Maxisort
Took over a legacy mail sorting application and adapted it to current requirements.
- Resolved all outstanding issues within a short time frame for existing customers.
- After clearing out backlog, implemented new requirements as needed.
- Rewrote complex mail sorting analysis algorithm to comply with new sorting standards.
- Enjoyed success in roll out of analysis rewrite without any show-stopper issues reported from the field.
Mediawiki Installations
Setup multiple mediawiki installations on corporate intranets.
- Created custom wikis for internal knowledge sharing and collaboration.
- Customized the wikis to have corporate branding and common navigation.
- Modified settings to create a richer experience with file sharing and integration with other corporate tools.
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.
Netsort
Collaborated on software interface for industrial mail sorters.
- Designed interoperation modules for exporting sortation data into accounting modules.
- Created and maintained a scheme for digital rights and subscription management.
- Analyzed database schema to improve indexing and retrieval efficiency.
OBD Reader
Created a utility to allow lay-people to read car OBDII
- Collaborated on a tiered architecture for taking information received from a serial port connection and propagating results up to a visually appealing UI.
- Followed Rational Unified Process development model.
- Implemented a test harness with high coverage in NUnit.
- Delivered well-received project ahead of schedule.
Intellectual Property Database
Created a database application for managing corporate intellectual property information
- Architected and designed from scratch a system for managing intellectual property information for a company with hundreds of active patent applications.
- Supported groups of users throughout all phases of the SDLC including many release iterations.
- Generated extensive reporting and and usability enhancements in response to popular desire for software extension.
PCS
Overhauled an accounting application for customers in a niche market
- Received an existing application that had badly outgrown its initial design and successfully refactored strategic parts without rewriting to make it flexible.
- Made UI, performance, and security enhancements that led to a doubling over the customer base.
- Integrated refactoring efforts seamlessly with new development efforts.
- Participated in enterprise installations and customer training in software use.
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.
Proc++
Created a version of Windows Process Manager for Linux.
- Designed and implemented an open source utility for displaying Linux process and system information in a similar format to Windows.
- Enhanced initial offering with remote capability for managing servers over TCP/IP and with proper permissions.
Scholarship Finder
Collaborated on a web engine for locating scholarship information for students
- Collaborated on a tiered architecture for a web crawling utility.
- Architected backend data storage and server side code.
- Mined over 50,000 different scholarships for display to users.
- Created crawling engine robust enough to handle cosmetic changes to target site layouts and formats.
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.
USB Utils
Implemented a troubleshooting tool for field service technicians
- Designed and implemented a tool used by technicians that service industrial machinery.
- Enhanced tech productivity by automating the process of gathering remote machine logs and other diagnostic information for machines not connected to the network.
- Created a system robust enough to handle different and sometimes unknown hardware configurations.
- Received frequent feedback from technicians that the tool was one of the most useful in their software "toolbox".
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.
OS Xerox
Created a utility that allowed an OS to virtualize itself.
- Created a series of C utilites that, run in conjunction, would allow live virtualization.
- Successfully implemented the entire tool on a machine running a small Linux core.
- Delivered a concept that would allow users to create a "playpen" for changing system settings or experimenting to see what would happen before doing it on the actual, running OS.