Home

How I Think About AI Adoption

This isn't a sales pitch. It's the framework I use with every client. If you understand these principles, you'll understand why I work the way I do.

The Problem With "We Use AI"

Most development teams think they've adopted AI because their developers use Claude Code and Cursor. They generate features, refactor modules, fix bugs in interactive sessions. And yes, that's better than writing everything by hand.

But if someone has to sit there guiding the agent through every task, that's synchronous work. It's pair programming with extra steps. The developer is still the bottleneck: one person, one task, one session at a time.

The real shift is when agents work without you watching.

A team of five developers running twenty autonomous agents in parallel, each picking up issues, opening PRs, proving the result works. The developer's job changes from writing code to reviewing and approving agent-generated work. That's AI-first. Everything else is a stepping stone.

The four levels of AI adoption: from autocomplete to a team of autonomous async agents

Most teams are stuck at Level 1: interactive sessions where a developer guides the agent in real time. That's useful for architecture and complex features, but it doesn't scale. The real productivity unlock is Level 3: multiple autonomous agents working your backlog in parallel while your team focuses on review and direction. You can run async agents without trust. The results just won't be good enough to ship.

Building Trust in Autonomous Agents

You can launch a fleet of async agents tomorrow. Nothing stops you. But without the right infrastructure, you'll spend more time fixing their mistakes than you would have spent writing the code yourself.

Trust isn't a switch you flip. It's the result of having three things in place, working together. Each one is necessary. None is sufficient alone.

Foundations

CI/CD pipelines, automated testing, containerized environments, code quality gates. None of this is new. These are engineering fundamentals that predated AI by decades.

But they're what separates reckless AI adoption from reliable AI adoption. Without a CI pipeline that catches regressions on every PR, letting an autonomous agent commit to your codebase is a gamble. With it, you have a safety net that works whether the code was written by a human or an agent.

Unit tests, integration tests, end-to-end tests with Playwright, static analysis, reproducible environments that behave identically in CI and on developer machines, staging environments for validation before production. The boring stuff. The stuff that makes everything else possible.

Capillary Knowledge Base

Agents can read code. They can't read minds. The things that trip them up are the things that aren't in the code: business rules nobody wrote down, compliance constraints that live in someone's head, formatting conventions the team follows by habit, domain context that explains why the architecture looks the way it does.

"Capillary" is the key word. A README and a CONTRIBUTING.md are not enough. The knowledge base needs to reach into every module, every convention, every business rule. Agent skills (structured markdown files inside the repository) give agents the same institutional knowledge a senior developer carries around in their head.

When the skill says "never modify the billing module without updating the audit log," and the agent's PR includes the audit log update, that builds trust fast. Over time, the team trusts the agent the same way they'd trust a new hire who actually read the onboarding docs.

Observability

When an asynchronous agent completes a task, the engineer reviewing it needs more than a diff. For frontend changes, the agent generates a video walkthrough: it navigates the application, demonstrates that the feature works or the bug is fixed. The engineer watches it on their phone and evaluates in seconds, without pulling the branch and running it locally.

This is complementary to automated testing, not a replacement. The CI/CD pipeline catches regressions. The video walkthrough handles the human judgment layer: does this look right? Does it match what the stakeholder asked for? Together, they give engineers the confidence to approve agent-generated work quickly.

Three enablers (Foundations, Knowledge Base, Observability) converge into Trust, enabling a team of async agents

Foundations, a capillary knowledge base, and observability are not sequential steps. They work together, on the same level, to create trust: the confidence that autonomous agents will produce work good enough to ship. Without all three, you can still run async agents, but you'll spend more time cleaning up after them than you save. With all three in place, you go to sleep while your agents work the backlog.

The Real Question

The right question isn't "how can AI improve our current workflows?" It's: what can we do now that was simply impossible before?

Five developers running twenty autonomous agents in parallel, each working on a different task. That was unthinkable a year ago. But it introduces a new problem: orchestrating all of them. OpenAI released Codex for managing multiple agents. Warp evolved into a full orchestration platform. OpenClaw handles multi-agent coordination from the terminal. New tools appear every week.

The space is moving fast, and that speed is itself the problem. Dozens of platforms competing for attention, some delivering real gains, some hype. For a CTO trying to make the right bet, it's genuinely hard to tell the difference.

That's where I come in. I stay current on what works, cut through the noise, and help you adopt the tools that actually match your team, your codebase, and your goals.

Why Now

Every month that a development team delays this transition, the productivity gap widens. Teams already running AI-first ship features at 3-5x the pace.

But the gap isn't about the tools. It's about the trust infrastructure around the tools. A developer who generates a feature with Claude Code but has no CI pipeline to validate it is slower than a developer who writes it by hand with a solid test suite. The tools only accelerate you if the enablers are in place.

Want to see this in practice?