Software engineer · Chattanooga, TN

I build useful systems, then make them run reliably.

I’m Grant Versluis. My work spans workflow automation, self-hosted web products, computer vision, and reinforcement learning—with a bias toward shipping the thing and operating it myself.

BUILD

Full-stack products and ML prototypes

AUTOMATE

Repetitive support and deployment work

OPERATE

Dockerized services on my own VPS

About Me

Profile picture 1
Profile picture 2
Profile picture 3
Profile picture 4

Hi, I’m Grant, a computer science graduate and software engineer who likes turning annoying, repetitive problems into dependable tools. In enterprise application support, that has meant CI/CD pipelines, browser automation, AI-assisted issue correlation, and workflows that keep a person in control of the final decision.

Outside of work, I run a small production stack on my own VPS and use it to ship the products I want to exist—from local-first reading and AI-detection tools to finance software and reinforcement-learning environments. When I’m not building, you’ll usually find me rock climbing or hiking.

Featured Projects

View All →
Proofmark — Local AI Image Detection

Public source

Proofmark — Local AI Image Detection

A privacy-first Chrome extension that scores and labels likely AI-generated images directly in the browser. The quantized vision model, metadata checks, and evidence UI run locally with WebAssembly—no uploads, backend, or API key.

JavaScriptChrome MV3Transformers.jsONNX Runtime WebWebAssembly
Dino's Essentials — Self-Hosted Platform

Public source

Dino's Essentials — Self-Hosted Platform

A small production platform for the tools I actually want to use. Multiple Dockerized applications run behind a reverse proxy on my VPS, while a deployment daemon watches their GitHub repositories and rebuilds changed services automatically.

Ubuntu ServerDocker ComposeGitHubCaddyNode.jsPython
Drone Trainer — 3D Interception RL

Public source

Drone Trainer — 3D Interception RL

A custom Gymnasium environment for training a pursuer drone to intercept a moving target in 3D. It includes camera-like observations, target-lock memory, fly-through collision geometry, shaped rewards, PPO training, and a lightweight renderer.

PythonGymnasiumPPOStable-Baselines3PygamePytest
LARPmaxxing — Agent-Stack Audit

Public source

LARPmaxxing — Agent-Stack Audit

A deliberately unserious vision app that audits screenshots of coding setups, scores the visible agent and tool sprawl against a structured rubric, and publishes shareable results to a public leaderboard.

Node.jsOpenRouterVision ModelsStructured OutputDockerCaddy
Automated Product Demo Pipeline

Private build

Automated Product Demo Pipeline

A private tooling pipeline that turns repeatable browser interactions into composed product-demo videos. I built it to spend less time manually laying out and recording every launch clip—and more time improving the products themselves.

Node.jsBrowser AutomationVideo CaptureRendering
Kofax Clear — Bug Correlation Automation

Work project

Kofax Clear — Bug Correlation Automation

A human-in-the-loop support automation that combines deterministic browser work with an LLM-powered Azure DevOps search. Selenium extracts failure context; Claude Code reasons over candidate bugs; a strict contract returns parseable JSON.

PythonSeleniumClaude CodeMCPAzure DevOpsJSON Schema

Build notes

Selected writing

Read all →