Colton Weeks Consulting

Delivery · Data · AI practice

Systems that run the business — and the practice that keeps them running.

For owner-operated companies that already know how to be successful and want to use AI to go further. I build the system, then leave you the method behind it — so it doesn't leave when I do.

Engagements start with a fixed-fee, read-only audit. You keep the findings either way.

4 monthsEmpty repository to daily production use
379Pull requests, solo — architect, developer, maintainer
641Corrupted records corrected on live production data
0Downtime windows taken. The kitchen cooked throughout.

That's recent, and it's solo. Before it: a career of enterprise delivery at Thoughtworks and elsewhere — technology, retail, financial services, healthcare, digital platforms.

What I do

Four problems I'm good at.

Find the sentence that sounds like your business. Each one opens.

What this looks like

Institutional knowledge that only exists in people's heads. Processes that are really just habits. Every new hire is a six-month apprenticeship because nothing is written down in a form a system could use.

What I do about it

  • Model the domain from the messy reality, not from a whiteboard
  • Build the system that encodes it — and enforces it going forward
  • Write the manuals: one for the people using it, one for whoever maintains it

Evidence

A commercial kitchen's entire operation — 52-week menu rotation, ~2,000 recipes, scaling engine, prep lists, purchasing by supplier — from an empty repository to daily production use in four months. Solo.

Operations audit → build

What this looks like

The same entity under five different names. Units that drifted over the years. Totals that silently split across duplicates. An earlier migration that swept everything into the wrong shape and nobody noticed.

How I work

Audit first. A read-only assessment ships before anything is touched — it measures the true scope, it costs a fraction of the fix, and it routinely changes the plan. Only then do we design the remediation. The migration is idempotent and reversible. The audit page stays up afterwards as the permanent proof.

Evidence

  • 48 distinct unit values and 3,487 mis-recorded rows, measured before a single write
  • 641 corrupted production records corrected, 0 pending, verified after deploy
  • 168 records with no reliable source were deliberately left alone — and said so, in writing
Data trust audit → remediation

What this looks like

Enthusiasm without discipline. Generated code merged because it looked right. AI inferences written straight into real data with no human in the loop. No shared answer to a simple question: what happens when you click merge?

What you get

  • A written, project-agnostic operating framework — backlog discipline, definition of done, documentation currency, staged review of anything a model produces
  • The rule that matters most: AI proposals are staged for audit, never auto-applied to real data
  • Gates that fit the way your team already works, because a safeguard that fights the workflow gets deleted

Evidence

The framework exists, it's written down, and it was iterated under load across 379 pull requests — alongside a 1,300-line running lessons log. Most people claiming AI-assisted development have no artifact to show.

AI practice audit → install the framework

What this looks like

You can get any single number if you go and look for it. What you can't get is the whole picture in one glance, on a Tuesday, without a twenty-minute detour.

What I do about it

  • Audit what you can and can't currently see — and what it costs you not to see it
  • Build the read-only view that pulls it together, and nothing more
  • Deliberately not a replacement for the tools you already use. It reads. It never writes.

Evidence

Nine financial accounts, 57 statements, every month reconciled arithmetically, rendered as one page with a payment calendar and modeled payoff scenarios — and the discipline to publish what the reconciliation missed alongside what it found.

Visibility audit → build

How it starts

Measure before you touch.

Every engagement starts the same way, because that's how I do the work itself — not because it makes a tidier proposal.

STEP 01

The audit

Fixed fee. Read-only. One to two weeks. A written findings report and a standing dashboard — both yours to keep, whatever happens next.

The lowest-risk thing you can buy from me.
STEP 02

The build

The fix, scoped from what the audit actually found rather than from a guess. Fixed price wherever the audit made that honest.

Optional. Some audits end here, correctly.
STEP 03

Install the practice

The framework adapted to your repository and your team. Review gates, templates, documentation rules, the lessons log.

So the capability stays after I leave.
STEP 04

Advisory

Standing second opinion. Monthly review, escalation, and the argument you need before a decision rather than after.

Monthly retainer.

“Measure before you touch. Ship the read-only audit first, as its own reviewable deliverable. Leave it up — the thing that proved the problem is the thing that proves the fix.”

From my own engineering framework, written before it was ever a sales process.

And before any of that

I start with a question I've been asking since my Thoughtworks days, because it gets further in ten minutes than a discovery deck gets in a week:

“On a scale of one to ten, where would you put this? Now talk to me about the gap between that number and ten.”

Then I go after the most obvious pain point — not the most architecturally elegant one. The elegant problem can wait. The obvious one is the one that produces felt relief, and relief is what buys the trust to do the rest.

Case studies

The work, including what went wrong.

Every one of these includes a wrong turn — a superseded pull request, a model calibrated on its own symptom, a fix that passed in the wrong test harness. That's deliberate. A case study with no wrong turns is marketing.

The problem

A subset of recipes had quietly wrong ingredient amounts. Scaled to the day's headcount, they produced too little food. The cause was an inconsistency inherited from an external system — invisible from inside the data.

The wrong turn

Months went into a statistical model of what “healthy” data looks like. It was wrong, and wrong in a way the dataset itself could never reveal — it had been calibrated on its own symptom. One read-only harvest of an outside system made the problem tractable in a way no better heuristic would have.

