The rig — what I actually use to build things.
Every developer-portfolio uses-page reads like a wishlist. This one is the actual machine. If you see something here, it’s because I’ve sat in front of it and shipped something with it — not because the marketing site said it was good.
Workstation
Custom Windows 11 desktop, RTX 3090 (24 GB)
The whole reason this site mentions “local-first AI” without laughing. The 24 GB of VRAM is enough to run Gemma-class 26B quants alongside ChromaDB, Whisper, and a Stable-Diffusion-shaped workload at the same time. Most of my projects assume this GPU is sitting there.
MacBook (1 TB), the road machine
On-demand, mostly for working on the deck or out of the house. Talks to the desktop over a Tailscale mesh — Syncthing keeps
~/developer/devin sync withC:\Dev, and rclone-over-SSH mounts the Windows disk at~/MountedDevfor the bigger files Syncthing skips.Tailscale, the glue
Every box I own is on the same tailnet. The Windows file server runs
rclone serve sftpon a Tailscale-only address; nothing is exposed to the public internet. Best “it just works” software I’ve adopted in years.
Dev tools
VS Code + Claude Code
Editor is VS Code. The agentic layer on top is Claude Code. It also drives every LLM call inside
Job-Shortsvia a subprocess — that's how I get 42 chapters rendered without paying per-token fees.PowerShell + Bash
PowerShell for native Windows things, bash for everything POSIX-shaped (Git Bash on Windows, real bash on the Mac). Both running through Windows Terminal with a JetBrains Mono / Fira Code stack.
uv, Ruff, ESLint + Prettier
uvfor Python env / package management — fast enough that it stopped being something I think about.rufffor lint + format because the <100 ms feedback loop changes the shape of how I write Python. ESLint + Prettier on the TypeScript side.GitHub + Vercel
Code on github.com/Raymondriter. Sites on Vercel (this one included). Six Python packages on PyPI.
AI runtime
LM Studio at localhost:1234
Default endpoint for every project that needs an LLM. Currently running a Gemma-4 26B quant most days. The OpenAI-compatible API means every project can point at
http://localhost:1234/v1and not care that it's local.ChromaDB
Vector store for GBC-AI, LTVRAG, and a couple of other RAG projects. Persistent on disk, fast enough on a single thread that I've never needed to scale it out.
faster-whisper (large-v3-turbo)
STT for both GBC-AI (offline sermon transcription) and LTVRAG (real-time voice). The turbo variant is fast enough to feel responsive without the accuracy fall-off of the smaller models.
ComfyUI + LTX 2.3 + F5-TTS
Image and video gen for Job-Shorts. ComfyUI for the graph execution, LTX 2.3 for actual video synthesis, F5-TTS for narration. All local — no SaaS in the loop.
YOLOv8 + Moondream2
Vision stack for rsbot and The Visual Bridge. YOLO trained on my own gameplay screenshots, Moondream2 as the “describe this scene” fallback when YOLO is unsure.
Web stack
Next.js (this site, jacecrm, helpmetopray, RayFitnessPal)
App Router everywhere new. MDX for blog posts. Tailwind for styling.
next/ogfor the terminal-themed OG cards you see when you share these pages.FastAPI for Python backends
GBC-AI, LTVRAG, sportbetting, ai-world — all FastAPI. Async, typed, fast, and never gets in my way.
Supabase + Firebase, depending
Supabase for new projects (Postgres + Auth + Realtime + Edge Functions). Firebase for legacy projects already on it. helpmetopray.org is the cleanest example of the new pattern.
Out of the room
Traeger pellet grill
Doesn't technically run code, but it's on the rig list because the peppered beef jerky it makes on a 4-hour 180° smoke is genuinely better than anything I can buy. Eye of the round, hand-sliced, Dragon's Milk stout in the marinade.
Grace Bible Church
The reason GBC-AI exists. Years of sermon archive, finally queryable.
Family
My wife steers half my project list. My son Jace has his own CRM because he wanted free swag. They are the actual reason most of this exists.
