Projects
These are some of the projects I’ve built over the years. Each one came from a specific need, curiosity, or personal interest rather than just a coding exercise. Everything here that runs as a live service runs on AWS for about $25 a month, total. For more details and code, visit my GitHub profile.
Featured Projects Link to heading
-
Simple Key Value Server (SKVS) -
Hand Coded
GoUDPAES-256-GCM
A tiny, key-value store written in Go and deployed over UDP.I built this because Redis and similar systems carried far more operational surface than my workload justified. My API needed a fast, read-heavy, single-owner cache with strict latency guarantees, no persistence, and nothing extra. By owning both ends of the protocol, I kept the wire format minimal, encryption mandatory, and behavior predictable.
-
wxs.us (Weather Service) -
AI Assisted
GoKotlinJavaScriptJetpack ComposeAWS
A free US weather service: forecasts, alerts, severe weather outlooks, a next-hour rain nowcast, nearby lightning, and radar. The radar viewer decodes raw NEXRAD Level II and Level III data in the browser straight from the public AWS buckets, with GOES lightning and forecast-model overlays, so no radar traffic ever touches my server. It runs as a Go server on AWS, delivered via curl, an interactive SSH dashboard, the website, a native Android app, and a native desktop radar app for Windows and Linux (one file, no installer), with a Fire tablet app, a browser extension, and an Alexa skill in store review. Built on NWS, NOAA Storm Prediction Center, and NOAA Open Data, it requires no API keys or accounts and does no tracking. Usage numbers are public on the live stats page.I have always been into weather. I used to use an old terminal weather program until it started going down constantly, so I built my own, then got carried away learning how the NWS APIs worked and kept adding platforms.
Get it on Google Play → · Get it on the Microsoft Store → · Every way to get it →
-
AI Call Bot -
Hand Coded
GoTwilioOpenAIAWS PollyAWS Transcribe
A Go-based voice-driven AI agent, originally deployed as a Digital Ocean serverless app and since migrated to AWS, accessible via phone demo at (734) 766-7700.A pure passion project. I love working with LLMs and I love communication systems, so this was me putting the two together for the fun of it.
-
Cleanup for Amazon -
AI Assisted
TypeScriptManifest V3CSSHTML
A browser extension for Chrome and Firefox that hides whichever parts of Amazon you choose, each behind its own toggle: the shopping assistant, the cart sidebar and count badge, recently viewed, buy again, and personalized recommendations. Gift schedules hide things on dates you pick and restore them on their own, and Quick Hide clears everything temporarily. Works on all Amazon sites with no accounts, no tracking, and zero network requests.I cannot stand the shopping assistant side chat, and I wanted my cart hidden at certain times of year so gifts stayed a surprise. Both are entirely my own itches.
Get it on the Chrome Web Store → · Get it on Firefox Add-ons →
-
FriendTime -
AI Assisted
GoTypeScriptAWS LambdaTursoCloudFront
A web service for coordinating gaming sessions with friends. The frontend is vanilla TypeScript with a hand-rolled router, no framework and no npm. The backend is Go on a single arm64 Lambda, fully serverless on AWS (S3 + CloudFront, API Gateway, SES) with Turso for the database and passwordless magic-link login.I wanted a simple way to schedule D&D sessions with friends.
-
Writers Grove -
AI Assisted
GoHTMLPostgreSQLAWS LambdaStripe
A serial fiction platform built with Go. Anyone can read for free and publish for free, browse by genre, and read a library of public-domain classics alongside new work.I write, and I am working on getting a series off the ground. Every option I found for writers trying to monetize their work was worse than it needed to be, so I started building the one I wanted.
-
SimplyAuto -
AI Assisted
GoFyneWindows APIMicrosoft Store
A free auto clicker and macro recorder for Windows, built entirely in Go. Customizable click intervals, macro recording and playback, global hotkeys, and save/load. Portable .exe with no installation required, or install from the Microsoft Store.My son wanted an auto clicker for his games and my wife wanted a simple macro recorder, and both of them wanted repeating key presses that nothing else offered. So I built one thing that covered all of it.
-
ZipClip -
AI Assisted
GoFyneffmpegyt-dlp
A desktop tool that turns Twitch VODs into YouTube-ready videos on a schedule. It uses scene detection to find where the stream actually starts, and edits entirely with stream copy, so nothing is re-encoded and quality stays lossless. Built in Go with Fyne, as portable binaries for Windows and Linux.My wife never posted to YouTube because getting a Twitch VOD there meant downloading it, cutting the waiting screen, splicing in an intro, and uploading it, every single time. So I automated the whole path.
-
JackBot -
Hand Coded
GoDiscordOpenAITursoAWS EC2
A Discord-based conversational AI bot written in Go, named after the family cat.My son had an AI he liked talking to on Discord, and he was pretty upset when it was shut down. I built him a replacement, which also meant I could see how he was using it.
-
Secure Contain Protect -
Hand Coded
JavaScriptNode.jsAWS LambdaOpenAITurso
A browser-based console for talking to an SCP Foundation AI, running on AWS S3 and Lambda.My kids have always been fascinated by SCPs, so I built them somewhere to interact with a Foundation AI directly.
-
bf-go -
Hand Coded
Go
A Brainfuck interpreter in Go, with a 30,000-byte tape and a precomputed jump table so loops resolve in constant time.A former Director of Engineering kept pushing me toward test-driven development and it never really landed until I read David Farley’s Modern Software Engineering. I wrote this to actually practice writing the tests first, on a problem small enough that I had no excuse not to.
Tools Link to heading
-
goaudit -
AI Assisted
GogovulncheckcapslockOSV.dev
One command that audits every Go project it finds, for malicious packages, typosquats, known vulnerabilities, and code quality, and reports only what is wrong. Standard library only, with no dependencies and no configuration.I wanted one standard security pass that ran the same way across all of my work and personal projects. It started life as a justfile, and when I wanted more features and more control over it I rewrote it in Go.
-
aws-sec -
AI Assisted
GoAWS CLIGoReleaser
A thin Go wrapper around the AWS CLI that intercepts responses and replaces secret-shaped values with[REDACTED]before they reach the caller.Built as a hard boundary for LLM-controlled shells, where environment variables and credentials in normal AWS output would otherwise leak into model context, transcripts, and downstream tool calls.
-
gitdisplay -
AI Assisted
GoAWS LambdaS3CloudFrontGitHub API
A Go Lambda that reads every repository on a GitHub account, renders most-used-language and contribution-streak SVG cards, and republishes them to S3 behind CloudFront on a schedule. It generates the cards on my about page.github-readme-stats only read my first hundred repositories, so it silently dropped my newest eleven, folded archived projects into the averages, and counted vendored code I never wrote. After twenty years the card was describing the developer I was a decade ago. This one separates active work from archived.
-
MSSQL Extractor -
AI Assisted
GoSQL Servergo-mssqldb
A read-only Go tool that scripts a SQL Server schema into one deterministic file per object, so a database schema can be committed to git and diffed like anything else.Microsoft’s own
mssql-scripterhas been abandoned since 2018 and its bundled .NET runtime no longer runs on a modern Linux box, and GUI tools cannot be driven headlessly. I wanted a small binary that will still compile in ten years. -
goLocalMermaid -
AI Assisted
GoMermaid.js
A single-file Go server that renders a local Mermaid diagram in the browser and redraws it on every save, holding your zoom and pan position. Exports to SVG, PNG, JPG, and PDF.When an AI is making a lot of small edits to a diagram, pasting into a web renderer means handing private diagrams to someone else’s site, and re-rendering to a file loses your place every time. This does neither.
-
GHFlow -
AI Assisted
GoBubble TeaLip GlossGitHub CLI
A terminal dashboard for monitoring GitHub Actions workflows across many repositories at once, with a 3x2 grid layout, live status updates, and vim navigation.Built when I was watching CI across dozens of separate service repos, before they were consolidated into a monorepo.
-
Project Tracker -
AI Assisted
GoBubble TeaLip GlossGitHub CLI
A modular terminal dashboard built with Go and Bubble Tea, with vim-style navigation and modules for CI status, TODO, notes, and git status.Built to keep track of where my own projects actually stand.
-
TTS (Text-to-Speech CLI) -
Hand Coded
GoOpenAIffmpeg
A command-line tool for converting documents into speech using AI.I wrote this before mainstream tools made the process simple, back when nothing available did it with decent quality. I love listening to books while I walk, so I built it to get my textbooks onto my phone.
-
autobotgo -
AI Assisted
GoOpenAIffmpegYouTube Data APIAWS S3
A single Go binary that once a day wrote a story, narrated it with text-to-speech, illustrated it, assembled a 1080p video with ffmpeg, and uploaded it to YouTube, keeping a shared-world canon file so episodes stayed consistent with each other.The pipeline worked end to end. I archived it anyway, because once I sat down and read what it was actually producing, the stories were not good enough to publish.
Games Link to heading
-
GlyphEngine -
Hand Coded
GoEbitengineWebAssemblyitch.io
A small 2D game engine in Go, built on Ebitengine, that renders everything as ASCII glyphs instead of sprites.Written in a few days for the Pirate Software Game Jam. I wanted the game to look like the old ASCII games, and nothing rendered that way, so I built the engine first and the game on top of it. It started out beautifully structured using all the best practices and became a tangled ball of mud as the deadline closed in. I still had fun writing it, and it is up in case someone else does something interesting with it.
-
The Social Contract -
Hand Coded
GoGlyphEngineEbitengineWebAssemblyitch.io
A short dialogue-driven infiltration game rendered in ASCII on GlyphEngine. You play a security consultant talking your way into corporate offices.The jam theme was “you are the weapon,” so the weapon is what you know and how you read people rather than anything you carry. I wanted to show how weak human security actually is.
-
Ring Wars -
AI Assisted
GoEbitengineYAMLWebAssemblyGitHub Pages
A DOS-style wrestling match simulator in Go and Ebitengine. It reads YAML wrestler cards and plays out dice-driven singles, tag, cage, and no-DQ matches with running text commentary, and ships with an in-game card editor.My brother had an old DOS program for this that he loved and lost the key for, so I built him a new one.
-
Scoundrel -
AI Experiment
GoLuaEbitengineLOVE2D
A digital version of the solo card game Scoundrel, built twice: once in LOVE2D with Lua, and once in Ebitengine with Go.An experiment in two directions at once. I handed over the assets, the rulebook, and the instruction to build it, and wrote none of the code myself, to find out what full delegation actually produces rather than guessing at it. I also wanted the same concept expressed side by side in two languages, to see how differently each one wanted the project structured.
To see more of my work visit my GitHub Repository page, or head over to my resume for the professional version.