Skip to content

Blog

Writing

Engineering, AI experiments, and software craft.
Apr 15, 2025
· 8 min read

Building a RAG Pipeline in Laravel with pgvector

How I built the AI chat on this site: chunking documents, generating embeddings with Voyage AI, storing them in pgvector, and answering questions with Claude.

Apr 8, 2025
· 9 min read

A Code Review Playbook That Catches Real Bugs

The three-pass review structure I've refined over a decade — when to push back, how to write comments, and what makes reviews valuable instead of performative.

Mar 20, 2025
· 10 min read

Laravel Queues at Scale: Lessons from 10 Million Jobs

Patterns and pitfalls I've learned running Laravel queues in production — from connection pooling and job chunking to dead-letter handling and zero-downtime deployments.

Mar 14, 2025
· 10 min read

How to Actually Work Async in a Distributed Team

Six years of async-first remote work — writing self-contained messages, when to switch to a call, time-zone etiquette, and the trap of over-rotating on async.

Feb 20, 2025
· 11 min read

The Honest Economics of Selling WordPress Plugins

Six years of selling on WordPress.org — conversion rates, pricing tiers, what drives installs, the support burden, and when to walk away from a plugin.

Feb 10, 2025
· 7 min read

Adding PHPStan to a WordPress Plugin (Without Losing Your Mind)

A practical guide to getting PHPStan running on a production WordPress plugin, including the stubs you need and the rules you'll want to ignore.

Jan 30, 2025
· 8 min read

Hunting N+1 Queries in Laravel: Tools, Strict Mode, and Fixes

How to find N+1 queries with Telescope, Debugbar, and preventLazyLoading() — and the eager-loading patterns that fix them, including the polymorphic gotcha.

Jan 12, 2025
· 9 min read

10 Eloquent Query Optimizations, in Order of Effectiveness

A systematic optimization checklist for Eloquent — select(), chunk(), chunkById(), withCount(), pluck(), subquery selects, and when to bypass the model layer entirely.

Dec 5, 2024
· 12 min read

Building a WooCommerce Payment Gateway from Scratch

Everything you need to know to build a production-ready WooCommerce payment gateway integration — checkout flow, webhooks, refunds, and subscriptions.

Nov 22, 2024
· 10 min read

Six Redis Patterns Every Laravel App Eventually Needs

Cache, sessions, queues, rate limiting, locks, pub/sub — the Redis patterns I use in production Laravel apps, with the trade-offs and the failure modes.

Oct 20, 2024
· 9 min read

Building a Dark Design System with Tailwind CSS v4

How I designed the D1 "Dark Precision" system for this site — CSS-first @theme config, custom tokens, and a palette that passes WCAG at every level.

Aug 15, 2024
· 6 min read

WP-CLI Tips That Actually Save Time

Practical WP-CLI commands and custom commands I use daily to speed up WordPress development, deployments, and debugging.