How it was done

  • A read-only audit shipped first, establishing the true blast radius
  • The correction ran as an idempotent migration step — writing prior state before each overwrite, so the whole sweep was reversible
  • A tripwire shipped alongside it, warning when a recipe's header and its ingredients disagree

Outcome

641 corrected, 0 pending, 0 extreme outliers, verified on production after deploy. 168 records with no match in the external source were deliberately left alone rather than guessed at, and that decision is in the permanent record with its reasoning.

What transfers

When correcting data, the first question is what can I check this against? — not what pattern can I infer? An external anchor beats a better heuristic. And a remediation that claims total coverage is one nobody can audit.

Flagship

The problem

~2,000 recipes and 15,794 ingredient rows maintained by many hands with no enforced conventions. Duplicate identities differing only in case or word order. 48 distinct unit values. 3,487 rows recording dry goods in a liquid measure — the fossil residue of an old mechanical conversion. Roughly 170 free-text values in a field that should have held a closed vocabulary.

The constraints

  • No downtime and no freeze — the kitchen cooked from this data daily throughout
  • No authoritative reference to reconcile against; conventions had to be inferred, then ratified by a domain expert
  • I am not a chef. Every vocabulary decision needed someone who was, and their time was scarce

The method

Audit first, always: ship a read-only report of the true scope, review the real numbers, then design the fix as a separate idempotent step. Pair every cleanup with a rule that stops the drift returning — closed vocabularies, a gate on ingredient auto-creation, validation on the type enum. The goal was never “clean the data once.” It was to make the database outlive any single contributor.

What transfers

Spend the domain expert's time on rulings, not archaeology — they should review a structured proposal, not answer questions for three weeks. And every cleanup needs a gate, or you'll do it twice.

Where it started

One honest question: what actually happens when I click merge? The real answer was worse than the felt answer. That inventory is worth running on any project you've been shipping to for a while.

What was built

  • A test suite and CI gate — fast safety net rather than exhaustive coverage. The highest-value test asserts a migration is idempotent, because that failure mode is silent, recurring, and corrupts production rather than breaking a build
  • A secret-scanning gate in CI and an optional matching pre-commit hook
  • An automated code review on every pull request, deliberately advisory rather than blocking

The considered position

Advisory beats blocking when there's nobody to escalate to. A gate whose failure mode is “the one person who can override it, overrides it” isn't a gate. Separate the second-opinion value from the veto power — you usually only need the former. The repository contains a documented case of a bot finding being knowingly declined, with the reasoning written down.

What transfers

Solo teams and small teams have to deliberately construct what a second engineer would have provided. It's cheap to build once you name what's missing. And a safeguard that fights the workflow gets deleted — all three of these are still running, hundreds of pull requests later.

For engineering leaders

The wrong turn

The single most expensive mistake was a fix that passed verification in a harness that wasn't the target environment. Approximations don't fail loudly. They produce confident false positives.

What worked instead

  • Render it at the real width and read the numbers — repeatedly beat reading the CSS and forming a hypothesis, and more than once changed the scope of the fix
  • Assume a multi-symptom report is one bug until proven otherwise. Users describe effects, not causes; two investigations collapsed to a single root cause with nothing to fix where it was reported
  • When you find the fix, check whether it already exists elsewhere. The bug you were sent is a sample, not the population

The standard behind it

The frontend is governed by a written design standard with one test for any visual decision: would an experienced product designer intentionally make this choice? Tokens for color, spacing and type; contrast tuned for WCAG AA; generic dashboard patterns and framework defaults explicitly rejected. No component framework, no build step, no JavaScript framework — minimal dependencies is a standing rule.

What transfers

Write the design standard down, including the exceptions and their reasons. An undocumented deliberate choice is indistinguishable from an oversight, and the next person to tidy up will helpfully undo it.

Who you'd be working with

A career of enterprise delivery — and I still write the code.

Thoughtworks, as Lead Consultant and Delivery Principal. Enterprise consulting across technology, retail, financial services, healthcare and digital platforms, in several countries and at every level of an organization. Since then, fractional COO work — which means being accountable for whether the operation actually runs, not just whether the software shipped.

The combination is the whole point. Most people with that background stopped building years ago. Most people building with AI right now have never run a program. Four months ago I shipped 42,000 lines of production Python, solo, into daily operational use — and wrote down the method while I did it.

The enterprise years were the apprenticeship. What they produced were the tools I still use: the gap question, the risk matrix, the retrospective, the ways-of-working document. The tools stayed. What changed is that the client is now a business rather than a program.

Where I'm not the right call. The systems I've personally built and maintained are single-tenant, for small teams, at modest scale — I'm not going to claim I've hand-engineered a high-throughput distributed platform, because I haven't. My enterprise experience is in leading and delivering those programs, not in personally writing them. Tell me which of the two you actually need and I'll tell you honestly whether it's me.
  • Thoughtworks — Lead Consultant & Delivery Principal
  • Industries — technology, retail, financial services, healthcare, digital platforms
  • Fractional COO — currently across two businesses
  • Certified Agile Coach
  • Certified Scrum Master
  • PMI / PPM certified
  • ~42,000 lines of production Python shipped solo in four months
  • Live systems in daily operational use, with backups, CI and documentation

Start with the audit.

A short call first, to work out whether there's something here worth measuring. If there isn't, I'll say so — that's a cheaper answer for both of us.

Book a call Send an email

Colton Weeks Consulting · San Francisco Bay Area