Projects: gulp.js

A task runner

AngularJS Blog

Angular Blog
Angular Blog

I chose to use the technologies specifically listed in the job posting: Javascript, AngularJS, SASS, Git, and Node.js. I coded the store as an API for child components to retrieve data. The result is a non-trivial, reactive, SPA, all built from scratch in less than 12 hours.

Manual Collateral

Since the beginning of time, collateral has been input into the LOS by means of a form that integrates with NADA. Due to the limitations of the NADA bookout service, new and rare cars are generally unacceptable to our system. The solution was to allow manual collateral input. Because we started collateral with NADA, the system was already somewhat complex, though some care was taken to abstract out the bookout type. Still, our solution had to expand upon that abstraction, particularly in back-end persistence and front-end KnockoutJS field bindings.

Loan Calculator Bugs

There were somewhere between 15 and 20 bugs reported. The actual number of bugs was unclear because many of them were overlapping or interrelated. So for three weeks, I fixed bugs whack-a-mole style, fixing one, then another, then going back and re-fixing the original after coming back and finding it broken anew… over and over and over again.

Military Lending Act

The Military Lending Act was amended in September 2015 to place limits on how high an APR lenders could set for active military personnel. The real difficulty came after realizing the logic surrounding loan products and fees was now lacking. Their inclusion or exclusion affects MAPR values, and thus MLA rules. A refactor was in order because these can be updated in so many ways across the system.

Withdrawn Loan Status

At the start of this relatively straightforward epic, there were a number of “terminal” loan statuses already in existence: abandoned, expired decision, expired contract, and finalized. Somehow missing from this list was a way for lenders to withdraw a loan in the FG LOS. We had to integrate this functionality with many other services across the site including user permissions, the automatic decision engine, the decision status cron, and application queues.

Collateral Core Code

Symitar, a software system powering hundreds of credit unions, uses collateral codes for all loan types regardless of whether they are secured or unsecured. In an effort to comply with industry standards, we needed a Symitar integration to provide options to allow the user to supply a collateral core code for every loan type defined in their system. The newly defined collateral code can now be sent to the Symitar core on loan approval, thus allowing banks another way to distinguish loan types.

Symitar Core Validation

Symitar
Symitar

The task to be solved consisted of enforcing a 4-digit max size to Symitar core codes. It sounded easy enough, but a quick run through the domain revealed that core id fields were spread across eight different admin pages, each uniquely structured, implemented within their own context. I had to extend existing jQuery Validation library functionality to accept custom messages and errors returned from Ajax requests to the back-end. My eventual solution was done in a way to be easily extendible to future core implementations.

Executive Dashboard

Intel Executive Dashboard
Intel Executive Dashboard

The Executive Dashboard began as a one-off project that allowed Intel executives to quickly assess the effectiveness of current marketing campaigns across the twittersphere. Client admins are now able to quickly create any number of custom dashboards, each consisting of tabbed dataviews that present easy-to-digest social business intelligence in a number of customizable ways.

Journal

Journal
Journal

I created a simple multiuser journaling application while learning Laravel 5. The date dropdown on the form omits previously logged dates to let the user know what dates have not been logged. A non-trivial weighted average calculation is available for whatever single biometric field you choose to log. The user can log a single day at a time via the logging form, or bulk upload via CSV.