Résumé

Current

About

I hold a BS in Computer Science from Gonzaga University and was an MS candidate in Computer Science at Temple University specializing in high performance, high availability, fault tolerant cluster computing. I am an open source advocate publishing a number of my own projects and contributing to several others. I host and am an admin for Spokane .NET User Group web site. When not working on my LCD tan, I enjoy playing basketball and tennis.

Master Code Ninja, IntelliTechture

December 2009 to Present

Owner, Innovatian Software

October 2009 to Present

Contributor, Maintainer, Extension Author, Ninject Project

September 2007 to Present

Ninject is an open source dependency injection framework for .NET applications targeting .NET 3.5, NETCF 3.5, Mono 2.0 and Silverlight 2.0 and 3.0.

Author, Innovatian.Configuration

Innovatian.Configuration is a configuration unification library consolidating data access for XML files, .NET configuration files, isolated storage, windows registry, and ini files. It supports hierarchical resolution and macro expansion along with a power type conversion facility to load and save strongly typed data.

Author, Eeyore.Bits

Eeyore.Bits is a Background Intelligent Transfer Service (BITS) .NET wrapper. It integrates BITS 1.0, 1.5, 2.0, 2.5, and 3.0 interfaces in managed wrappers for the creation and management of BITS jobs.

Previous Experience

Senior Developer, PLAYXPERT

December 2007 to December 2009

  • Implemented application capable of being rendered in a game during full screen exclusive mode and enable the redirection of input to the client application.
  • Implemented continuous integration system, automated testing and code analysis.
  • Designed multi-process extension loading system to allow process isolation of loaded extensions.
  • Founded and ran SQA in the organization.
  • Created project SQA processes and reported on areas for improvement and identified processes that need to be defined.
  • Fixed windows miniport display driver bugs.
  • Team lead for widget development, client development, and kernel development teams.
  • Designed and implemented widgets/extensions including VOIP clients, RSS feed reader, audio playback, game detection and session management, TwitterTM, system diagnostics, and more.
  • Implemented several proprietary .NET controls with custom rendering.
  • Held final hiring say for candidates in PLAYXPERT and its consulting division.
  • Designed IPC mechanisms for cross application communication.
  • Migrated application to run as a native x64 or win32 application depending on environment.
  • Created product installers and bootstrapping installers using InstallShield, Setup Factory, and MSI Factory.
  • Created managed wrappers for unmanaged C++ and Delphi APIs and COM interop libraries with full x64 and x86 call/structure compatibility.
  • Designed game detection markup language grammar and implemented token processing system.
  • Hired, trained and mentored the team for writing widgets, designing application extension points, writing unit tests, refactoring, estimation, and using source control management systems.
  • Performed memory and performance profiling to optimize application performance and minimize system impact while in-game.

Software Developer, Traffic.com/Navteq/Nokia

May 2006 to November 2007

  • Performed analysis, design and development of software products Nexgen and Jamcast. Nexgen allows for the creation of 2D and 3D virtual worlds with live traffic. Jamcast is an automated solution that runs twenty-four hours a day using the same data, 2D, and 3D worlds as Nexgen, but builds video reports with full audio. Jamcast comes in two modes; a television station will have a Jamcast system which is composed of a main machine to run the Jamcast application as well as a video production machine which processes the video output for television and web. The second kind is the Jamcast cluster which generate reports for many cities and which are available on the Traffic.com web site. The Jamcast cluster is written in C# and C++/CLI and is actually a suite of distributed applications working together using raw sockets, http, and .NET remoting.
  • Created a build system automating integration builds, unit tests, and creation of deployment packages.
  • Demonstrated the effectiveness of test driven development to shorten development time and increase product reliability.
  • Identified and removed performance bottlenecks and memory leaks through application profiling and analysis.
  • Designed a traffic vocalization system to turn generic traffic data into audio.

Graduate Student, Temple University

September 2005 to March 2007

  • Implemented Stateless Parallel Processing Machine (SPPM) prototype using .NET technologies including sockets, remoting, named pipes, and COM.
  • Designed features and protocols for the SPPM system.
  • Developed a unique, high performance, bidirectional remoting system in C#.
  • Prototyped multi-core parallel markup tag and function to parallelize code over multiple cores.
  • Demonstrated the ability to verify the correctness of parallel applications without running the executables using aspect oriented techniques.
  • Designed a process to simulate a cluster of nodes for the testing of parallel applications