Jumping between code, AI, and real-world builds. Powered by coffee. Grounded in forests. Living nomad.
Middle-aged, caffeinated, and perpetually curious. I split my time between writing code, experimenting with AI, and building things in the real world — sometimes all three at once.
I'm not here to be polished. I'm here to document the messy middle — the broken builds, the late-night breakthroughs, and everything that happens when you refuse to stop learning.
Full-stack tinkering. Laravel, JavaScript, whatever gets the job done.
Exploring the frontier. Building with AI, not just talking about it.
Because not everything worth building lives on a screen.
Writing about what I'm building, breaking, and figuring out along the way.
Walkthroughs, builds, and the occasional rant. Raw and unfiltered.
AI tools, side projects, and the weird stuff that happens when you push buttons.
Twelve commits of 'make this page look right' — and the most useful thing all day was being told the thing I'd just hard-coded was already a choice on the Appearance screen.
A lookup that takes the first matching row in any tenant is fine until there are two tenants. And a unique index can quietly prevent the second one from ever configuring anything.
Route model binding ran before the business-unit context was set, so every module route resolved records from anywhere. One line in a priority list.
Whether you're into code, AI, or just want to swap build stories — I'm always down to connect.