A 6-week contract building a production Shopify POS & Admin app — how AI-augmented development delivered quality at speed, with the lowest code churn on the team.
The Numbers
| Metric | Value |
|---|---|
| PRs Merged | 16 |
| Code Retention Rate | 74% |
| Code Churn | 26% |
| Features per Week | 2.7 |
| Working Days | 28 |
| Net Lines Shipped | 15,113 |
Most merged PRs on the entire team — while joining mid-project with zero prior Shopify POS experience. First merged PR in 2 days. First POS extension shipped in 3 days.
Quality: Write It Right the First Time
The most revealing metric isn't lines added — it's how much of your code survives. Code churn measures deletions as a percentage of additions. Lower churn means code written correctly from the start.
Code Churn Rate (Lower = Better)
| Developer | Churn | Retention | Verdict |
|---|---|---|---|
| Mael | 26% | 74% | Clean code |
| Dev B | 44% | 56% | Moderate rework |
| Dev A | 57% | 43% | Heavy rework |
| Dev C | 165% | Net negative | More deleted than added |
Of every 100 lines Mael wrote, 74 shipped to production. Dev A wrote 48,751 lines but deleted 27,947 — over half was rework. Mael wrote 20,336 and only deleted 5,223.
Feature vs Fix Commits
A high ratio of fix/refactor commits signals code that needed significant rework after initial submission.
| Developer | Features | Fix/Refactor | Fix Ratio |
|---|---|---|---|
| Mael | 22 | 45 | 2:1 |
| Dev A | 26 | 144 | 5.5:1 |
| Dev B | 0 | 57 | ∞ |
Dev A needed 5.5 fix passes per feature. Mael's ratio was 2:1 — features shipped cleanly with minor iterations, not major rework.
Efficiency: Half the Code, Same Output
| Metric | Mael | Dev A (Top Committer) |
|---|---|---|
| Lines Added | 20,336 | 48,751 |
| Lines Deleted | 5,223 | 27,947 |
| Net Lines | 15,113 | 20,804 |
| PRs Merged | 16 | 0 (direct push) |
| Code Churn | 26% | 57% |
Dev A wrote 2.4x more raw code but only retained 38% more net lines. Mael's code was 2.8x more efficient per line written.
Speed: Sustained Velocity
| Milestone | Time |
|---|---|
| First merged PR (cold start) | 2 days |
| First POS extension (zero prior experience) | 3 days |
| Most PRs in a single day | 4 PRs |
| Full-stack feature (DB → Service → UI → i18n) | 2 days |
Weekly Delivery
Week 1 — Store group CRUD + product metafield definitions (2 PRs, ramp-up)
Week 2 — Inventory requests + movement history + webhooks + reception (7 PRs, 4 in one day)
Week 3 — First POS extension: inventory count with barcode scanner (learned Preact + POS SDK from scratch)
Week 4 — POS purchase order reception on iPad (CORS, auth, state routing)
Week 5 — POS supplier returns + admin supplier returns (full vertical slice)
Week 6 — Reception control + POS labels + predistribution with stock ideal algorithm (3 PRs)
Technical Scope
Admin App (8 pages) — Store groups, inventory Kardex, inventory requests, purchase reception, supplier returns, reception control, predistribution matrix with stock ideal algorithm, native PDF generation
POS Extensions (4 iPad extensions) — Inventory count with barcode scanner, purchase reception, supplier returns, print labels. Built with Preact, state-based routing, CORS preflight handling.
Database & Backend — 12+ migrations with row-level security, multi-tenant architecture, Prisma ORM with explicit types, Shopify Admin GraphQL, webhook handlers, stock ideal calculation algorithm.
Standards — Zero 'any' TypeScript policy, SonarQube compliance on all code, full i18n (EN + ES), layered architecture enforcement, codified team framework.
AI-Augmented Development
Claude Code was used as an engineering partner — not a code generator. It accelerated codebase exploration (hours not days), feature scaffolding (following strict team norms), Shopify API integration (correct on first iteration), and quality enforcement (type checking, SonarQube pre-screening).
The AI didn't replace architectural thinking — it amplified execution speed while preserving quality constraints. The tech lead's layered architecture, zero-any policy, and SonarQube gates were enforced on every line. Result: half the code volume, same net output, a fraction of the rework.
The Bottom Line
28 working days. 16 merged PRs. 15K+ net lines of production code. 4 POS extensions. 8 admin pages. 12+ user stories. The lowest code churn on the team.
Quality at speed isn't a tradeoff. It's a discipline.