Ian L. Paterson
Practitioner notes on AI agents, cybersecurity, and building public companies in Canada.
Featured Guides
- Guide to Victoria’s Tech Community Companies, coworking, exits, and what makes the ecosystem tick.
- Getting To & From Victoria, BC Every route compared: ferries, flights, floatplanes, and driving.
- Gear That Endures A decade of travel, use, and failure. What survived and what didn’t.
- Tech Innovation Policy in Canada Trust, disclosure, and what Canadian tech policy actually needs.
Ian’s personal blog.
or connect on Linkedin
-

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 the first try. The driver saw both cards.…
-

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 was calling. My code didn’t change. The vendor’s…
-

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 had built a Grafana dashboard to watch my…
-

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 humans clicking buttons. Last week I burned 90…
-

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 built a productized CLI called random-file-sorter from a…
-

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 blocked it within 48 hours. After testing seven…
-

Three Months of Speed-Up Experiments on a 3090 Ti: Autoregressive → DFlash → MTP for Qwen3.6-27B
The setup The starting line was 43 tokens per second decode on vanilla llama.cpp. The finishing line, three months later, is 39 to 49 tokens per second decode that doesn’t…
-

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 into a homelab inference node running Qwen3.6-27B at…
-

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 observations two minutes earlier. Unwinding the lie took…