All posts
AIWorkflowClaude Code

How I actually use AI to ship

Published May 12, 2026 ยท 5 min read

Let me be upfront about something

I use AI tools every day. Claude Code has genuinely changed how fast I move on certain things. But I'm also a bit tired of the discourse โ€” either "AI will replace developers" or "AI is useless hype." Neither is accurate for me.

Here's my honest experience after shipping real products with it.

Where it actually helps

Boilerplate is the obvious one. I can describe a NestJS controller with a particular shape, and it writes the skeleton. I can say "add pagination to this endpoint" and it adds the right query params, the DTO, the service method. Stuff that's purely mechanical โ€” I don't need to think about it anymore, which is genuinely nice.

Translations are huge for me. My portfolio and BookUp have content in Uzbek, Russian, and English. Before, that meant sitting with Google Translate plus manual cleanup for every string. Now I write the English version, give it context ("this is informal, conversational, aimed at small business owners"), and get a first draft in uz/ru that's actually decent. Still review it, but it's 80% done.

Exploration. When I'm unfamiliar with something โ€” say, Telegram's initData HMAC verification โ€” I can have a back-and-forth that's faster than reading docs linearly. "What are the gotchas with this?" gets me to the interesting stuff quickly.

Refactoring with a clear spec. "Rename all these fields from camelCase to snake_case" or "extract this repeated pattern into a helper" โ€” mechanical changes in a known codebase, AI handles this well.

Where it doesn't help

Architecture decisions. What should be a separate service vs. staying in a monolith? Does this feature belong in the booking flow or the tenant dashboard? Should we use a queue here or just process synchronously? AI gives opinions, sometimes confident-sounding ones, but they're not grounded in the actual constraints of my system. I've tried delegating these and gotten myself into trouble.

Knowing what to build. This is the actual senior developer skill. Understanding users, reading between the lines of what clients say, prioritizing ruthlessly โ€” none of that is AI-assisted. The hardest part of my job is still entirely human.

Judgment on quality. AI doesn't know when something is "good enough" vs. over-engineered. It doesn't feel the difference between a clean abstraction and a leaky one. I can ask it to review code and it'll find real issues sometimes, but it'll also suggest changes that make things worse in ways that are hard to articulate.

Anything where context is subtle. My codebase has decisions that make sense in context โ€” a slightly unusual data model because of a specific business rule, a workaround for a Payme quirk. AI doesn't know about these and will confidently suggest changes that break things.

How I stay in control

I think of it as a pair programmer who's very fast, very tireless, and very bad at judgment. My job is to use the speed without delegating the thinking.

Concretely: I write the plan. I know what I'm building before I start. AI helps me build it faster. I review everything it produces โ€” not just "does it compile" but "is this actually right." I keep the diff small enough that I can review it properly.

I'll be real: it's easy to get lazy. To accept something because it looks plausible. The times I've gotten burned have been when I was tired and just merged without really reading. The tool didn't fail me; I failed myself.

It's good tooling. Use it. Just don't let it think for you.