Experienced full-stack developer with an appreciation for great software! Specializes in Microsoft-stack and JavaScript/TypeScript development with Angular.

Languages

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

Web

  • ASP.NET Core
  • Angular (2 - 13)
  • WebAPI
  • MVC
  • 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

Frameworks / Libraries / APIs

  • .NET 6
  • .NET Core 3.1
  • .NET Framework
  • Entity Framework
  • Azure Service Fabric
  • AutoFac
  • Microsoft Graph
  • NativeScript
  • Moq
  • AutoMock
  • MSTest
  • NUnit
  • MediatR

Tools (IDEs, etc.)

  • Microsoft Visual Studio
  • SQL Server Management Studio (SSMS)
  • VS Code
  • vim
  • Postman
  • Azure Data Studio
  • Android Studio
  • WebStorm
  • SQL Profiler
  • Fiddler
  • Beyond Compare

Version Control / CI / CD / Project Tracking

  • Azure DevOps
  • Azure Pipelines
  • TFS (Git and TFVC)
  • Git
  • Jira
  • Confluence
  • TeamCity
  • Octopus
  • Subversion
  • SourceGear Vault
  • CruiseControl.NET

CLI

  • git
  • npm
  • dotnet
  • docker
  • docker-compose
  • ng
  • tns
  • wsl
  • bash
  • pwsh
  • cmd
  • webpack
  • bower
  • pip

Operating Systems

  • Windows 11 Pro (and earlier)
  • Windows Server 2019 (and earlier)
  • Linux (Ubuntu, Debian, Slackware, WSL)

Alogent Apr 2021 - Present

Senior Software Engineer

Worked on several features for Alogent's next generation online banking product for Credit Unions and managed a customer implementation.

Highlights

  • Led a small team of developers and managed a credit union implementation and rollout for a customer in Ohio with over 32,000 members.
  • Participated in (Agile) Scrum ceremonies and performed monthly sprints.
  • Worked on our next generation product using .NET 6 and Angular 13.
  • Used Jira to manage stories and bugs for myself and my team.
  • Managed CI/CD for my team's customer implementation using TeamCity and Octopus Deploy.
  • Designed and built the credit and debit card controls backend for Alogent's NXT product.
  • Implemented a new mobile check deposit vendor integration.
  • Helped define and generate JSON translation files for internationalization of the application (i18n).
  • Implemented Microsoft Office 365 OAuth support into our product for Outgoing Email (using Microsoft Graph) and Incoming Email (Imap w/ OAuth).
  • Utilize TDD, DI/IoC, and CQRS (with MediatR) patterns to produce clean, unit-tested code.
  • Worked on mobile features for Android and iOS using NativeScript.

Varis LLC Sep 2019 - Apr 2021

Senior Software Developer

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

Highlights

  • Utilized C#, Azure Service Fabric, and Docker to build a series of micro-services which converts, OCRs, and processes a large continuous volume of inbound documents (thousands daily).
  • Wrote a .NET 5 WPF-based monitoring/dashboard which displays live status and past stats of the document services.
  • Wrote a WPF-based PDF/TIFF annotation editor using the AtalaSoft DotImage (WinForms) control. The WPF components use MVVM, dependency injection (w/ AutoFac).
  • Used docker-compose to setup a GrayLog, Prometheus, AlertManager, and Grafana dashboard service. GrayLog is now used by all Varis applications and services for error handling.

BitCollectors Sep 2011 - Aug 2019

Software Consultant

Started BitCollecters with my wife in 2011 where our 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 Resource Action Program to manage inventory, clients, and shipments. Was responsible for designing and implementing the backend architecture using SQL Server, ASP.NET Core, and Onion architecture principals. Also handled the majority of development and architecture with the front-end Angular (v6) 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 systems.
  • Worked with the project manager of Maranatha: Volunteers International to build a system that is used for managing hundreds of construction projects each year. The application is utilizing AngularJS, Microsoft SQL Server, and ASP.NET Web API.
  • Managed hosted environments using Microsoft Azure Virtual Machines.

LifeMed ID Sep 2008 - May 2015

Lead Software Engineer

Led the design and development of their core product which assisted with healthcare provider registrations. The system acted as a "bolt-on" service that sat 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 using .NET 4.0, Windows Forms, and Microsoft SQL Server, it was eventually migrated over to WPF with MVVM and Web API (RESTful web services).
  • Created a Windows Service application that handled the issuance of patient identification tokens. It supported the printing of smart cards, magnetic stripe cards, or patient QR-code wristbands. It included a WinForms UI for managing and monitoring the service via IPC.
  • Designed an auto-update system that handled the automated deployment of our software to hundreds of users.
  • Wrote a card layout design utility with WinForms 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.
  • Built a patient portal using ASP.NET MVC, Bootstrap, and JQuery.
  • Created an input and UI automation library using C# to call Win32 API functions to simulate keystrokes and mouse clicks (User32.dll \ SendInput). Automation steps were defined in XML. This was used to facilitate one of the core functions of the LifeMed ID product.
  • Wrote an internal IDE for developing the automation XML. It utilized AvalonEdit for syntax-highlighting and WPF with MVVM. It allowed staff to quickly and easily develop and debug automation scripts.
  • Created a working proof-of-concept application for the Verifone MX915 and MX925 POS devices. The POC allowed smartcard and magnetic stripe patient cards to be read to invoke the LifeMed search automation on the healthcare providers EMR software.

SN Servicing Corporation Mar 2007 - Jul 2008

Software Engineer

Highlights

  • Built and maintained several modules for their internal asset management application. Modules utilized .NET, C#, and CSLA.NET remoting framework.
  • Maintained a BPO (Broker Price Opinion) web portal with ASP.NET

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