All posts

How we use AI in 2026

Every engineer gets unlimited access to frontier models from both OpenAI and Anthropic. Nobody counts tokens, and nobody counts how much code the models wrote.

We build a product with an AI agent in it, so people ask how we work internally. The answer is less exciting than the question expects, and more useful.

Everything is a repo

Every internal automation lives in a repository with commits, review, and history. That includes the things most companies assemble by clicking around a SaaS tool: reporting jobs, release chores, data pulls, the scripts that keep our own house in order.

The reason is not purity. A clicked-together workflow has no diff. When it changes, you find out by noticing different behavior. When it breaks, you reconstruct what it used to do from memory and screenshots. Code in a repo tells you what changed, when, and who decided it.

This matters more with AI in the loop. If a model generates the automation, you want the output to be a file you can read, test, and revert. A prompt that runs in production is not reviewable. A Python script generated from a prompt is.

AI writes deterministic code, not runtime behavior

We use models to produce code, and the code is what runs. We do not put an inference call in the middle of an internal process that could be a function.

A model that decides at runtime how to categorize a record will do it slightly differently next month, and you will spend a day working out why the numbers moved. Generate the categorization logic once, read it, test it, commit it, and it behaves the same way until someone changes it on purpose. Deterministic output is the property you were looking for.

The exception is work that genuinely requires judgment over language: summarizing, answering questions, drafting. That is where a model belongs at runtime, and it is what Simba, our AI agent, does inside the product.

Both frontier models, unlimited

Everyone here has unrestricted access to the latest models from OpenAI and Anthropic. Both. Not one shared seat, not a tier below the current best, no monthly cap.

There is no token budget and nobody reports usage. The math is not complicated. An engineer's hour costs more than a very large number of tokens, so any process that makes someone hesitate before running a query loses money to save pennies. Rate-limiting your engineers' access to the best available tool in order to hit a line item is a decision that only looks good on the spreadsheet where it was made.

Different models are better at different things and the ranking changes every few months. Having both means people use whichever is currently better instead of arguing about it.

How much of the code is written by AI

Probably all of it. Nobody counts.

The number would tell you nothing. A patch where a model wrote every character and an engineer spent an hour deciding what it should do is not "AI-written" in any meaningful sense. A patch typed by hand after a model explained the API is not "human-written" either. Those categories stopped being useful about a year ago.

We track whether it was reviewed, whether it has tests, whether it shipped, and whether it broke anything. The same things we tracked in 2019. The tooling changed and the standards did not.

What it costs us

Review load went up. Generating a plausible 400-line change takes a minute, and reviewing it properly takes as long as it ever did. The bottleneck moved from writing to reading, and if you are not disciplined about that you merge code nobody understands.

The teams that get burned by AI-assisted development are not the ones using it heavily. They are the ones who let the review standard slip because the code arrived fast and looked finished.

Try it on your own data.

14 days, no card. Point Etlworks at a real source and see what it does.