Blog
Writing on cybersecurity, going public, and what actually happens in the boardroom.
-
How I built a private LLM router: one boring lookup table decides what leaves my network
My LLM router decided privacy by matching keywords in the prompt. It leaked, and I tore it out the next day. What replaced it is one lookup table you can audit in twenty seconds.
-
Best LLM for Coding in 2026: Picks by Use Case
The best LLM for coding in 2026 is Claude Sonnet 4.6. It cleared all 38 tasks in my benchmark at 100% quality…
-
Linux OOM Killer vs SSH: How to Stop Getting Locked Out of Your Own Server
When the Linux OOM killer fires, ‘sshd is running’ stops meaning ‘you can log in.’ Four systemd and sysctl fixes that keep your login path alive through a memory storm.
-
I Strapped a $15 Sensor to My GPU. It Read the Load Backwards. Here’s How to Calibrate It.
A $15 Zigbee sensor on an open-air GPU reads load backwards in the fan airflow. An LLM falls for the same trick. Calibrate against nvidia-smi to fix both.
-
My brand-new SLZB-07 Zigbee coordinator shipped too old: fixing “EZSP protocol version 12 is not supported by host”
The SMLIGHT SLZB-07 connected, spoke the right protocol, then quit: EZSP version 12 not supported. Here’s the flash fix and how to pick the right channel.
-
Why docker image prune Won’t Fix a Full Root Disk: The Containerd Snapshotter Trap
docker image prune skips tagged images, and the real hog hides in /var/lib/containerd. How I traced a 99% root disk to the containerd snapshotter and fixed it.
-
Self-Hosting RustDesk on Tailscale Without Opening a Single Public Port
Run rustdesk-server-oss behind Tailscale with zero public ports, plus the macOS root-daemon config fight that ate an hour and nobody has documented.
-
Why Your llama.cpp Benchmarks Are Wrong: GPU Architecture and Real Numbers
I pulled an aging Quadro out of my homelab LLM box, dropped in an RTX 2060 SUPER, and the thing booted on…
-
I Built a Honeypot to Catch Prompt Injections in Claude Code (Here’s What It Caught)
I built a honeypot canary that screens web content with a deliberately gullible LLM before my AI agent reads it. Here is what it caught.
-
Free LLM API Tiers in 2026: What Groq, Cerebras, Mistral, Gemini and Cohere Actually Give You
On May 31, 2026, one of my LLM providers quietly deleted most of its free models, including the exact one my code…
-
Three Green Lies: Debugging a Self-Hosted LLM Observability Dashboard
Within a week of standing up the dashboard, three panels were showing bad data. None of them was a Grafana bug. I…
-
How I Drive WordPress From Claude Code (REST, Playwright, wp-cli)
Driving WordPress from Claude Code (Anthropic’s terminal coding agent) fights the platform’s core assumption roughly every other operation. WordPress was built for…
-
Sorting a Filesystem Hoard With Local LLMs: What 2,300 Files Told Me About My Obsidian Vault
What do 2,300 random files on a knowledge worker’s laptop actually look like? I let a local LLM tell me. TL;DR I…
-
Anti-detect browser benchmark 2026: 7 stealth tools, 31 Cloudflare targets, 651 verdicts
I built a scraper. Cloudflare killed it in 48 hours. I built a web scraper for Canadian small-cap stock data and Cloudflare…
-
Three Months of Speed-Up Experiments on a 3090 Ti: Autoregressive → DFlash → MTP for Qwen3.6-27B
TL;DR MTP wins on wall clock above output ~900 tokens. Below that, plain autoregressive is faster. The DFlash Decode Collapse. DFlash decode…
-
Building llama.cpp from source on a Dell Precision T5820 with an RTX 3090 Ti (after seven power cycles)
I pulled a Quadro M4000 out of a used Dell Precision T5820, dropped in an RTX 3090 Ti, and turned the box…
-
The LLM Kept Saying “Fixed.” For Three Months, It Wasn’t.
That afternoon a Slack bot told me a script had NEVER RUN. That was a lie. The script had pulled 81 weather…
-
Where to Work in Victoria BC: Coworking Spaces, Coffee Shops & Remote Work Guide (2026)
I’ve been working out of Victoria for 15+ years, which means I’ve cycled through most of these spaces at some point. A…
-
Tech Jobs & Internships in Victoria BC: The Complete Guide (2026)
At Plurilock, I’ve hired 15+ UVic co-op students over the past decade. Before that I spent years watching the Victoria tech hiring…
-
Stop Claude Code from Lobotomizing Itself Mid-Task
Claude Code has a feature called auto-compact that quietly destroys your session quality. The Problem I was three hours into a multi-file…
-
How I Track Claude, Codex, and Gemini Quotas from One Script
Updated May 30: added what I learned wiring these three together, plus the budget thresholds that now trigger automation. (If you’re trying…
-
Inference Arbitrage: How I Route 200+ Daily LLM Calls Across Five Models
Inference arbitrage means routing each AI task to the cheapest model that can handle it at acceptable quality, instead of sending everything…
-
LLM Benchmark Rankings 2026: 15 Models Tested on 38 Real Coding Tasks
Most LLM benchmarks measure raw intelligence. Real deployment decisions also depend on latency, format reliability, and data boundaries, including when a task…
-
LM Studio Errors on Apple Silicon: Prompt Truncation, Jinja Failures, and Crash Fixes
I spent about two weeks of evenings getting Qwen3-Coder-30B running reliably on a Mac Studio (M1 Max, 32GB) through LM Studio and…
-
Claude Code Memory System: MEMORY.md, Topic Files, and Automated Maintenance
The full architecture for giving Claude Code persistent memory across sessions: four layers of markdown files, two commands, five cron jobs, and the 8 design rules I derived from breaking it over 22 days.
-
OpenClaw: 13 Errors, $1.50/Month, and an AI Team That Doesn’t Need the Cloud
OpenClaw on Apple Silicon with a 24B local model: 14 real errors fixed, sub-agent delivery working, $1.50/month total. Every config documented.
-
Is CDL Worth It? A First-Hand Review of Creative Destruction Labs from a Founder Who Did It
CDL is worth it, with conditions. If you are a deep tech founder who needs rapid access to experienced operators and investors…
-
How I Met 54 Angel Investors in a New City With Zero Network (The Exact Method)
The Problem With Conventional Fundraising Advice The standard advice (warm intros, pitch events, accelerators) assumes you already have a network in the…
-
Victoria BC Tech Salaries in 2026: What Developers, PMs, and Designers Actually Earn
I’ve been hiring tech talent in Victoria since before the pandemic, first at a series of companies and now as CEO of…