Tech Articles
Every write-up on the site — homelab, automation, AI, trading tools, and automotive tech
- A Local AI Search Engine for My NotesMarkdown notes synced phone to PC with Syncthing, summarized and semantically searchable by a local LLM. No subscriptions, nothing in the cloud.
- Migrating ESXi to Proxmox Without Losing Your ZFS PoolsI swapped a 2020-era ESXi box over to Proxmox and moved TrueNAS CORE to SCALE in one afternoon, with a USB stick as the whole rollback plan.
- No Plaintext Anywhere: A Secrets Pass Over the Whole LabBefore mirroring my repos to GitHub, I audited every place a credential could hide. Found a few. This is what the pass looked like.
- Building an Off-Road Sim From the Physics UpCustom raycast suspension in Unity, no WheelCollider. The one-system architecture lesson, and the launch-into-orbit bug that came down to initial conditions.
- Swapping a 3.0 Into My E46 the Right WayRod knock killed the 2.5. What went into sourcing a clean M54B30, why the rod bearings stayed untouched, and the while-it’s-out list that makes a swap last.
- Building a Stock Screener I Can Actually TrustThe rebuild rule: the tool is not allowed to flatter me. Verified fills, buy-and-hold benchmarks, and a loss autopsy for every losing trade.
- When the Right Part Doesn’t Exist, Print ItA firewall bracket nobody sells, printed in an afternoon. CAD is the skill; the printer is just the output device.
- Checking on the Lab from AnywhereWireGuard gets me into the lab from anywhere through one UDP port. The real lesson is what the tunnel shouldn’t excuse behind it.
- Why I Self-Host GitLab and Still Mirror to GitHubRunning my own GitLab means backups, upgrades, and runners are my problem. That’s the point. GitHub stays as the mirror.
- Python as the Brain, Ansible as the HandsSpreadsheet IPAM fails the moment two people edit it. A small Flask tool where Python makes the decisions and Ansible touches the devices.
- Homelab Monitoring Without the GuessworkTelegraf, InfluxDB, and Grafana in Docker. Numeric OIDs over MIBs, dashboards provisioned from git, and a diagnosis story about sparse graphs.
- Network Configs That Back Themselves UpAnsible pulls the configs, vault encrypts them, git keeps the history, Semaphore runs it on schedule. NetBox tells everyone what exists.
- Automating a Legacy Cisco Switch with AnsibleMy 2960G predates most of the tools trying to manage it. Legacy SSH crypto, paramiko pins, and the other gotchas of automating old IOS.
- From Pine Script to a Python Trading PlatformCustom TradingView indicators grew into a full Python platform: an S&P 500 scanner, honest backtesting against buy-and-hold, and a paper-trading bridge.
- One Shared Brain for All My AI AssistantsI got tired of my AI tools forgetting everything and each other, so I built them one shared memory that runs on my own hardware.
- AI OrchestratorOne orchestrator, three scoped sub agents, and a two-strikes escalation rule. What a toy game taught me about running small local models as a team.
- Home Lab AI UpdateI’ve been running a home lab since 2002, but the last few weeks it’s turned into something closer to a full enterprise analog: NetBox as the source of truth, Ansible… Read more: Home Lab AI Update
- OPNsense Home SetupMy network runs modem to OPNsense to a Cisco 2960G. The OPNsense box is a repurposed Dell thin client, and I 3D-printed a bracket so it mounts under the desk,… Read more: OPNsense Home Setup
- Junkyard Python ScraperI wanted a faster way to see what was showing up at the local junkyard without clicking through their website every day. So I built a Python scraper that pulls… Read more: Junkyard Python Scraper
- DIY Solar InstallWhen I set up my solar system, I wanted it to actually make sense. Paying someone $20k+ to install panels basically defeats the point of going solar. So I did… Read more: DIY Solar Install
