Thinking Off, Handoffs Missed: What I Measured Moving an Agent to Claude Haiku 5.5

Claude Haiku 5.5 thinks by default, and the obvious migration move is to turn that off. I ran 960 support conversations to see what it costs. With thinking off, the agent skipped a quarter of the handoffs it should have made. With thinking on at the lowest effort, none.

ArdiQ 1.0: I Was Wrong About Celery

In May I wrote that Celery was the safe default and migrated our backend to it. Three months later Celery broke our async code in production, and we replaced it with the Rust-core queue I'd been building on the side. This is what that cost, and what it taught the queue.

Celery Is Not Always the Answer: A Real Comparison of Python Task Queues

I migrated from ARQ to Celery at work. During that process I tested every serious Python task queue out there. Here's what the benchmarks say, and what they don't.

The Python Toolchain I Use in Production: uv, ruff, and ty

Why I replaced pip, black, flake8, and mypy with a single stack from Astral, and how I integrate it in CI/CD with GitHub Actions.