<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Brian Kimball</title><description>Systems Engineer and Developer. Writing about IBM i modernization, full-stack web development, network infrastructure, and building tools from the metal up.</description><link>https://brian-kimball.com/</link><language>en-us</language><item><title>Welcome to the Atomic Drafting Room</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate><category>design</category><category>astro</category><category>development</category></item><item><title>Bringing AI to IBM i: An MCP Server with 31 System Tools</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate><category>typescript</category><category>development</category><category>ibmi</category><category>ai</category><category>mcp</category></item><item><title>Surveyor: A Field-Tested Network Discovery Tool for MSPs</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>From Raspberry Pi prototype to Wails desktop app: how Surveyor replaces manual nmap commands with stealth scanning and RFC 1918 auto-discovery.</description><pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate><category>development</category><category>golang</category><category>reactjs</category><category>networking</category></item><item><title>Renaissance Technical: Designing with AI</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>How I used OpenCode and Gemini to build a &quot;Renaissance Technical&quot; design system that pits rigid grids against organic circles—and why AI is the brush, not the painter.</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate><category>design</category><category>ai</category><category>astro</category><category>development</category></item><item><title>Designing Fully Redundant Infrastructure: Physical and Logical Layers Explained</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>How redundant compute, SAN mirroring, load balancers with CARP, and synchronous database clustering eliminate both hardware failures and maintenance windows.</description><pubDate>Sun, 30 Nov 2025 00:00:00 GMT</pubDate><category>networking</category><category>servers</category></item><item><title>A Production-Ready Knex Dialect for IBM i DB2</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sat, 20 Sep 2025 00:00:00 GMT</pubDate><category>typescript</category><category>development</category><category>ibmi</category></item><item><title>TanStack Hono: A Lightweight SSR Monolith Without the Meta-Framework Weight</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>Single-process SSR + CSR with type-safe RPC, Vite, React, and Hono. The goal is low operational complexity without giving up dynamic UI.</description><pubDate>Sat, 20 Sep 2025 00:00:00 GMT</pubDate><category>typescript</category><category>development</category><category>reactjs</category></item><item><title>Building a Type-Safe Full-Stack Starter with Fastify and Astro</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>A complete starter template combining Astro, Fastify, tRPC, Lucia, React, NextUI, and Drizzle into a single type-safe monolith.</description><pubDate>Thu, 25 Jul 2024 00:00:00 GMT</pubDate><category>development</category><category>fastify</category><category>astro</category><category>typescript</category></item><item><title>Life Update</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sat, 01 Jun 2024 00:00:00 GMT</pubDate><category>life</category></item><item><title>Go Is the Right Choice for Network Tools. Here Is the Proof</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sat, 20 Jan 2024 00:00:00 GMT</pubDate><category>development</category><category>golang</category></item><item><title>Why I Picked Up Go After 20 Years of Web Development</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Thu, 16 Nov 2023 00:00:00 GMT</pubDate><category>development</category><category>golang</category></item><item><title>Stop Using Arrays for Real-Time State in React</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>Using a native Map instead of an array eliminates O(n) scans for updates and simplifies real-time event handlers in React.</description><pubDate>Mon, 06 Nov 2023 00:00:00 GMT</pubDate><category>development</category><category>reactjs</category><category>javascript</category></item><item><title>Using Proxy ARP on pfSense to Bridge Remote Networks Across an IPSec Tunnel</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>How to answer ARP requests for remote IPs using pfSense Virtual IPs and port forwarding. Useful for VPN tunnel access without renumbering subnets.</description><pubDate>Fri, 03 Nov 2023 00:00:00 GMT</pubDate><category>pfsense</category><category>networking</category></item><item><title>Three Datacenters, One Career: From a Single Rack to Full Redundancy</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Fri, 13 Oct 2023 00:00:00 GMT</pubDate><category>datacenter</category><category>installation</category></item><item><title>Advanced Job Scheduler</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Thu, 12 Oct 2023 00:00:00 GMT</pubDate><category>ibmi</category></item><item><title>A Modern Feathers.js Stack on IBM i: Real-Time APIs on DB2</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sun, 27 Aug 2023 00:00:00 GMT</pubDate><category>development</category><category>reactjs</category><category>feathersjs</category><category>typescript</category><category>ibmi</category></item><item><title>Why Node.js Is My Default for Backend Automation</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sun, 13 Aug 2023 00:00:00 GMT</pubDate><category>development</category><category>node</category></item><item><title>A Feathers.js Prototype for Customer Demographics and Automated Emails</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sun, 16 Jul 2023 00:00:00 GMT</pubDate><category>development</category><category>reactjs</category><category>feathersjs</category><category>typescript</category></item><item><title>Link Aggregation on IBM i: LACP LAGG for Performance and Failover</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>Step-by-step IBM i LAGG setup using *AGG resources and LACP policy, plus the gotcha we hit with Cisco Nexus VPCs.</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate><category>datacenter</category><category>ibmi</category></item><item><title>Drawing Our Puppy as a Bluey Character</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>A custom illustration of our puppy Cookie, rendered in the Bluey animation style to help the kids through a big family transition.</description><pubDate>Fri, 24 Feb 2023 00:00:00 GMT</pubDate><category>illustration</category><category>hobby</category><category>design</category></item><item><title>Authenticating pfSense OpenVPN Against IBM i LDAP</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sun, 02 Oct 2022 00:00:00 GMT</pubDate><category>ibmi</category><category>pfsense</category></item><item><title>A Network Discovery App for MSP Client Onboarding</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Fri, 12 Aug 2022 00:00:00 GMT</pubDate><category>development</category><category>solidjs</category><category>fastify</category></item><item><title>Building a Hosting Brand Site with Next.js and Real DC Photography</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>We needed a dedicated, marketable site for our hosting services. I used actual data center photography and Next.js to build it.</description><pubDate>Fri, 14 Jan 2022 00:00:00 GMT</pubDate><category>design</category><category>nextjs</category></item><item><title>Tracking Warehouse Inventory with Laravel, Vue.js, and Barcode Scanning</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>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.</description><pubDate>Sat, 08 Jan 2022 00:00:00 GMT</pubDate><category>development</category><category>vuejs</category><category>laravel</category></item><item><title>NFT PFP Idea</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>Experimenting with profile-picture art styles led to this character concept—part illustration exercise, part curiosity about digital ownership.</description><pubDate>Sun, 21 Nov 2021 00:00:00 GMT</pubDate><category>illustration</category><category>hobby</category><category>design</category></item><item><title>A Badge-Scanning Time Tracker for Warehouse Floors</title><link>https://brian-kimball.com/blog/undefined/</link><guid isPermaLink="true">https://brian-kimball.com/blog/undefined/</guid><description>Warehouse employees scan badges or barcodes to log tasks. I built a Vue.js + Laravel app with URL-synced filters for easy reporting.</description><pubDate>Mon, 04 Oct 2021 00:00:00 GMT</pubDate><category>development</category><category>vuejs</category><category>laravel</category></item></channel></rss>