41554 blogs · [ { "id": "01a08785-654b-70f9-960f-df7c34eb8133", "title": "Startup advisory board: build a portfolio, not a committee", "url": "https://ianlpaterson.com/blog/startup-advisory-board-portfolio-not-committee/", "published_at": "2026-08-09T17:52:05+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c35d083eb", "title": "How I built a private LLM router: one boring lookup table decides what leaves my network", "url": "https://ianlpaterson.com/blog/building-llm-router/", "published_at": "2026-07-12T19:46:26+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c36a9933c", "title": "Best LLM for Coding in 2026: Picks by Use Case", "url": "https://ianlpaterson.com/blog/best-llm-for-coding-2026/", "published_at": "2026-07-07T17:20:00+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c36f4af7a", "title": "Linux OOM Killer vs SSH: How to Stop Getting Locked Out of Your Own Server", "url": "https://ianlpaterson.com/blog/oom-lockout-ssh-survival-hardening/", "published_at": "2026-07-02T16:57:00+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c37e16ef8", "title": "I Strapped a $15 Sensor to My GPU. It Read the Load Backwards. Here’s How to Calibrate It.", "url": "https://ianlpaterson.com/blog/gpu-thermal-side-channel-reads-load-backwards/", "published_at": "2026-06-28T17:33:00+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c38e1186f", "title": "My brand-new SLZB-07 Zigbee coordinator shipped too old: fixing “EZSP protocol version 12 is not supported by host”", "url": "https://ianlpaterson.com/blog/genuine-hardware-stale-firmware-zigbee/", "published_at": "2026-06-24T18:05:00+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c39b6d4de", "title": "Why docker image prune Won’t Fix a Full Root Disk: The Containerd Snapshotter Trap", "url": "https://ianlpaterson.com/blog/docker-image-prune-containerd-disk-full/", "published_at": "2026-06-19T16:41:00+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c3a2c4069", "title": "Self-Hosting RustDesk on Tailscale Without Opening a Single Public Port", "url": "https://ianlpaterson.com/blog/rustdesk-self-host-tailscale/", "published_at": "2026-06-14T17:12:00+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c3ae72b41", "title": "Why Your llama.cpp Benchmarks Are Wrong: GPU Architecture and Real Numbers", "url": "https://ianlpaterson.com/blog/llama-cpp-build-from-source-cuda-benchmark/", "published_at": "2026-06-07T00:10:00+00:00" }, { "id": "01a08785-654b-70f9-960f-df7c3bca2091", "title": "I Built a Honeypot to Catch Prompt Injections in Claude Code (Here’s What It Caught)", "url": "https://ianlpaterson.com/blog/claude-code-prompt-injection-canary/", "published_at": "2026-06-03T16:48:00+00:00" } ] posts Claim your blog
Back to ianlpaterson.com
Blog · corpus.blog/blogs/ianlpaterson.com/posts

ianlpaterson.com

ianlpaterson.com

2026