Don't Ship AI

Just because AI is out there doesn't mean you should use it. I know — it feels like we've struck gold. Everyone is rushing to shove AI into their software. But I'm advocating for taking a step back.
The email validation test
Take a basic example: you want to validate someone's email format. There's a million and one ways to do that already. Not the least of which is regex.
Sure, you could make a call to an LLM with the user's input, asking it whether the string looks like a valid email. But there are real problems with that approach.
It's slower. It is way quicker for a program to process a regex and give you an instant answer than to reach out to an LLM provider. The round trip alone kills you — and local models probably aren't even that great at recognizing email formats because there aren't enough parameters to do so.
It costs more. It costs literally nothing to turn another CPU cycle to process a regex. Calling out to an infrastructure provider that spins up a bunch of GPUs just to answer your query? That's not free.
It's less reliable. Say the provider you're calling is overloaded or their servers are down. Better yet — they messed something up and the non-deterministic AI decided a gibberish string is indeed an email. And you put it straight in your database.
First principles thinking, taking precautions — call it whatever you want. I don't think just because AI is there, we should shove it into every solution.
AI tools vs. AI in your stack
I've been building software with AI tools as soon as they came out. I use them every day, especially Claude Code. It has absolutely accelerated the rate at which I can produce software.
What I haven't found is a genuine use case for an AI call in my actual software stack. Maybe I just haven't worked in the industry where I'd need to summarize huge heaps of data or perform sentiment analysis. But for the work I do — there's a better, cheaper, faster tool for every job I've needed done.
The takeaway
AI is an incredible development tool. That doesn't automatically make it the right runtime dependency. Before you reach for an LLM call, ask yourself: is there already a deterministic, reliable, free way to solve this? Most of the time, there is.
If you've found truly useful ways to integrate AI into your applications, I'd genuinely like to hear about it. But until then — think twice before shipping it.