I have lived every shift in enterprise software since 2003.
Monolith to n-tier. The arrival of mobile ecommerce when carrier storefronts moved a million transactions a day. Platforms scaling to two billion requests a day. Global identity, fraud, and security solutions at network-switch precision. Cloud migrations at regulatory scale. Digital-native rebuilds of systems that used to live on mainframes.
Every one of those shifts had the same shape. They scaled by adding — more servers, more services, more engineers, more coordination, more meetings, more layers between the idea and the deployed code.
This shift is different. For the first time, the work scales by removing coordination overhead. Not by removing the people. The people stay, and the work in front of them changes: less typing, more thinking. Less coordinating, more deciding.
That is what changes about technology leadership. Not who leads. What the leading is for.
Last weekend, alone at my kitchen table, I shipped a production system with a 95-column PostgreSQL schema, three parallel data ingestion paths, fifteen identity insight cards, a Stripe payment layer, a referral mechanic, a privacy policy, and a blog — to a live URL with continuous deployment from GitHub.
The hardest part wasn't writing the code. The hardest part was deciding what not to build.
The Bill of Materials
| Item | Cost |
|---|---|
| Claude Pro (Sonnet 4.6 + Opus 4.6) | $20/month |
| Vercel (hobby tier) | $0 |
| Supabase (free tier) | $0 |
| Open-Meteo historical weather API | $0 |
| Stripe payment processing | 2.9% + $0.30/transaction |
| Total fixed monthly cost | $20 |
What a contract team would charge for the same scope: $80,000–$150,000 minimum.
4,000× cost compression isn't the headline. The headline is what happens to coordination overhead when one person holds the entire stack in their head and the AI does the typing. The meetings collapse. Decision latency collapses to one human's thinking speed.
That is the structural shift. Not "AI writes code faster." AI removes the coordination cost between humans, so the humans get to think harder about the right things.
What Claude Wrote vs What I Wrote
Claude wrote approximately 99% of the code.
JavaScript. React. Next.js API routes. PostgreSQL schemas and migrations. Geocoding pipelines. Chart rendering. Webhook handlers. ETL parsers. CSV column mappers. Persona engine logic. Share card generators. Blog system. Payment integration. Stripe webhook signature verification. Cookie session management.
I wrote the prompts. Made the product decisions. Held the direction.
"Some of the strongest engineers I've ever met are now handing over almost all their coding to AI." — Dario Amodei, Anthropic CEO
"AI won't replace programmers. But programmers who use AI will replace those who don't." — Chris Olah, Anthropic researcher
Both true. And both incomplete. The deeper truth: the work of the human moved up the stack. I am no longer typing code. I am architecting cognition.
Two Models, Two Cognitions
I used both Claude Sonnet 4.6 and Claude Opus 4.6 — deliberately, for different work.
Sonnet 4.6 — the builder: Code generation. API route implementation. Schema migrations. Debugging. ETL implementation. Fast, precise, holds long files in context without drifting.
Opus 4.6 — the thinker: Product architecture. Build brief — eight features prioritized with rationale. Identity card language. Visual design direction. Founder assessment scored across ten dimensions, unflinchingly. Strategic framing of what the product is versus what it must never become.
The mistake is using Sonnet to make product decisions. You get fast, confident, wrong direction. The other mistake is using Opus to write boilerplate. Match the cognition to the problem.
Five Things That Actually Went Wrong
1. The silent row cap. Supabase's PostgREST caps query results at 1,000 rows regardless of '.limit(10000)' in the client. My persona engine was building identity from 976 runs when I had 2,294. No error. No warning. Just wrong data, confidently presented. Fix: paginate with '.range(from, from+999)' until the page returns empty. The lesson: API contracts have invisible ceilings. Verify boundaries on real data.
2. The UTC timezone trap. Strava's CSV stores activity dates in UTC. A 5 AM morning run appears as 11 AM in the raw data. Every time-based insight was quietly wrong. Fix: detect UTC timestamps, apply local offset at compute time. The lesson: timezone bugs don't crash; they lie.
3. The schema evolution problem. Started with 12 columns, ended with 95. Every new column required an ALTER TABLE, a re-import, a persona recompute. The lesson: AI lets you start coding in minutes. That's exactly why the data model still deserves the meeting it would have gotten in the old world.
4. Stale memory, confident wrong answers. 'SUPABASE_SERVICE_KEY' vs 'SUPABASE_SERVICE_ROLE_KEY' — three rounds of the same bug. A React prop chain bug that took six iterations to find a one-line fix. The lesson: the AI's confidence is not calibrated to its correctness. The senior engineer's job is to verify, not to trust.
5. File copy drift. Roughly 1 in 5 patches didn't land correctly. The AI's success signal was "the replacement ran" — not "the final file is correct." The lesson: verifying AI output against reality is now a first-class engineering discipline.
The meta-lesson: the AI doesn't know what it doesn't know — and it doesn't tell you. The human's job is to install the doubt the AI cannot install in itself.
What I Had to Keep Doing as a Human
Hold the soul. Five separate times the product almost became a generic analytics dashboard. The difference between the two is emotional, not technical. No model feels it. The human does.
Kill what didn't belong. I deleted roughly 30% of what got generated. Technically correct. Emotionally wrong. The product got sharper every time I removed something.
Ask "are we solving the right problem?" AI is fast in the wrong direction too.
"People are using AI to come up with product roadmaps, and they still have their crappy roadmaps. They're just doing them faster." — Marty Cagan
Generation speed is a multiplier on taste. If your taste is unclear, AI helps you build the wrong thing efficiently. If your taste is sharp, AI helps you build the right thing at a pace that wasn't possible before.
The Architecture That Actually Works
Three weekends produced a real production system.
Three data ingestion paths:
Path 1 — API Pull
Connect Strava → pull last 100 activities
Each activity: fetch streams (GPS) → geocode → compute PRs
Path 2 — Historic CSV Import
Strava bulk export → parse all 95 columns
Captures: GAP, elevation loss, cadence, relative effort,
moon phase, UV index, devotional tags, apparent temperature
Path 3 — Webhook (forward-looking)
New Strava activity saved → webhook fires in <2 seconds
Pipeline: store → streams → geocode → PRs → rebuild persona
Stack: Supabase (95-column PostgreSQL schema) · Vercel (Next.js, CD from GitHub, ~60s deploys) · Open-Meteo (historical weather, free) · Nominatim (reverse geocoding) · Stripe (live payments) · html-to-image (share cards)
Full product shipped: OAuth · 3 data ingestion paths · GPS geocoding (9 countries, 43 states) · Weather enrichment (3 sources) · 15 identity insight cards · 1080×1350 PNG share cards · Milestone Wall · Geographic Journey · Rituals · Stripe live payments ($3/mo, $24/yr) · Run It Forward referral · Supporters wall · Privacy policy · Blog · Strava partner application submitted
Product completion: ~72%
The Three-Body Problem of the Human in the Loop
The work is not one job. It is three, held at the same time.
The Orchestrator holds the what. Routes fuzzy questions to Opus, concrete ones to Sonnet. Keeps the soul intact across hundreds of small decisions.
The Calibrator holds the truth. Makes expressed confidence match actual accuracy. Runs every claim against real data. The AI expresses every answer — right and wrong — in the same confident voice.
The Builder holds the ship. Refuses architectural drift. Insists on the boring choice when it's correct. Pays attention to what happens at 3 AM when the pager goes off.
These three roles compete. Let any one win and the work fails. The senior engineer of 2026 holds all three and moves between them fluently.
The Real Shift
Every prior shift I lived scaled by adding — more engineers, more services, more meetings. This one is the first that scales by removing the friction between them.
The software is almost free to generate. The judgment about what to generate is worth more than ever.
The technology leaders who anticipate this — who give their senior engineers more authority, who treat verification as a first-class discipline, who measure their organizations by the friction they remove instead of the headcount they add — will be the ones writing the articles in 2027.
Balaji Mudduluri leads technology at Equifax. Previously: Microsoft, Motricity, Mastercard. 23 years building at scale. The product described in this post — RunMirror — is live and free to use at runmirror.app.