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.
Microsoft C# MVP, April 2012 to Present
Code Dude, IntelliTect December 2009 to Present
- Implemented smart grid systems integration for public utility demonstration project.
- Implemented continuous integrations systems.
- Designed and implemented .NET API for LINQ to ESRI ArcObjects (COM, Oracle).
- Created web services providing meter read data to customer web portal.
- Integrated AMR metering systems propagating updates from the system of record to each external system.
- Performed multi-tier service benchmarking, bottleneck isolation, and implemented performance fixes.
- Implemented ETL process handling up to 500GB daily.
- Optimized build processes for application groups.
- Created tooling for metering specialists to monitor substation equipment in real time.
- Performed code reviews.
- Paired with client developers to implement features and train team members.
Owner, Innovatian Software October 2009 to Present - Software consulting to help software shops optimize their development processes.
Columnist, Open Source .NET, Visual Studio Magazine April 2011 to May 2012
Open source contributor and advocate. 2005 to Present
See the Projects pages for information on my various project work.
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
This page can be viewed as as a document and saved as a PDF.