Principal, Software Engineer
Co-owner of a software development consulting firm. Ongoing projects include training on CMMI and infrastructure upgrade development and support.
The RND Group, Indianapolis, Indiana
January 2003 - March 2006
Responsible for development of the results export module,
the assay sequencing module and the on-board fluids inventory module for
an automated nucleic acid testing instrument that screens for a variety of
blood-borne diseases. The export module provided a mechanism for the
instrument to receive test requests from and to transmit test results to a
laboratory information system (LIS) either via data files or using serial
communication and the ASTM LIS protocol. The system was initially developed
for Windows NT, was later deployed on Windows XP, and was localized to
six languages. It was designed as a set of modular components, and implemented
as COM objects using Visual C++ 6.0 and Visual Basic 6.0.
Developed a hotel high-speed Internet access system
following the Linux-Apache-MySQL-PHP (LAMP) methodology. The system was
designed as an open-source solution for hotels to provide high-speed
Internet access to their patrons both in their rooms and throughout the
common areas of the hotel. The system provided a tiered pricing structure
that operated off of a rules engine that could be customized for each hotel.
Configuration was via an administrative web interface. The system was
implemented completely with open-source software including Fedora Core 1,
Apache 2.0, MySQL 4.0, PHP 4, and GNU gcc.
Implemented an automated build process that
integrated with Visual SourceSafe to perform builds on a scheduled basis.
The process verified that newer changes had been checked into SourceSafe since
the last build, checked-out all of the relevant code, built all of the
affected modules and compiled the InstallShield project for each product.
The build process used a combination of NAnt, NUnit, and C#, and featured
integration with InstallShield's Standalone Build utility.
Developed a website for a wearable body monitor used to
monitor weight loss progress. The body monitor was for sale directly to
consumers, as well as being offered by physicians to their patients.
The website consisted of an e-commerce site for the promotion and sale of
the body monitors, an administrative site to allow physicians to view
and organize their inventory of body monitors and a site that allowed
users of the device to upload the data from their device, to customize
their weight loss goals, and to track their progress toward those goals.
The website was developed according to the J2EE architecture using IBM
WebSphere with Oracle as the database platform. The development
environment was Windows XP with WebSphere Studio Application Developer.
The production environment was hosted on servers running the AIX
Developed an NT service to transfer data from a
high-speed printing press management system to an industry standard
reporting system. The NT service was written in Visual C++ 6.0, used
Orbix 2.3 to access CORBA-based distributed objects, applied operational
rules to the data that was retrieved and sent a translated data stream
to the management system using UDP sockets. The operational rules were
stored in a Microsoft Access database for ease of use at the client site.
Sallie Mae (formerly USA Group), Fishers, Indiana
August 1999 - December 2002
Extended the data retrieval system created earlier
in this contract to use IBM's MQ Series to communicate to a central
data engine. The new system uses a custom-designed C++ DLL that
manages a pool of MQ client connections for synchronous request-reply
communication. The data format is variable-length, text-delimited
messages. There are eleven Windows NT servers spread across three
geographic regions using this DLL to communicate with the central
data engine. The central data engine is a stateless, multithreaded
server written in Java running on four Sun Microsystems Enterprise
servers. It uses CORBA-IIOP to communicate with the Legacy Integration
Server (LIS) that was previously developed for access to Sallie
Mae's customer databases.
Developed an application server that will contain
the business objects for a distributed call center. The application
server is written entirely in Java and is being designed with CORBA
as the communication mechanism. The call center client application
is a Visual Basic program that communicates with the server through
CORBA-IIOP using a COM-CORBA bridge. The business objects in the
server communicate with two mainframes, two Sybase databases and
an Oracle database using the Legacy Integration Server (LIS) that
was developed previously. The CORBA implementation is Iona Technologies'
Completed development started by another contracting
company on a Legacy Integration Server (LIS), which is being developed
as the standard access mechanism for data residing on USA Group's
legacy data systems. It is a stateless, multithreaded system written
in Java. It has a CORBA client interface and uses JDBC, fixed-length data
records over MQ Series, and XML data through WebServices as the
communication layers to the legacy databases. The server communicates
with two mainframes using IBM's MQ Series, with Sybase SQL Server 11
and Oracle 8 through JDBC, and with a proprietary set of COM services
through WebServices. The CORBA implementation is Iona
Developed a set of applications to run under Windows
NT Server 4 to allow an Intelligent Voice Response System (IVR)
to access mainframe data via Sybase DirectConnect. The components
are a custom DLL, written in Visual C++ 6.0, which communicates
through shared memory to an NT service, also written in Visual C++
6.0. The DLL has C-style entry points so that it can be called from
non-C++ applications. The NT service is a multithreaded application
which consists of a dispatcher thread to handle incoming requests
and a pool of worker threads which interact with DirectConnect to
fetch the data, perform business logic and return the results. This
system was replaced with the MQ Series-based system mentioned above.
Baker Hill Corporation, Carmel, Indiana
August 1997 - August 1999
Lead developer on a loan origination and approval
system for the business banking industry. The core system is a client/server
application written in C++ and MFC that uses either e-mail or Message
Queues for communication and sits on top of an Oracle or Microsoft
SQL Server database. The system can be tailored by the customer
through the use of call-outs implemented in Microsoft Visual Basic
for Applications (VBA). Tools include Microsoft Visual C++, MFC,
ATL, Rogue Wave Tools.h++, Stingray Objective Toolkit Pro and Mystic
River VBXL PowerPack. Platforms include Windows 3.11, Windows 95
and Windows NT.
Software Artistry, Inc., Indianapolis, Indiana
July 1995 - August 1997
Senior Software Engineer
Designed the next generation architecture for a
suite of products based on distributed objects in C++ and Java with
CORBA as the communication layer. Architecture allowed for a highly
distributed environment encompassing clients and servers on a multitude
of platforms including Windows NT, Windows 95, Solaris 2.x, AIX,
and HP/UX. Tools included Microsoft Visual C++, Java, Object Space
STL<Toolkit> and IONA Technologies Orbix, OrbixWeb and OrbixTalk.
Administrator for a small network of Sun workstations
running Solaris 2.4 and HP 9000 workstations running HP/UX 10.x.
I-NET, Inc., Fairborn, Ohio
September 1991 - July 1995
Lead Software Engineer
Project leader for a DOS/UNIX based client/server
system using multiple databases to track and manage Military Justice
Proceedings for the United States Air Force. Tools included Microsoft
Visual C++, GNU g++ and Informix. Environments included DOS, UNIX
System V R4, SunOS 4.1.x and Solaris 2.x.
Developed a client/server application to support
Item In-Transit Visibility for the U.S. Air Force Logistics community.
The system tracked and displayed approximately 80 million Air Force
and Commercial Carrier transactions per month. The entire system
was written in C under Solaris 2.x.
System Administrator for several Sun servers running
a combination of Solaris 2.3 and SunOS 4.1.x. Also supported one
AT&T 3B2 running AT&T System V R4, one PC running Solaris x86, two
Sun 3/50 diskless workstations, several X-terminals, IBM PCs and
Eastman Kodak Company, Kettering, Ohio
August 1986 - August 1990
Student Engineer under Purdue University's Cooperative
Education Program. Developed many applications in C to automate
testing of prototype hardware for ink-jet printers. Project leader
for the design of a high-speed interface to synchronize multiple
printers on a commercial printing press. Development was done in
C under DOS, Windows, XENIX, and QNX.