Article

What AI-Native Development Looks Like Inside a Real Business

A practical look at using Claude Code, Codex, Cursor, and Gemini as part of a real, accountable engineering workflow.

"AI-native" is a workflow, not a claim

Saying you use AI tools doesn't say much on its own — the interesting question is where they sit in the process, and where they explicitly don't. Here's the honest breakdown of how I actually use them.

Where they help most

Implementation speed. Once a design is settled, tools like Claude Code and Codex can turn it into working code — including tests and boilerplate — dramatically faster than typing it by hand. This is the biggest, most consistent win.

Fast iteration. Cursor is where I do tight, in-editor loops — small changes, quick feedback, staying in flow on a specific file or function.

Research and second opinions. Gemini is useful for exploring unfamiliar APIs or getting a second perspective on an approach before committing to it.

Where judgment stays mine

System design. Architecture decisions, data models, and failure-mode thinking happen before any AI tool touches the problem. This is the part that determines whether a system is maintainable six months later.

Review. Every AI-generated change goes through the same review I'd apply to a human collaborator's pull request — often more scrutiny, because it doesn't yet have a track record in this specific codebase.

The decision to ship. Tests passing and code looking plausible isn't the bar. The bar is the same one I'd hold any production change to: does this behave correctly under the real, messy conditions of the system it's going into.

Where AI sits in the process

Design (human)

Architecture, constraints

Build (AI-assisted)

Claude Code, Codex, Cursor

Review (human)

Same bar as any PR

Ship + monitor (human)

Judgment, not automation

Why grounding matters

The failure mode of AI-assisted work isn't usually "the code doesn't run" — it's confident-sounding output that's subtly wrong. The fix is grounding: giving the tool real, verifiable data and constraints instead of open-ended requests, and treating its output as a draft to verify rather than an answer to trust. I built a small, concrete example of this idea in the AI operations recap agent project.