Working Skillfully With AI
There's a lot of discussion on what AI can't do well.
Far more than with other tech. My Vitamix can't smoke a turkey; my bluetooth speaker doesn't attend Zoom meetings in my stead; my vacuum won't even attempt to teach my child phonics. Nobody regards these as limitations worth mentioning. In fact you'd be considered a moron for even bringing them up in conversation.
Of course, AI is versatile and open-ended, which encourages probing to find the outer boundaries of its abilities. But the AI of late 2025 is extremely limited. It takes no effort to find tasks it won't handle well.
For instance, here's something AI is awful at: Answering a difficult question correctly on the first try. Macwright (superb blogger, even when wrong) compiled a list of different AIs' attempts at some obscure DuckDB query syntax; it was a catastrophe. Claude, ChatGPT, Kimi, Qwen, and Gemini all missed on the first try, often because they hallucinated non-existent syntax for the query.
But the problems with Macwright's test are:
- it uses AI wrong and
- it asks the wrong question
It's the wrong question because nobody cares whether AI knows obscure DuckDB syntax cold; people only care whether AI can find the right syntax faster than they can. It makes no difference to me if Claude needs to hallucinate 100 guesses before finding the right syntax—as long as it can test those 100 guesses in a few seconds, which it can.
Which brings me to the second problem with the test: using AI wrong. Borderline nobody who codes with AI is typing their questions into ChatGPT and then pasting the response back into their editor, as Macwright seems to have done with his test.
The proper way to code with AI is to run Claude Code, or a Cursor agent, or something similar; give the agent bash access; clearly explain the outcome you want; and let it work. When I gave Macwright's question to Claude Code running in my sandbox, it found the answer in about a minute. Along the way it wrote and executed a node script to verify the solution. The same work would have taken me at least half an hour.
To me, compiling examples of AI's limitations isn't interesting anymore. Perhaps because over the past year, I've seen AI complete so much productive work, so successfully, that questions about AI's basic ability and usefulness are now settled. AI is capable; it's useful. We can move onto other topics now.
I am interested in how to work skillfully with AI. I'm finding this looks a lot like working skillfully with another person, at least in this regard: you have to appreciate what they do well, and make them do exactly that.
In tech, there are many, many engineers who can only handle very specific tasks in very specific ways. Maybe they only understand one part of the stack; maybe they need precise tickets with minimal ambiguity. These people aren't tanking their companies and they aren't getting chased out of the industry; rather they are building the majority of the software we all use. Their employers find a way to use their talents, such as they are.
Perhaps you are a better engineer than that: a versatile problem solver who thrives on uncertainty. But if you've gotten anywhere in tech, you've learned to work with engineers who have the limitations described above: you give them tasks you know they can handle, with the context they require, and the oversight needed to keep them on track. Under those conditions, even a limited engineer can be extremely productive—particularly if they work like an absolute maniac, as AI will.
This framing of AI—as a colleague of sorts, whose abilities I have to learn and consider as we work—has made working with AI much more productive, much less frustrating. Certainly it's gotten me further than endless carping about things AI can't do at all.