Here's a little of what I have done. Making things is so much fun!
New Year's Resolutions is how it all got started. I'm not a big fan of that sort of thing, but the spirit of the day got me thinking about a very important aspect of my Christian faith: Bible reading. Some reflection led me to think that email reminders would be a great way to become more consistent in my intake of the Word of God. What began as a hobby project for myself has grown into a full web-app and email service (built on the MEAN stack and served up via the Vercel platform). Users can sign up for various translations, number of chapters per day, time of day for the email delivery, and change things up as they go. Version 2.0.1 is currently running (as of 7/30/18). Tolle Lege!
This was an exciting project, as it was my first publicly downloaded npm package! This cli tool enables Angular developers to drop Tailwind CSS into their projects with just a few commands. The project came about because (as of 6.0.3) Angular does not grant access to the postCSS plugins that tailwind otherwise seemlessly integrates with, unless the developer ejects from angular cli (and loses the development speed the cli offers, which is the point of using tailwind in the first place--this is not an acceptable trade). I solved this by creating a chokidar watch script that works concurrently with ng serve to rebuild css files when changes are saved. At this point, the project is somewhat deprecated, due to Angular finally supporting build process augmentation, but there are a handful of users out there relying on it still.
This project was a ton of fun to work on and to play with the finished product. I was playing this card game with friends and family, and it just hit me one day that I could use this very asynchronous/concurrent game-play as a way to stretch the current limits of my programming skills and make something really fun to enjoy later. I used Hasura's GraphQL Engine to create the schema and handle event publishing, and I discovered Glitch, which made iterating on cloud functions a seamless process. The final project is running on Now (React Frontend), Heroku (GraphQL Engine/PostgreSQL DB), and Glitch (Webhooks). One fascinating piece of building this game was creating the game engine to rely on dependable, single-delivery events from Hasura. I initially set it up as a GraphQL subscription, listening to 'live' games, but that caused more trouble than it was worth. By listening to individual tables and specific database operations, I could guarantee that each event was unique and purposeful.
The headmaster at Faith Christian Academy approached me with the idea of having a conference to bring together the speakers from some of the various college/career preparation seminars we have had at our school this year. As I was working on putting the conference together, it seemed right to me that we should have a landing page to direct our potential guests. I decided to give my newly acquired skills some practice and built this site from scratch and hosted it on GitHub pages.
This project turned out to be my gateway drug to programming. I had just ported the entire FCA Student Information System over to a new software platform, and I was excited to dig into the new functionality available. When I stumbled on the customization Kit, I was immediately inspired by the possibilities for our brand. I spent the next month meticulously combing through the API documentation and learning about radical concepts like loops and variables. The document itself was built using Microsoft Excel to establish the grid layout, which was then saved as HTML. I was fascinated by the whole process, but didn't realize the impact these small discoveries would have 3 years later.
Part of my responsibilities at FCA involved sending student transcripts to other high schools and universities. Unfortunately, very few SIS's have an attractive default transcript template. Once I gained some solid footing in CSS, I jumped into this project with the hopes of improving our students' first impressions with college advisors. I used inline styles to structure a grid system and fine-tuned the variable loops to display uniformly within the template. I was super pleased with the final result!