AI engineering
Technical Lead Data Engineer

AI amplifies judgment. The engineer is the edge.

AI that does real work, wired into the tools a business already runs on: mail, tickets, reports, code.

Email Teams Freshservice Web Fabric Wrike Databricks GitLab ROUX THE EDGE

My judgment, woven into every workflow.

One person, one way of working, wired into every tool the business runs on.

461
sessions with Claude
3 700
tasks delegated to agents
773
hours at the keyboard
day 160
days working this way
  • Cloudflare
  • Azure Databricks
  • Microsoft Azure
  • Claude
  • Claude Code
  • Power BI
  • Astro
  • GitLab
  • Microsoft Fabric
  • Resend
  • Next.js
  • Unity Catalog
  • TypeScript
  • PostgreSQL
  • Playwright
  • Drizzle
  • Railway
  • VS Code
  • Sentry
  • Python
Shipped

Built and live.

Four systems. Different stacks, same method. Every number below comes from code, logs or direct measurement.

The company's data platform

Zero wrong in 170,000 checks

No photograph: internal company system
Exhibit A
Scope
inherited half-built data platform
Scale
about 1,500 things in production
Result
zero wrong in 170,000 checks
A global freight and logistics company

The company's central data platform (a "lakehouse"): the place every number comes from, and the reports built on top of it. Inherited half-built, turned into the real thing.

When the reports were moved, a tool compared every number in the old report against the new one, 170,000 of them. Nothing was wrong.

170,000 automated cell checks, zero real discrepancies

  • Took over a platform a consultancy had started and built it into the one the company runs on: the framework, the jobs, the structure, the rules. About 1,500 moving parts the business relies on every day: tables, scheduled jobs, rules.
  • Moved 11 reporting systems people open every day onto a faster foundation, in 14 working days, using about 40 small tools built for the job. 11 production report modules moved onto Fabric Direct Lake in 14 working days with ~40 purpose-built tools.
  • The quiet bugs: 11 columns being added up when they should not have been, and 59 charts that lost their ordering. The tools caught them. Eyes would not have.

Azure Databricks · Unity Catalog · Fabric · Power BI · GitLab CI

konradvanstaden.com, the homepage

konradvanstaden.com

63× lighter

Exhibit B
Scope
author's site rebuilt with booking
Scale
19 pages, one for each of 18 books
Result
63× lighter, 923 KB to 14.6 KB
Client platform

An author's website, rebuilt from the ground up with a booking system behind it.

The old page was a 923 KB download. The new one is 14.6 KB. It shows up instantly, even on a phone.

923 KB → 14.6 KB first paint, gzipped

  • The old site was one bloated page. Now it is a light homepage plus a page for each of his 18 books, and none of it loads anything from anyone else's servers. Rebuilt from a 1.3 MB legacy Joomla page into 19 static pages. Zero external requests on load.
  • The booking system went live quietly. Until its last piece was in place the site kept using the old email link, so nothing ever broke for a visitor. Booking backend with no flag day: ships dark, falls back to yesterday's mailto until its key lands.
  • The switch to the new site was scripted, with a five-minute way back if anything went wrong. Checked on the real address before calling it done.

Astro · Cloudflare Pages · Resend · Playwright

highperformancematrix.com, the coming-soon page with its waitlist

highperformancematrix.com

5 days

Exhibit C
Scope
new venture, live coming-soon page
Scale
3 web addresses, one live page
Result
docs to live waitlist in 5 days
Founding build

A new venture that handles sensitive personal data. From a pile of documents to a live coming-soon page with a working waitlist, on three web addresses, in five days. The platform behind it is still being built.

From nothing but documents to a live page people could sign up on. The product itself is still in the works.

  • Three web addresses, all landing on the same page. A founding sprint, not the everyday pace.
  • Private data is treated as private from the first design: scrubbed before it moves anywhere, and every consent written to a record that cannot be edited afterwards. Special-category data posture from day one: redaction at every boundary, an append-only consent ledger.
  • A test said the AI was fine. It wasn't: a setting was cutting its reasoning short. Finding that mattered more than the passing test. The eval that passed and changed nothing: the real finding was max_tokens starving reasoning. A safety parameter, not a cost knob.

Next.js · TypeScript · Drizzle · Postgres · Railway EU · Sentry · Cloudflare

The one I can't name

1,627 changes in 5 months

No photograph: the contract bars naming it
Exhibit D
Scope
paid AI product, built end to end
Scale
1,627 saved changes in 5 months
Result
live, with paying customers
Production AI product

A paid AI product, built from the first line of code to live customers. The contract says I cannot name it.

Every saved change to the code is recorded. This is how much got built, and how fast, by one person working with AI.

1,627 commits in 5 months

  • Everything, end to end: how it is put together, what it costs to run, the guardrails, getting it live, taking payment.
  • Fourteen AI reviewers check the work, each with one clear job. Every brief also says what that reviewer must leave to the others, so nothing is checked twice or missed.
  • The manual checks itself. Every instruction in it gets test-run against the live system, so the docs cannot quietly go stale.

Tools not listed, same reason as the name.

    The work splits in two. One half runs to the end without me. The other half comes back to me in ordinary words before it ships.

    The way I work is the product.

    The machine’s half

    What runs without me.

    The longest single run went 1 019 steps before it needed me again. 362 unattended runs of 50+ steps, 131 of 100+, 32 of 200+. Counted from every transcript, 2026-07-02 to 2026-08-24.

    What can you do without me?

    I split the work into what needs me and what does not, then let it run the second pile to the end without stopping.

    Training wheels, then autonomy

    New automations run with me watching. After a few clean runs they run alone. Anything touching money, sending to the public, or deleting never runs alone.

    Bull in a china shop, then a diamond

    Get the rough version working fast. Then cut it down until it is small, tight and hard to break.

    The same setup does the dull work too: sorting mail, handling tickets, writing up meetings. One session logged into my home router, worked out why the line was bad, and logged the fault with the internet provider.

    My half

    What has to come through me.

    The gate is plain language. If it cannot be said in ordinary words, it does not ship. 166 turns across the mined transcripts asking for it in plain terms, in one sentence, in dummy terms.

    Replay it back first

    Before anything gets built, the AI says the plan back to me in plain words. If the plan is wrong it dies there, before any code exists.

    Check the result, not the message.

    I don't trust "deploy succeeded". I open the live site and check the version on screen is the one I just shipped. Never trust a name, a dashboard or a green status. Read the rule back. Assert the deployed commit hash. Hit the live site with a fresh, uncached request.

    Audits never return zero

    A check that finds nothing is suspect. One or two small things per run is normal. Five new things every run means the thing being checked is changing under it.

    Two strikes before a rule

    The first time something goes wrong, I note it. The second time, it becomes a written rule, and the tools enforce it so I don't have to remember.

    One route
    contact@kosieroux.com

    Kosie Roux · Technical Lead Data Engineer · The machine runs what doesn’t need me. I check what does.