Technical Blog

What I've learned shipping web apps, native Apple apps, and enterprise systems.

Security

Supply-chain attacks, code scanning, and the OWASP Top 10.

Thumbnail for WordPress Was Already a Security Nightmare. AI Agents Are About to Make It Unlivable.
WordPressSecuritySupply Chain Attacks+5 more

WordPress Was Already a Security Nightmare. AI Agents Are About to Make It Unlivable.

Someone spent six figures on 31 trusted WordPress plugins, planted a PHP deserialization backdoor, and sat on it for eight months before lighting it up in April 2026. Nothing in WordPress malfunctioned: the plugin ecosystem worked as designed. Here's why AI agents make every outdated install a bigger target, and what to move to instead.

11 min read
Thumbnail for Secure Vibe Coding is Possible
SemgrepSecurityClaude Code+7 more

Secure Vibe Coding is Possible

AI coding tools generate code faster than ever, but security scanning hasn't kept pace. Learn how to integrate Semgrep into your AI-assisted workflow with the Semgrep MCP server for real-time vulnerability detection, a pre-commit hook, and GitHub Actions for CI enforcement.

8 min read
Thumbnail for Stop Supply Chain Attacks: Why Your Build Pipeline Should Use Locked Dependencies
npmpnpmSecurity+5 more

Stop Supply Chain Attacks: Why Your Build Pipeline Should Use Locked Dependencies

Switching CI from npm install to npm ci, committing your lockfile, and adding a release-age cooldown closes the window npm worms rely on. Why each layer works, and how to set them up for npm, pnpm, Yarn, and Bun.

7 min read
Thumbnail for OWASP Top 10 Security Priorities for Vue.js Developers
Vue.jsSecurityOWASP+3 more

OWASP Top 10 Security Priorities for Vue.js Developers

The OWASP Top 10:2025 mapped to Vue 3: what each risk looks like in a Vue app, the Composition API patterns that help, and the parts only your backend can fix. Covers the new supply chain and exceptional-conditions categories.

14 min read

Developer Tooling

Framework choices and the tools I use day to day.

Infrastructure

Hosting, analytics, and the services behind my own projects.

Enterprise CMS

Sitecore work from enterprise projects.

AI & Automation

Prompts, MCP tools, model hosting, and writing for AI answer engines.

Thumbnail for Anthropic Deleted 80% of Claude Code's System Prompt. Here's What to Delete From Yours.
Claude CodeAIClaude Opus 5+4 more

Anthropic Deleted 80% of Claude Code's System Prompt. Here's What to Delete From Yours.

Claude Opus 5 lands near Fable 5 intelligence at Opus 4.8 pricing, and the prompting habits that made Opus 4.8 good now make Opus 5 worse. Anthropic cut over 80% of Claude Code's system prompt with no measurable loss on coding evals. Here's how the model compares, plus what to cut from your CLAUDE.md, your verification instructions, your subagent caps, and the one API change that returns a 400.

20 min read
Thumbnail for Your Claude Prompts Are an Audit Gap. LiteLLM Closes It.
LiteLLMClaudeAI+6 more

Your Claude Prompts Are an Audit Gap. LiteLLM Closes It.

A staff engineer's case for putting LiteLLM in front of Claude to close the audit gap: PII filtering, secret detection, virtual keys per user, and a real log of every prompt. Config examples and an honest take on the tradeoffs.

10 min read
Thumbnail for GEO is the New SEO: Optimizing for AI Answer Engines in 2026
GEOSEOAI+2 more

GEO is the New SEO: Optimizing for AI Answer Engines in 2026

Generative Engine Optimization (GEO) is the discipline of getting cited by ChatGPT, Perplexity, Claude, and Gemini. It shares a foundation with SEO, but much of the work is new territory, and it's worth learning now.

10 min read
Thumbnail for Anthropic Dropped Subscription Support for OpenClaw. OpenRouter Is the Fix.
OpenClawOpenRouterAI+7 more

Anthropic Dropped Subscription Support for OpenClaw. OpenRouter Is the Fix.

Anthropic's April 2026 billing change dropped subscription support for OpenClaw and other third-party harnesses. OpenRouter is the cleanest migration path: same models, automatic failover, and freedom to switch providers without reconfiguring anything.

8 min read
Thumbnail for I Built an API So My AI Agent Could Read My RSS Feeds
AIRSSAPI+6 more

I Built an API So My AI Agent Could Read My RSS Feeds

I follow around 35 RSS feeds for infrastructure security, DevOps, and full-stack engineering. Most of it is noise. I built a JSON API for SereneReader so my OpenClaw agent could check my feeds three times a day and tell me what actually matters.

10 min read
Thumbnail for Cut LLM Context Usage by Up to 90%: Filter Azure DevOps MCP Tools with a Proxy Server
MCPAzure DevOpsClaude+4 more

Cut LLM Context Usage by Up to 90%: Filter Azure DevOps MCP Tools with a Proxy Server

The Azure DevOps MCP server exposes 70 tools consuming 55,125 tokens of Claude's context window. Learn how to build a filtering proxy server that reduces this to just the tools you need, reclaiming up to 90% of your context for actual work.

15 min read
Thumbnail for Building MCP Tools on Umbraco 13 and N8N AI Chat Workflows
MCPUmbraco 13N8N+6 more

Building MCP Tools on Umbraco 13 and N8N AI Chat Workflows

How I built an AI assistant over a healthcare technology vendor catalog with custom MCP tools inside an Umbraco 13 site, ElasticSearch instead of a vector database, and one n8n agent instead of several. Tool design, the system prompt, and why the multi-agent version lost.

10 min read

Other

Posts that don't fit a category above.

Contact

Drop me a line. I read everything and reply within one business day.

Required fields are marked “(required)”.