What Swift actors don't do
An actor serializes synchronous access, not two calls across a suspension. The transcription race that taught me the difference, and the four-line fix.
Developer · Father · Husband · Laravel Astronaut
I craft developer experiences. Twenty years of code, a decade of Laravel, and a current obsession with what LLMs can actually do in production.
I build Prism, a Laravel package for LLM integrations and workflows, and Iris, a personal AI system I keep writing about here.
Lately I’m building Halcyon, a markdown notes app for macOS with real vim bindings, and Sonari, on-device dictation that never touches the cloud.
An actor serializes synchronous access, not two calls across a suspension. The transcription race that taught me the difference, and the four-line fix.
I've been gone for four months, and I owe you an explanation. Since May 2025 I've been struggling with the hardest mental health crisis of my life, and in February my wife had a catastrophic ankle injury that required me to step back from everything. I'm using Laracon 2026 to come back to Prism and Iris sustainably, with real boundaries this time, because I'm finally ready to show up again.
I pulled sub-agent processing out of Horizon and gave it its own daemon. A long-running loop fit better than a queue, and the whole system got simpler.
Creator of Prism and Iris. 20 years of code, 13 years of Laravel, and a passion for building at the intersection of Laravel and AI. I'm looking for my next adventure
The Iris truth system got a major overhaul. Stricter promotion filters out temporal garbage, conflict detection catches contradictions before they merge into frankentruths, and generation tracking shows how derived each fact is from its original evidence.
I was updating docs when I realized the tier system was fundamentally flawed. We were using importance as a proxy for universality, and they're completely different things. This is how Truths fix that.
Learn how to extend Iris with custom tools and prompts using the local configuration system. We'll build a weather integration from scratch: an on-demand tool for fetching conditions and a context prompt that automatically injects weather data into every conversation.
What happens when an AI assistant remembers too much? The same thing that happens to humans: you need to forget intelligently. Here's how I built multi-generational memory consolidation for Iris
Had a rollercoaster of 2025 but 2026 is exciting. Announcing Iris.
Building my life co-pilot and partner. Lets talk about what we've built so far, starting with the memory problem.
More thoughts, links, projects, and personal updates. No cadence promises.