Experienced full-stack developer with an appreciation for great software!

Languages

  • C#
  • HTML
  • TypeScript
  • JavaScript
  • XAML
  • CSS
  • SCSS
  • T-SQL
  • MySQL
  • PowerShell
  • JSON
  • XML

Web

  • ASP.NET Core
  • WebAPI
  • MVC
  • Angular 2+
  • AngularJS
  • REST
  • SOAP
  • JQuery
  • Bootstrap

Desktop

  • WPF
  • Windows Forms (WinForms)
  • Avalonia
  • WiX Toolset (Setup Projects)
  • Windows Services

Database

  • Microsoft SQL
  • SSRS
  • SSIS
  • MySQL
  • MariaDB
  • Sybase ASE 12.5

Tools (IDEs, etc.)

  • Microsoft Visual Studio
  • SQL Server Management Studio (SSMS)
  • vscode
  • vi
  • Azure Data Studio
  • IntelliJ-based IDEs
  • SQL Profiler
  • Fiddler
  • Beyond Compare

Frameworks / Libraries

  • .NET Framework
  • .NET Core
  • Entity Framework
  • AutoMapper
  • AutoFac
  • Caliburn.Micro
  • Service Fabric

Source Control

  • Azure DevOps (Git)
  • TFS (Git and TFVC)
  • Git
  • Subversion
  • SourceGear Vault

CI / CD

  • Azure Pipelines
  • CruiseControl.NET

Operating Systems

  • Windows 10 Pro (and earlier)
  • Windows Server 2016 (and earlier)
  • Linux (Ubuntu, Debian, Slackware, Raspbian)

Varis LLC Sep 2019 - Present

Senior Software Developer

Responsible for building full-stack software solutions to handle a large volume of incoming documents.

Highlights

  • Utilized C#, Azure Service Fabric, Docker, and OCRmyPDF (Tesseract) to process a large continuous volume of image-based PDFs to make the text searchable
  • Built a Service Fabric micro-service that will bypass certain legacy processes, based on the state of the incoming PDF documents
  • Wrote a WPF-based PDF/TIF annotation editor using the AtalaSoft DotImage (WinForms) control. The WPF components utilize MVVM and Dependency Injection enabling nearly 100% code coverage.

BitCollectors Sep 2011 - Aug 2019

Software Consultant

Started BitCollecters with his wife in 2011 where their shared expertise in the software industry has been utilized to help several clients implement new custom software solutions or maintain existing ones.

Highlights

  • Created a new software product for the company RAP (Resource Action Program) to manage inventory, clients, and shipments. Was responsible for designing and implementing the back-end architecture using SQL Server, ASP.NET Web API, and Onion architecture principals. Also handled the majority of development and architecture with the front-end Angular project.
  • Handled the creation of various proof-of-concepts for the CEO and CIO of LifeMed ID, including integration of several biometric hardware SDKs into the WPF front-end. Also created an Android application using the Android SDK which could be used by healthcare providers and their patients to accurately identify patients. Regularly created UI and input automation scripts to automate patient searches within legacy EMR system UIs.
  • Worked with the project manager of Maranatha: Volunteers International to build a system that is used for managing dozens of major construction projects each year. The application is utilizing Angular JS, Microsoft SQL Server, and ASP.NET Web API.

LifeMed ID Sep 2008 - May 2015

Lead Software Engineer

Led the development of a hospital registration application called LifeMed ID. The application is a "bolt-on" product that sits on top of their existing EMR software. It enables healthcare providers to register and issue identity tokens (smart cards, magstripe cards, biometrics, etc) to their patients to streamline future visits and positively identify the patient.

Highlights

  • Built the original core product from the ground up. Originally, it utilized .NET 4.0, ASMX web services, Windows Forms, and Microsoft SQL Server. It was eventually migrated over to WPF and Web API (RESTful web services).
  • Created and managed a Windows Service application that handled the printing and encoding of patient identification tokens (as a shared printer). It supported the printing of smart cards, magnetic stripe cards, or patient wristbands with a QR code. It included a WinForms UI that communicated directly with the service through IPC / named pipes. The UI offered configuration options, showed a live log, details on the active card being printed, and a print queue.
  • Wrote an auto-updater application that handled the automated deployment of our software to hundreds of users. It utilized a back-end Windows Service to manage the downloading and copying of files to the users workstation, while displaying a UI to show the current status to the user. The service communicated with the UI through IPC / named pipes. The UI would also prompt for the license key and store it with the service configuration to determine which set of files the client needed. File updates were determined by comparing file hashes on the server with local hashes on each workstation.
  • Created an internal card layout design tool for visually creating the card layouts used by customers to print patient cards. Field positions such as X and Y positions and Z-order were defined in the database for elements such as patient photo, name, medical record #, etc. This provided a WYSIWYG (what you see is what you get) UI that allowed staff to easily move the objects around and visualize the card design.
  • Created an input automation library using C# to call Win32 API functions to simulate keystrokes and mouse clicks (User32.dll \ SendInput). Automation steps were defined in a script (XML) that allowed for macros to be declared, along with conditional blocks. This is one of the core features of LifeMed. This component enables LifeMed to automate just about any legacy EMR UI.
  • Created an internal tool for developing the XML automation scripts. It utilized AvalonEdit for syntax-highlighting and allowed staff to run the script with the same core libraries LifeMed used so debugging could be done without needing to have an entire LifeMed environment setup and configured on-site prior to developing and testing the script.

SN Servicing Corporation Mar 2007 - Jul 2008

Software Engineer

Sacramento Sheriff's Department Aug 2006 - Mar 2007

Web Developer

Axiom Analytix Jul 2005 - Aug 2006

Software Engineer

e.Republic, Inc Dec 1999 - Oct 2004

Web Developer