↟ Top

About

I am many things, first and foremost. I have a professional life. I have a personal life. I enjoy all things technology. I am a software engineer by day, and by night. I enjoy reading and traveling. I am a husband to a beautiful and wonderful wife.

Professionally, I believe in improving the world through the application of the science and art of software development, with a constant eye to quality and economy. I am stubbornly committed to doing the right thing for people.

Personally, I believe the world is to be explored and life is to be lived. I seek knowledge and wisdom and experience, and share those gifts when I can.

Twitter Stack Overflow Medium
↟ Top

Updates

Reading List

Currently Reading

Bookshelf

↟ Top

Portfolio

LinkedIn GitHub

Guru

Overview

Guru is a knowledge management system for teams. The goal of the software is for knowledge to find you. They have a web application, a Chrome extension, and a Slack integration. The application is written in Java with the Spring framework.

Contributions

Not every team is ready to part with their old knowledge base software. I mainly work on the syncs and migrations feature, allowing customers to sync in data from other systems. They can see their knowledge in both places, and keep it up to date without manually updating twice.

I also contribute to the API and Developer Enablement projects. We are expanding support for our API, opening it up to more customers and adding more functionality. I am working on identifying areas to open up, and documenting the existing and new API functionality.

I participate in additional working groups beyond my main responsibilities. One group focuses on improving our own internal use of our application, organizing our accumulated engineering knowledge. I am working in another group to open up an apprenticeship role in our organization for the fall of 2020.

Thomson Reuters/Refinitiv

Overview

The GoldTier/KYCaaS application is a large legacy application written in Java. It is used by banks and other large financial institutions to understand the risks of working with a given client, and of maintaining regulatory compliance with anti-money laundering laws. Users can work in a traditional Java Applet interface, or in a more modern Web interface. A servlet running in a container handles the immediate workloads, and a separate instance of the application handles deferred tasks. The application makes heavy use of a backing database, one of Oracle, Sybase, or SQL Server. Clients frequently request new features and integrations with third-party APIs. There are also ongoing efforts to fix bugs and modernize the platform.

Contributions

I worked with a team to continue to develop the application, often working with and coordinating the efforts of other relevant teams and individuals. I fixed bugs and implemented features for database management, multithreading, I/O, and integration with other services. I wrote our current implementation of file encryption from scratch to meet GDPR compliance for personal information. It securely encrypts files on disk while transparently decrypting them when they are read. The implementation continues to support reading from files that are unencrypted and encrypted with a legacy algorithm in an equally transparent and modular manner.

I spearheaded the effort to write unit tests around legacy components. I set up the relevant tooling and standards, and presented a educational session on how to write good tests. With tests now in place, we are able to guard against regressions and bugs in an automated way.

After being frustrated with the laborious manual process of releasing, I wrote automation software to handle most of the tedious manual steps in a more consistent way. I then adapted it to be used as part of our Jenkins setup to automatically build and deploy the application to our local development and test servers. With the automation software, some of the responsibilities for release were shifted from my resource-constrained team. This reduced human error in the build process, and removed hours of work from my team, and allowed for other teams to work with latest code on a continuous basis.

I wrote out a long-term plan to re-imagine the architecture of the application in a more modern style. Working with the application architect, we are currently implementing this plan to move to a smaller, simpler, and faster application utilizing microservices and service orientation.

When acting in a team capacity, I provide mentorship and knowledge to junior members. I assist other team members when they run into problems with anything from code to servers to customers. I write documentation and provide training where needed to get fellow developers productive. I use personal agile processes where I can in an aglish-waterfally organizational structure to deliver quality code.

Innovative Concepts

Images

Innovative Concepts Home Page
Innovative Concepts Home Page
Home Page at Mobile Size
Home Page at Mobile Size
Custom Unit Testing Framework
Custom Unit Testing Framework
Agents Dashboard
Agents Dashboard
Appointment Form
Appointment Form

Overview

The Innovative Concepts website is an application written in classic ASP (JScript), composed of several parts. First, there is a basic content and templating system. This ensures a consistent look-and-feel across the entire site. Second, there is a custom CRM based on a custom, pseudo-MVC framework. This is used internally for tracking and managing prospect and partner relationships. It also provides partners the ability to add information and schedule appointments independently.

To support this system, several other supporting applications were written. A unit-testing framework, including a web interface, an XML interface, and a CLI interface, was written from scratch to support development. An interface to render data from Google Calendar was also written to support partner scheduling. Supporting applications were written in classic ASP (JScript), BASH, and Ruby.

The entire application is responsive, using modern CSS3 and HTML5.

Contributions

I wrote this application completely from a green field. That includes the templating system, the pseudo-MVC framework, the custom unit-testing framework, the support applications, the Javascript, the CSS, and the HTML. I produced or procured the graphics used. The site has been through five different themes, all of which I designed. I completely refactored the application after five years of legacy code building up, including writing tests, reorganizing classes, and optimizing algorithms. I wrote and implemented the database schema. About the only thing I don't have a strong hand in is the website copy.

The DRG Group

Images

DRG Group Home Page
DRG Group Home Page
Biography Page
Biography Page

Overview

From a technical standpoint, the needs of the DRG Group are fairly basic, fulfilled with a hosted Wordpress install. The goal here is to achieve a professional look with minimal maintenance. The key here is focusing on choosing the best look-and-feel, so as to produce the greatest impact.

Contributions

A Wordpress installation does not need a lot beyond ensuring it is up to date. On the other hand, selecting the theme that conveys the right message is where energy is best spent. A bold, impactful headline communicates a strong sense of a large problem, while a clean, modern aesthetic offers both calm and focus.