Stop writing code by hand (and feel the friction)
I know LLMs are a contentious topic. I’m not here to hype them or try to make you use one if you’re morally opposed to them. That’s not what this post is about.
But if you’re using LLMs in your day-to-day workflow, and you’re only using them
as assistants that you ask questions of (like a glorified Google in your
terminal or IDE), or if you call on them like a genie, only when you think
they’re fit for the task (e.g. “change variable x to be y”), then this post
is for you.
I think the best next step you can take is to close your editor or IDE and stop writing code by hand.
Why?
Not because writing code by hand is bad or slow. Or because we need to burn more tokens to make some weird flex. Not even because the CEO of your company mandates it.
I think you should stop writing code by hand because working with LLMs opens up a new way of working. And the best way to learn how to work in that new way is to stop writing code by hand. It’s only then that you’ll discover all the friction.
Having the LLM write the code doesn’t mean that you can’t look at what it creates (that’s another topic for another day). And very importantly, it doesn’t mean you have to accept what it writes in the way it writes it.
That discrepancy between what you want and what it does – that’s the friction I want you to feel.

But don’t revert to writing code by hand! If you dislike what the LLM writes, stop, take a minute, and try to think, “how could I have gotten it to do what I wanted in the first place?” Then, try again.
Maybe the LLM is producing too much output (find a way to work in thinner slices), or maybe it’s deviating from a standard you have in your codebase (find a way to automatically enforce that standard), or maybe it’s writing tests in a particular flavor you don’t like (then you realize the LLM is just copying the style from another file, and your codebase is inconsistent. Make it consistent).
Whatever the case, that feeling of frustration that the LLM isn’t doing what you want is good (in this case). It’s your spider-sense telling you that using the LLM in its raw form is not good enough for what you want. You have to learn how to use the new tool and its ecosystem.
Maybe you need some new “skills” or planning tools or something else. Whatever the case, the simple action of not writing code by hand and feeling the friction is opening an entirely new way of working.
But remember (and this is important too) that whenever you’re learning something new, you might go a bit slower at first. Remember that (especially if you’re a very senior engineer), because it might have been a long time since you last struggled so much with a new tool.
You probably already have your setup tuned perfectly to behave just the way you want it. And now, well, now you have a machine that everyone says will speed you up, but it’s simply slowing you down. Give it time. Work on removing that friction.