shane@linuxbrew:~$ whoami
► technology strategist · systems architect · security engineer · relentless builder
shane@linuxbrew:~$ cat /etc/motd
I build
systems that
don't fall over.
Linux is home. Messy problems in, quiet infrastructure out —
built to run hot and never drop a packet.
shane@linuxbrew:~$ cat ~/career.log

I work where systems, security, and shipping meet. Twenty-five years in, I've gone from Linux boxes and Fibre Channel fabric to AI platforms and CISO war rooms — and never left the command line. I harden networks with zero-trust, automate infrastructure from bare metal to the edge, and turn rough prototypes into tools people quietly depend on. Equal parts architect, operator, and closer — most at home closing the gap between “works on my machine” and “works in production, at 3am, without me.”

shane@linuxbrew:~$ cat ~/.stack
LinuxPythonTypeScriptReact / NextRustSwiftC / C++ · ESP32TerraformAnsibleDockerk3s / KubernetesAzureAWSGCPOCIVercelZero-TrustSIEM / SOC
shane@linuxbrew:~$ ls ~/projects --built
// current work · under NDA
classified
React · Azure AI · serverless

Enterprise AI — the boring-but-hard kind. Turning messy inputs into trustworthy, reviewable output, governed so nothing ships unseen. The interesting parts live under NDA.

Infra · IaC
netsec-iac
Python · Terraform · React

The whole house, declared. One YAML file compiles to the firewall, the Wi-Fi, and the switches — with zero-trust segmentation, dual-WAN failover, a k3s GitOps platform, and encrypted secrets. Break glass is a git revert.

  • A Python compiler turns one desired-state model into firewall, AP, and switch config — plus the contract the read-only front-end renders from.
  • Deliberate multi-tool split: Terraform for the firewall and VMs, Ansible for the APs (no provider exists), Argo CD for cluster apps.
  • Zero-trust network segmentation, an internal CA, and encrypted secrets — the security posture is declared in the same model.
  • HA firewall pair with dual-WAN failover — the control plane is a git repo, not a vendor GUI.
AI · macOS
mimir
Swift · on-device models

Meetings that never leave the machine. On-device transcription + summarization on Apple-Silicon models, written straight into Obsidian — no bot joins the call. Extended from Minute to sync M365 calendar and bolt into an AI-assist pipeline.

  • On-device only: Parakeet transcription and a local Llama/Gemma model summarize on the Neural Engine — nothing is sent out.
  • The model emits JSON; the Markdown is rendered deterministically into Obsidian with locked file paths and YAML frontmatter.
  • EventKit auto-detects the overlapping calendar event at record time — organizer, attendees with RSVP, location, join URL.
  • Actor-based pipeline: Record → Transcribe → Diarize → Summarize → Render → Write.
Security · OSINT
black-eye
Python · FastAPI · HCL

Recon on tap. A headless OSINT API — DNS, whois, nmap, cert-transparency behind one authenticated endpoint — fully Terraform-provisioned and locked down to least privilege.

  • Wraps common OSINT building blocks — DNS, whois, nmap, cert-transparency — behind one authenticated endpoint.
  • Provisioned end-to-end as code: Terraform + GitHub Actions, plan on PR and apply on merge — no console clicks.
  • Hardened and least-privilege by default; feeds a private intelligence pipeline, not the open web.
UX · IoT
shield-concierge
Next.js · TypeScript · Kotlin

The living-room command center. A Next.js kiosk for an Android TV plus a Kotlin companion — with hand-built D-pad spatial navigation (the hard part), Home Assistant control, and per-room screens.

  • Three locked room layouts — resort cabana, game-room marquee, living-room concierge — each with its own tiles (weather, calendar, guest Wi-Fi QR).
  • Hand-built D-pad spatial navigation — the genuinely hard part on a TV with no pointer.
  • A blended “continue watching” row across services; Plex is the one with a usable local episode-level API.
  • Documents a real dead end: TV launchers expose no cloud resume API, so it ships a server + per-TV two-tier resume instead.
AI · FinOps
ai-gpu-estimator live
React

