Blog
Welcome to the Atomic Drafting Room
Why I tore down the Renaissance Technical design and rebuilt the site in Raygun Gothic — atomic starbursts, chrome typography, and a turquoise-coral-gold palette that finally feels like me.
Bringing AI to IBM i: An MCP Server with 31 System Tools
A BYOK MCP server that exposes 31 facade tools for IBM i observability, job management, and security. Built to train new users and accelerate expert workflows.
Surveyor: A Field-Tested Network Discovery Tool for MSPs
From Raspberry Pi prototype to Wails desktop app: how Surveyor replaces manual nmap commands with stealth scanning and RFC 1918 auto-discovery.
Renaissance Technical: Designing with AI
How I used OpenCode and Gemini to build a "Renaissance Technical" design system that pits rigid grids against organic circles—and why AI is the brush, not the painter.
Designing Fully Redundant Infrastructure: Physical and Logical Layers Explained
How redundant compute, SAN mirroring, load balancers with CARP, and synchronous database clustering eliminate both hardware failures and maintenance windows.
A Production-Ready Knex Dialect for IBM i DB2
Streaming queries, emulated RETURNING, multi-row inserts, and a custom migration runner. This is the Knex dialect I wish existed when I started building on IBM i.
TanStack Hono: A Lightweight SSR Monolith Without the Meta-Framework Weight
Single-process SSR + CSR with type-safe RPC, Vite, React, and Hono. The goal is low operational complexity without giving up dynamic UI.
Building a Type-Safe Full-Stack Starter with Fastify and Astro
A complete starter template combining Astro, Fastify, tRPC, Lucia, React, NextUI, and Drizzle into a single type-safe monolith.
Life Update
Marriage, a new baby, and a pivot from Raspberry Pi tools to desktop apps. Here is what I have been building during the quiet months.
Go Is the Right Choice for Network Tools. Here Is the Proof
Six months into Go, I rewrote a network scanner and built a custom event bus. The language is simpler than expected, with one big limitation on IBM i.
Why I Picked Up Go After 20 Years of Web Development
After two decades of JavaScript, PHP, and Python, I am picking up Go to solve a real performance problem—and the early impressions are strong.
Stop Using Arrays for Real-Time State in React
Using a native Map instead of an array eliminates O(n) scans for updates and simplifies real-time event handlers in React.
Using Proxy ARP on pfSense to Bridge Remote Networks Across an IPSec Tunnel
How to answer ARP requests for remote IPs using pfSense Virtual IPs and port forwarding. Useful for VPN tunnel access without renumbering subnets.
Three Datacenters, One Career: From a Single Rack to Full Redundancy
A 12-hour overnight migration, redundant Nexus switches, and LACP LAGG groups. How we built a datacenter that sustains sub-1ms latency and zero-downtime maintenance.
Advanced Job Scheduler
The default IBM i job scheduler only runs daily, weekly, or monthly. Here is how the Advanced Job Scheduler finally unlocked hourly automation for my Node.js integrations.
A Modern Feathers.js Stack on IBM i: Real-Time APIs on DB2
Real-time WebSockets, REST APIs, and a Vite React frontend running directly on IBM i using Feathers.js and a custom Knex adapter for DB2.
Why Node.js Is My Default for Backend Automation
Node.js dominates my automation stack because the ecosystem is massive and the training barrier is low. Here is how I structure scheduled backend jobs.
A Feathers.js Prototype for Customer Demographics and Automated Emails
A proof-of-concept full-stack app using Feathers.js, React, Vite, and shadcn/ui to manage customer demographics and trigger anniversary and birthday emails.
Link Aggregation on IBM i: LACP LAGG for Performance and Failover
Step-by-step IBM i LAGG setup using *AGG resources and LACP policy, plus the gotcha we hit with Cisco Nexus VPCs.
Drawing Our Puppy as a Bluey Character
A custom illustration of our puppy Cookie, rendered in the Bluey animation style to help the kids through a big family transition.
Authenticating pfSense OpenVPN Against IBM i LDAP
Use the IBM i Tivoli LDAP server as a single source of truth for VPN and service authentication. Here is the full setup, including a Node.js script to sync user profiles.
A Network Discovery App for MSP Client Onboarding
A Node.js tool to automate nmap scans, whois lookups, and DNS queries during MSP onboarding. Built for the Raspberry Pi with Fastify and Solid.js.
Building a Hosting Brand Site with Next.js and Real DC Photography
We needed a dedicated, marketable site for our hosting services. I used actual data center photography and Next.js to build it.
Tracking Warehouse Inventory with Laravel, Vue.js, and Barcode Scanning
A vinyl fencing company needed a warehouse inventory system. I built a Vue.js SPA with barcode scanning and shareable filters, backed by a Laravel API.
NFT PFP Idea
Experimenting with profile-picture art styles led to this character concept—part illustration exercise, part curiosity about digital ownership.
A Badge-Scanning Time Tracker for Warehouse Floors
Warehouse employees scan badges or barcodes to log tasks. I built a Vue.js + Laravel app with URL-synced filters for easy reporting.