I am the lead developer for FreeRateUpdate.com, a lead generation company for mortgages, connecting consumers looking for mortgages with lenders. This entails improving both a complicated CRM handling sending leads to dozens of clients, and a telephony system that powers 2 call centers. While most of the system is a very old Code Igniter project, my team has greatly improved observability and reliability of their system, and moved large parts of it to a Laravel API. My biggest project thus far has been recreating their Twilio phone client, moving from a Manifest v2 Chrome Extension to a web based phone client written in Angular X, and using the project as a starting point for moving the entire CRM interface into Angular.
Too Much Media
I was a web developer at Too Much Media 2006-2021, and one of the most senior developers in the company. My largest project was a credit card processing system, which has successfully processed thousands of transactions a day for years. My last project was restructuring our main software system, NATS, with a complete REST Interface, while using JIRA to delegate development of the admin frontend interface in Angular X. The released current state of the new interface can be seen on the NATS “Democash” Site. Additionally I led a project to add Unit Testing of their APIs to GitLab Continuous Development, and utilized the same tests to generate automated wiki documentation.
I am the Tech Administrator for the Winding Path Initiative Board of Directors. Besides having maintained a national LARP group’s entire tech stack for years, I’ve made a number of personal projects, especially for the LARP community, as well as contributions to other open source projects. Some of my work can be found on my GitHub Profile.
- Technology for WPI. Current projects are:
- wpi-hub, a user hub for WPI members, including managing memberships, location tracking, and officer permissions. This is an extension on Echo Gregor’s User Hub, adding support for user authentication using Amazon Cognito and further expansion of permissions and editing.
- wpi-ui, a unified UI for the user hub and future WPI tech, which uses Amazon Cognito for member authentication (moving to Auth0 in the next release). Built on Angular and Bootstrap 4.
- Both the wpi-hub and wpi-ui projects are now live, as WPI Member Services. Accounts for the staging instance can be given on request for demo.
- Technology for Huldufolk. I have quick scripts to simplify public playtesting, which will eventually coalesce into an online character sheet and management system. Currently there are cantrips for:
- Huldufolk power quick reference, allowing users to fill in their character’s powers and get a website/printout of their powers. Live version here.
- Bulk Huldufolk character tools, for easily creating a large number of pre-made characters for a game, and then organizing all the handouts and connections.
Back in 2006 VampMan was created as the backbone of my now-defunct “Vampire the Rebirth” IRC game, as a direct competitor to the also-now-defunct Diablerie.org IRC game (both of our groups said the other were jerks, and we were both right). The project consists of two modules: a module for PHP-Nuke, an ancient PHP CMS that thought
register_globals was an extremely important PHP feature, and a module for PHP-IRC, an equally ancient IRC bot. This code base is an interesting story of a 19 year old CS major entirely teaching himself PHP purely out of spite over the course of a summer, while still managing to over-engineer a niche project which would have 0 other installations. You can also see where I spent a month adding language tokenization support, which was requested by another group but never used.
NJIT Today was my senior project at my university. The project was to create a feed aggregator, which would automatically update based on the feeds chosen. As well, old articles were to be stored in the database, so that a user could view the site as it was on a date in the past.
- Fetched articles from RSS Feeds, the Flickr API, and custom feeds
- Allowed for custom fetch, prepare, and schedule functions for feeds (see source for examples)
- Allowed full customization of when data is fetched, and how old articles are removed.
- Included a template for the web side, allowing you to have different templates for different time periods.
- Allowed the ability to disable news items, as well as edit news items.
- Front page stored statically, in order to handle large amounts of traffic
This was released and in production use in 2008. The final code is available here. It is released under the GPL v3, with permission of my partner and my NJIT project supervisor.
Traveler Sector Generator
I created a space sector generator for a game called Traveler, using the rules in Mongoose Publishing’s new version of the game. This set of scripts allows you to generate a complete parsec, and all the worlds in it, including name, size, atmosphere, culture, what factions are on the planet, etc. The scripts can then output this information in the .sec file format, which you can use with tools such as sec2pdf. The code is available here, and is released under the GPL v3. If you want to use these scripts and have questions, feel free to contact me.