github.com/iamgadgetman
What I build when nobody's paying me.
Most of these started as a homelab annoyance and turned into software. They're the honest version of a portfolio: small, self-hosted, running in production for an audience of one, and maintained anyway.
Repositories
Public
nola
n8n · Claude · DiscordNon-Organic Lab Assistant. A self-hosted homelab assistant combining n8n, Claude and Discord to monitor infrastructure, answer questions about it in natural language, and send alerts when something needs a human. The thing I actually wanted from a monitoring stack: not another dashboard, an answer.
job-scout
n8n · NotionAutomates job searching end to end through n8n workflows — scrapes listings, scores fit with AI matching, generates tailored application documents, files everything in a Notion database and pings Discord when something worth reading appears. Built while looking for this next role, which felt like the right test.
jarvis
JavaA Minecraft plugin that gives every player their own personal AI assistant, written in Java against the server plugin API. A toy in the best sense — a real codebase, real users, real bug reports, and the excuse I needed to keep writing Java.
AMP-update
Bash · SSHScheduled, SSH-driven updates across the whole server fleet, with Discord notifications when a node finishes or fails. Unglamorous, and the reason five machines stay patched without anyone thinking about it.
Running services
Live, not archived
lab.chancegearhart.com
LiveA four-site, 36-device GNS3 network rendered live — topology, device inventory and state, polled every 60 seconds and served read-only. The centerpiece, and the reason this site exists in the form it does.
blog.chancegearhart.com
Since 2009Seventeen years of build notes, from "Use Linux to test your QoS setup" in 2009 through Policy NAT and a JunOS advocacy piece to this year's homelab AI work. Not a content strategy — just a long paper trail.
From the blog
A representative sample
Jeeves — Building an AI Butler for My Homelab
What it takes to put a natural-language layer over your own infrastructure without handing a language model the keys to it.
Building a Homelab Dashboard: Galaxy Lab
Turning a pile of Prometheus metrics into a page that answers "is everything fine?" in under a second.
JunOS: Why Juniper and JunOS belong in your networking arsenal
Written while running Juniper MX, EX, SRX and QFX in a hospital network, for engineers who had only ever touched IOS.
Policy NAT · Brief description of NAT concepts
The two posts people still find when they search for how policy NAT actually differs from plain NAT and PAT.
Use Linux to test your QoS setup
The first year of the blog, and already the pattern: take the expensive vendor answer and reproduce it with open-source tools.