Buy vs. rent the GPUs. Models real AI-inference cost — tokens/sec, VRAM, quantization, electricity and PUE — across on-prem builds and AWS / GCP / Azure / OCI.

  • A three-step wizard: define workloads → GPU recommendations → full TCO cost comparison.
  • Models VRAM, tokens/sec scaling, bin-packing, and server-cost optimization by dynamic programming; benchmarked on Llama 70B FP8.
  • Data-driven: 22 GPUs with specs and pricing, on-demand + reserved cloud rates across four providers, per-use-case token params.
  • A refresh script pulls live provider pricing; electricity, PUE, utilization, and a 4× agentic multiplier are all tunable.
Cloud · Migration
rv-explorer live
React

Exit the hypervisor. Turns RVTools exports into a VMware-to-cloud migration cost analysis — the spreadsheet the CFO actually reads.

  • Upload an RVTools export; it parses vInfo/vHost/vCluster/vDatastore and matches each VM to the closest cloud instance.
  • On-demand / 1-yr / 3-yr reserved pricing across AWS / Azure / GCP / OCI, with a per-provider support uplift.
  • VCF9 sizing from the same data: vSAN ESA, FTT/RAID, NSX overhead → host count and cluster topology.
  • Fully client-side — no backend — with PDF and chart export.
shane@linuxbrew:~$ ls ~/tinkering
Audio · IoT
taptunes
React · Express · ESP32

Self-hosted TouchTunes — a touchscreen jukebox with phone remotes and audio-reactive LEDs.

  • An npm-workspaces monorepo: a Vite/React kiosk, a separate /remote PWA, and an Express/SQLite/WebSocket hub.
  • Plays Navidrome (Subsonic) and Spotify; phones are dumb remotes relayed through the hub, playback stays on the kiosk.
  • Two ESP32 firmwares — a WS2812B strip tinted from album art and a HUB75 matrix with an I2S mic doing live FFT (7 modes).
  • Spotify refresh tokens encrypted at rest with AES-256-GCM.
Health · PWA
kyrr live
React · Clerk · R2

Notched-audio tinnitus therapy — a PWA with accounts and a shared audio library.

  • Generates and serves notched audio; files live in Cloudflare R2, reached through presigned S3 URLs.
  • Clerk auth with an admin-gated shared library; installable as a PWA.
  • Web-push plus a daily reminder cron to keep therapy adherence on track.
AI · Meetings
hugvord
React · Rust

Real-time meeting intelligence — live transcription and LLM analysis, dropped in as a React component.

  • A <MeetingAssistant /> panel and a useHugvord() hook; a Rust companion captures system audio over a local WebSocket.
  • Provider-adapter model — faster-whisper, Ollama, Anthropic, OpenAI-compatible — never bound to a single API.
  • Config presets (homelab / cloud / hybrid) in localStorage; off by default wherever it's embedded.
IoT · ESP32
mosquiddodeth
ESP32 · PlatformIO

Automated backyard mosquito sprayer — a multi-zone ESP32 controller with an iPhone web UI.

  • Multi-zone spray scheduling with a PIN lock, tank sensor, rain delay, and timezone handling.
  • An iPhone-optimized web UI served straight off the ESP32 (LittleFS + ESPAsyncWebServer).
  • OTA auto-update: devices poll a version.json every 24h (firmware v1.3.0).
QA · Windows
vpx-autoqa-monitor
PowerShell · SQLite

Turns a virtual-pinball cabinet's silent QA run into a categorized, triage-ready failure report.

  • A watcher + janitor daemon force-kills hung VPinballX processes and captures the modal dialog text via Win32 EnumWindows.
  • A SQL pass joins kills and crashes against the Popper database into a sorted, triage-ready failure list.
  • Documents the Session 0 vs Session 1 gotcha and AutoQA's ~3–5% zombie-process leak over a 1,300-table sweep.
AI · Voice
agentic-voice
Python · Home Assistant

A local-first “Jarvis” — an agentic voice assistant as a Home Assistant component, AI kept on-prem.

  • A HA conversation component with sentence-buffered TTS streaming and an LLM warmup that pre-builds the KV cache at startup.
  • An n8n workflow runs a local Gemma model with 23 tools; an ask_cloud tool escalates to Claude with local fallback.
  • Runs on an Unraid 3090 — Ollama + faster-whisper + a custom GPU Piper voice (Jarvis and GLaDOS).
shane@linuxbrew:~$ contact --now
► shane@linuxbrew.com ·
shane@linuxbrew:~$ deploy --edge --quiet