StatShot is a golf analytics iOS app built collaboratively with my Hopkins golf team Co-Captain Ryan Coffey. StatShot allows golfers to quickly and easily input round data, and then proceed to analyze their rounds using an innovative new technique called Strokes Gained. Strokes Gained allows golfers to see exactly which part of their game needs the most practice. We released the first public version of StatShot just two months after its inception.
StatShot uses SwiftUI and SwiftData
Landing PageThis 6502-based computer is based on Ben Eater's design. Because it sits right between the low-level hardware I built in my 8-bit CPU project and the high-level software I generally deal with, this project was simultaneously capable enough to teach me real assembly programming and yet simple enough for a beginner to understand. I extended Ben Eater's design with a PS/2 keyboard interface and a simple text editing program.
This computer uses WDC 65C-Series ICs and 6502 Assembly
Source CodeThe Imitator Project created a Discord bot that would imitate one of my good friends. It queries Anthropic Claude with a prompt and contextual conversation data to get a response to send to the chatroom. I updated and extended DiscordKit, created a new Anthropic Swift library, created a new ImitatorAI Swift library, and deployed a custom implementation of those libraries onto my personal server.
The Imitator Project uses Swift, SwiftAnthropic, DiscordKit, and ImitatorAI.
Built over the span of about 2 years, this 8-Bit breadboard CPU is based on Ben Eater's design and tutorials. This project has given me a deeper understanding of computer architectures and how they work on an extremely low level. Though it isn't very powerful, it is a great low-level representation of real computer architecture and microcode.
This CPU uses TI 74LS-Series ICs
Memeinator is an iOS app that allows you to easily change regular text into meme text, currently available on the App Store for free. It includes complex, layered text transformations and a keyboard extension. Memeinator is monetized with In-App-Purchases using StoreKit 2. Memeinator's source is robust and well-documented, and open-source.
The Dumptruck is hydroponics automation and testing robot built collaboratively with Davis Bachner. Davis worked on most of the hardware, and I wrote the software. The Dumptruck can support three plants, each with different nutrient schedules, useful for A/B testing. The Dumptruck includes a web interface, scheduler, motor driver, and a pH sensor all running on a Raspberry Pi and an Arduino. The Dumptruck has an advanced, modular and extensible project architecture. The Dumptruck's source code is open-source.
DiscordKit is a proof of concept library for interacting with the Discord API. While DiscordKit's API coverage is extremely small and it is surely not ready for use in a production project, it is a robust foundation that could be easily extended to include far more of the API.
Helium is my home server, my playground for learning server-side technologies and selfhosting. It currently hosts all of my websites, a Nextcloud instance, a VPN, a mailserver, a Minecraft server, a Jellyfin media server, and more. Each service is behind a reverse proxy and every service is completely Dockerized.
Helium is my home server, my playground for learning server-side technologies and selfhosting. It currently hosts all of my websites, a Nextcloud instance, a VPN, a mailserver, a Minecraft server, a Jellyfin media server, and more. Each service is behind a reverse proxy and every service is completely Dockerized.
Reggiebot is a small Discord Bot intended to send pictures as replies to messages. I intended to help build my skills in the Rust programming language by creating a small, superficial project in the Rust ecosystem. Through this bot, I've learned the basics of Rust and I've learned about automatic deployment techniques using Docker. It's named after a close friend of mine.
This website is just as much a place to show off my projects as it is a showcase of my design and development skills. It's built with basic HTML and CSS, although it would be nice to someday rewrite it in a library like SolidJS. It's hosted on my homelab, and it's a great place to find lots of different information about me.
The Memeinator landing page is a simple yet beautiful website built using SolidJS. After my experience with SwiftUI and declarative UI, SolidJS came very naturally to me and I find it much more convinient to use than just basic HTML/CSS. It is hosted on my Homelab.
Aer 1 is an advanced Discord bot that is used for moderation and other administration tasks. It can easily be configured and deployed. It currently runs in a number of servers and is available to self-host.