Projects
TechAssist
Between 2016-2020 I worked phone support for ATC Communications, a rural telecommunications company. Over the course of that time I developed a webapp to help myself (and the other members of the support team) help customers faster.
This program was all about automation and communication between systems. It had several functions, my favorite being the customer lookup that pulls data from 8 different systems, combining relevant data into a super-helpful dashboard. It also had a database of our equipment, ran batch jobs to apply billing changes to our equipment and monitored our network for for poor connections.
I used Flask for the backend and, rather than picking a frontend framework, coded raw HTML, CSS & JS (with some limited help from Jinja templates). Doing things this way really helped me understand web technologies better and I’ve found myself avoiding frontend frameworks in general due to how much can be done with contemporary CSS {{ content }}amp; JS features.
Text Adventure
This was a small proof-of-concept I built using Rust and the Dioxus framework. It was my first real foray into writing rust and I was able to get it mentioned on Dioxus’ website!
WebGL Experiments
ChaseBox is a simple 2D game I built in an attempt to learn WebGL. It has super-simple physics, super-simple shaders and super-simple event handlers. It’s not much, but it works! It gradually ramps up speed over time, and I remember when I showed it to my co-workers it wasn’t long before they were trying to get the best score!
My biggest issue with this is that the physics are framerate-dependant. However, I could always come back to it and implement a time-delta approach, such as the one explained in Gaffer On Games | Fix Your Timestep.
I also took a shot at a a 3D First Person environment here.
RPG Tools
Ever since I was introduced to the world of D&D I’ve thought some aspects could be made less painful using a computer.
While I’m already a fan of Orcpub 2 and Roll 20, I wanted to build something that was system-agnostic and that I could easily visualize using JSON.
The idea of objects containing objects with attributes and rules is just absolutely fascinating to me, and I’d love to get to the point where you could just import rules for 5e or any other system just by uploading a JSON file.
For now, it’s just a fun project I play around with from time to time.
I’ve recently started experimenting with creating a Character Sheet using the Dioxus framework, but don’t have anything I can show off yet!
spideyclick.net
I’ve built plenty of static HTML sites in the past, but this one features a lot of my favorite web design techniques. I love the way CSS has evolved so that it’s easy to respect light/dark mode, have a responsive but easy to read layout using Grid & FlexBox, separate themes using CSS variables. HTML itself has evolved in so many ways that a lot of the boilerplate classes I used to use can simply be replaced by using the appropriate elements.
Lynx Program Downloader
At my very first IT job, we needed a way to automatically update our software downloads. Things like CCleaner, MalwareBytes, Defraggler, etc.
This program does just that using the scripting capabilities in the Lynx terminal web browser. It goes through a list of programs in different categories and downloads each, one at a time, from sources such as majorgeeks.com or filehippo.com, although it can be made to work with just about any site.
This is the first program I ever made publicly available on GitHub. I was able to get it reviewed by a couple programmers I knew at the time and I was so grateful for the recommendations they gave me!