EMPLOYMENT

Innova Solutions
St Louis, MO
2018 - 2023

I have been at Change Health Care working on various projects providing expertise to the product support team.

  • Configuration Management role, where I monitored the daily builds and deployed to the evnironments for testing.
  • Setup a Jenkins build process. I created the deployment packages for deployments to Production.
  • Configure and setup user access to tools (GitLab, Jira, Confluence)
  • Provide support to Product Support Team by updating and providing new monitors for the production system.
  • Research and correct production related issues.
  • Manage user access to development systems.
C#, VC6, VB6, Delphi6, FoxPro, Ruby, Python, Perl, COM, XML, SQL, Agile, Scrum, Kanban

Randstad
St Louis, MO
2016 - 2017

I was a contractor at Centene working on various projects providing C# and Web API expertise to the development.

  • My initial project was assisting in a C# proxy which accepted requests from the new Pega CRM system as REST API calls and interfaced with multiple backend data sources using additional Web APIs and SQL to collect the data required in the requests. I added additional end points for retrieving data from other Web APIs.
  • I provided assistance and guidance for a Web API implementation that was created by an intern at Centene. This included showing debugging techniques and general coding guidance. The purpose of this project was to give the intern a real world project and in the end provide Centene a starting point for future enhancement.
  • I wrote a replacement image viewer which would locate the stored documents in one of multiple locations. This was written as a Web API called from a web page. The service would query a SQL database for possible images to view and then locate the images in one of two different Web API sources. Part of this was a handler that would convert the retrieved data into a PDF file for viewing.
  • I updated a data import application to increase throughput and reduce errors in processing. The performance increase was done by adding async processing where profiling determined it would provide the best benefit. This was an application that synchronized data from an external data source updating the currently stored information. The external data source provided the updated information in XML format and the currently stored data was in a Microsoft CRM application.
  • Assisted in setting up continuous builds and deployments using Jenkins. Builds and deployments were performed after a checkin of source code. These were deployed to the development environment.
  • Created an automated test of builds and deployments, also automated the generation of sanitized data to use for testing and validation.
  • Created a Proof Of Concept Web API to be used by MicroStrategy for use as a reporting API. This was a WebAPI that MicroStrategy called which called other WebAPIs and merged the data for use in MicroStrategy reports.
C#, Web API, REST, Agile, Scrum, JSON, XML, SQL, XFDF

Technology Partners
St Louis, MO
2013 - 2016

I was a software developer contracted to Boeing.

  • Firmware loader updates in C++. Windows XP embedded system using a Web CGI application written in C++ to update the electronics on F15 jets. Added the additional functionality to support ARINC 615A data loading protocol, this required implementing a multithreading TFTP server in the CGI application. Also updated a load protocol using the NFS file system for transferring files.
  • Ancillary computer system software written in C#. Handler wrappers written in C# to control special instruments and hardware used for testing F18 avionics. Implemented a plug-in architecture to provide custom implementations. Commands received from RPC calls originating from test programs on VMS to control custom instruments and hardware. Hardware controlled included Cisco Switches, Geist PDU, VNA, and RFIU. Provided API’s to communicate over Ethernet, RS232 serial communications, and VISA (Virtual Instrument Software Architecture). Provided ability to reset hardware back to factory defaults and then reconfigure for actual use. This project used the SI2 system (below). With the custom protocols I also used SNMP and RestAPIs for communicating with devices.
  • Remote Procedure Server written in C++. Provide a RPC system to allow communications between computer systems, primarily VMS and Windows. Created .Net and C libraries for Windows and C library for VMS. Implemented as multithreaded Windows service using TCP as communication between clients and service, also used TCP for communications between service and handlers. Allowed for multiple client controller applications to control multiple handlers.
  • TestStudio System, MACKit, updated to run on Windows 7 from Windows XP. Tested and updated Visual Basic and Visual C++ COM add-ins for the TestStudio application. Found and corrected problems in the MACKit running under Windows 7 with the latest version of TestStudio.
  • Various smaller projects which included: Reviewing a 20 year old 'C' program to find differences in output with the C# replacement; Using OCX controls in Internet Explorer without installation on Windows 2000.
