I wrote enterprise software by hand for 20+ years. Claude Code rewired how I work — and I’m not going back.
I earned my instincts the slow way: 20+ years of Fortune-500 delivery where I personally wrote the design docs, the code, and the tests. That history is exactly why the last couple of years felt like a step change — today my research, architecture, diagrams, code, tests, and even whole-codebase migrations run through Claude Code, Gemini CLI, and MCP servers I built myself, and I read what comes back with the eye of someone who used to write it all by hand. Measured against my own old pace, it nets out to roughly 4× faster on real engagements. What you’ll find here is how I build with AI; putting AI into a product is a different craft, covered on my AI & Machine Learning page.
How I Work AI-First
Six habits I fall back on, whatever the project.
Spikes in Minutes, Not Days
A research spike that used to cost me a week now runs while I’m still framing the question — so I try three approaches where I used to commit to one, throw away the losers cheaply, and keep my own hours for the decisions the model can’t make.
Agentic Migration Pipelines
The hard lesson from building my migration agent: never ask a model to port code cold. Have it document the codebase first, feed that documentation back in, and iterate — the multi-pass loop is what makes the output deterministic enough to trust, and I still read every pass before it counts.
Custom MCP Servers
Out of the box, Claude has never seen your repos, your APIs, or your domain shorthand. I write Model Context Protocol servers to close that gap — hand-built tools and context feeds that put the model inside the actual system instead of a generic one.
Multi-Model Fluency
I keep Claude, Gemini, ChatGPT / Codex-style code models, and GitHub Copilot all in rotation and race them on my own backlog. A vendor benchmark tells you very little; timing two models on the same gnarly refactor tells you everything.
AI-Assisted Architecture & Docs
I generate C4 and Mermaid diagrams, design docs, deployment diagrams, and Confluence pages alongside the code and correct them by hand. Docs used to start rotting the day I wrote them; regenerating them each pass is how they finally keep up.
Team Enablement
I’ve sat next to client engineers and PMs getting Claude Code onto their machines, walked them through MCP architecture, and coached their prompting habits — because the speed only matters if it survives after my contract ends.
What’s Open on My Machine
Not an aspirational list — the working set, most days.
Always Running
Things I Wrote Myself
Where This Has Actually Shipped
Deliveries, not demos.
An AI Agent Porting 350+ Codebases from AWS to GCP
The biggest stress test of the practice so far. For a national healthcare technology platform, I wrote a TypeScript agent that drives Claude on AWS Bedrock through my own MCP servers to analyze and port 350+ FHIR/HL7 codebases. Multi-pass documentation loops keep the output deterministic, three Claude models get routed by task, and it runs roughly 4× faster than porting by hand — with my eyes on every pass.
See the engagement My Product · AI-First BuildGrade My Investments — One Architect, Six Months, Live in Production
When I say the practice works, this is what I point at: I built my own SaaS end to end, alone, in six months — and backed it with 695 unit and integration tests, because AI speed is no excuse for skipping the safety net. Claude also runs inside the product as the language layer over a deterministic ML.NET core, under a monthly cap on production AI spend.
See how it’s builtAI-Accelerated Delivery Inside Fortune-500 Engagements
The unglamorous everyday version: AI research loops when I’m comparing container scanners, observability stacks, or cloud services; diagrams and design docs drafted by a model and corrected by me; and client engineers and PMs learning to run Claude Code and MCP on their own work because I showed them at their own desks.
The daily default on every engagementThe Governance Behind the Speed
Speed without review just means shipping mistakes sooner. These are the rules I don’t break.
I read everything before it ships
No migration pass, generated diagram, or scaffolded service reaches production until I’ve read it — and 20+ years of writing this stuff by hand is what makes that review mean something. The model does the typing; I keep the final word.
Deterministic cores where it counts
When an answer has to be identical every time, I don’t let an LLM compute it. Grade My Investments is the pattern in production: ML.NET owns the repeatable math, and Claude is only allowed to turn the results into language.
Cost-capped in production
I put hard spend limits on any AI running in production — GMI enforces a monthly Claude cost cap — because token bills climb quietly, and I’d rather design the ceiling in than discover it on an invoice.
Want the AI inside the product instead?
Everything on this page is about the tooling I build software with. Shipping LLM features, AI agents, RAG, and machine learning as part of the product itself is a separate discipline — that story is on my AI & ML page.
Want to build at this pace?
You get the tooling, the pipelines, and the review discipline — from the architect who runs them daily. Corp-to-Corp engagements out of Dallas / Ft. Worth.