Be kind to your AI

The Art of the Small Ask: How to Be Kind to Your AI
There are few days when you need to point your AI to an entire project. But then there are most days you need to do a lot of hard thinking yourself. This post is about the latter.
We need to start empathizing with our LLMs. They are incredibly powerful, but they thrive on clarity, not chaos. When we overload them with unnecessary context and tangled logic, we're setting them up to fail. The secret to getting brilliant results isn't a bigger model; it's a smaller, cleaner ask.
Think in Functions, Not Monoliths
This brings us back to a timeless principle of good programming. Large, monolithic functions that do too many things are fragile and hard to reason about. The most robust systems are composed of small, simple functions that operate on data, with as few side effects as possible.
It turns out, this is also the kindest way to work with an AI. A small, pure function is the perfect unit of work for an LLM. The context is minimal. The goal is unambiguous. The chance of success is incredibly high.
I find that programming in Clojure naturally enforces this discipline. The benefits are too many to fit 1 blog post. But my team, like most, doesn't use it. So, I've developed a workflow that keeps me in the zone.
My Zehen Workflow: The Power of Small Asks
- I do the hard work of thinking first. I break down a complex problem into a chain of simple, pure functions—the Clojure way. I work on implementation and tests on a ClojureScript repl with access to all kind of npm packages, all kinds of domain data, tests, schemas, specs and utilities i've curated over time.
- Once satisfied with the working solution in the cljs repl, I use a cheap AI as a rudimentary CLJS-JS compiler/linker." Through my Zehen assistant on Telegram, I ask a cheap (or even free) LLM to translate one clean function at a time from Clojure to JavaScript. These js functions show up there only after all tests translated from clojure passes. And I take them forward only when I can vouch for every single line of the translated output.
The AI isn't inventing a complex solution from ambiguous English prompts. It's performing a series of simple, well-defined translations. Because the asks are small and unambiguous and the context is clean, it delivers code that meets my standards most of the time.
The Power of Asymmetry
This workflow is a game-changer for a specific problem I have: I’m not confident enough in JavaScript syntax to write it from scratch. The mental friction is too high.
But I can read it perfectly. I’ve seen enough JS in my career to know when something feels off.
This process allows me to stay in my zone of architecting-designing-composing systems most of my working time.
I'm sure many of us have a similar asymmetry. You might be a brilliant strategist who struggles with polished prose, or a great designer who can't code HTML. This workflow can be adapted for any of those "pairs".
The bigger lesson is this: It literally pays you to be kind to your AI. Dont break your bank. Break your problems down and simplify instead.
But then, wasn't this the art of programming anyway in the first place?