C, C++, C#, TCP-IP, HTTP CGI, COM, JSON, SNMP, RS-232, XML, REST, COM, VB6

Quest Software
St Louis, MO
2000 - 2013

Foglight Transaction Recorder (FTR) is a native Win32 Windows application which makes heavy use of COM using MFC and ATL. It is primarily written in C++ with some C# and Java components. I wrote the client side to record the user actions and talk to a web service for publishing files to server. Using network capture libraries I did network packet parsing, primarily HTTP traffic extracting timing information.

  • Record user interactions in a hosted Internet Explorer control from a MFC application. This included using Windows Hook functions to monitor keyboard and mouse events.
  • Publish recorded scripts to server using SOAP web services. This was done with a C# module called from the MFC application. The scripts were stored in a XML file
  • Replay user interactions in a hosted Internet Explorer control from a Windows service on a schedule. This was done allowing multiple scripts to be executed on different schedules, each potentially as a different Windows user, and each accessing a different website.
  • Java process to interface with Quest Foglight. One was running as a Windows service providing the communications between the local FTR service and the Foglight Server running on a remote computer. Another was running on a Linux computer providing the communications between the network switch monitors and the Foglight Server.
  • Code generation from XML configuration files to create JNI interfaces to run on Linux. This was a C# application that read an XML file and wrote C language source files to a JNI interface that was built and called on Linux from a Java application.
  • Scripted the creation and usage of Virtual Machines running on Hyper-V to allow testing multiple versions of Windows with multiple versions of Internet Explorer. Virtual Machines were hosted in Hyper-V.
C++, C#, JavaScript, PowerShell, MFC, COM, XML, HTTP, SMTP, SOAP, Java, JNI, Window Batch

Personal Projects
St Louis, MO
1984 - Current

I have always had computers at home that I use to work on projects that interest me. Here are some of the things I have played with.

  • Network Management - I have a complete Windows Enterprise network configuration in my home that I use for learning and testing the various Microsoft Servers. This includes an Exchange Server, IIS, SQL Server, Operations Manager, and others. While there is only one user in the 'Enterprise' it does provide a learning environment.
  • HTML - Scraping dog show schedule from the AKC website to create a personal list of shows within a specified distance from my house. This included one part that would submit the search page on the AKC website, parse the returned 'HTML', and store the events in a SQL Server database. A separate webpage would query the database and generate a list of events within a specified distance.
  • SPAM Filters - Various ways of flagging SPAM in email. Running my own email server on my personal domain I have had to create simple SPAM filters through the years.
  • Websites - I create and maintain websites for local dog clubs for a minimal cost (if any). I use different technologies on each one which gives me a chance to see how they are used. This includes FrontPage, ASP, ASP.Net, and others.
  • Resume Generator - I created a library that will read an XML file and create a formatted resume in WordML format. I use the same XML file to generate the resume page on my website.
  • IoT - Using Raspberry Pi computers with temperature sensors I get the temperature inside my house in various rooms and send the values to a webpage that records the values into a SQL Server database. Then there is a page that displays a chart of the recorded values.
C#, Web API, REST, SOAP, RS-232, C++, JSON, XML, SQL Server, IoT, SMTP, SNMP, HTTP, ADO, ASP

EDUCATION

Austin Peay State University
Clarksville, TN
Bachelors of Science Degree - Information Systems Option

Embry-Riddle Aeronautical University
Individual Mathmatics Course

MEMBERSHIPS

ACM
Member

IEEE
Member

Great Dane Club of Greater Saint Louis
Board Member

St Charles County Kennel Club
Secretary

Download WordML Version