Skip to content

Research

The research library

Each entry carries its evidence status, its method and its limitations, and several are negative results. We do not file anything here as simply validated, because in our experience almost nothing ever is, and a library that says otherwise is not telling you about its standard.

RSS · Ideas, backtests, proofs, field tests and negative results — kept honestly distinct.

Looking for formal papers and the proofs of concept behind them? Those live in the Lab.

Reading the labels

What each evidence status means

Every entry carries one of seven, and they are ordered: each rung says what has been shown and, by omission, what has not. The label is chosen before the writing, so it cannot be talked upwards afterwards.

Idea
A formulation we think is right, with no result behind it yet. It is the label we use most, and a frontier looks like that from the inside.
Reproduced
Someone else's published result, rebuilt here and obtained again. It says the method works as described, and nothing about whether it helps your business.
Backtested
Run against history the model never saw, and measured against an agreed baseline. A backtest is evidence about the past, and the next rung exists for that reason.
Formally proved
A property machine-checked over every admissible input, with its assumptions written down. It covers the stated property, and says nothing about the rest of the system.
Field-tested
Run forward on live decisions, against the way the decision was being made before, with the test fixed before the data was opened.
In production
Operating inside a business now, with someone accountable for running it. The strongest label here, and the one fewest entries carry.
Negative result
A candidate that failed the test set for it, kept and published. It stays here so that the next person with the same idea finds out for the price of a page.

Two habits sit behind the labels. The test that would falsify a result is written down before the result is opened, so a disappointing run cannot be relabelled as a promising one. And every entry states where it stops applying, in its own words, under limitations. If you only read one line of an entry, read that one. How we validate counts how the whole library falls across these seven, including how often the lowest grades get used.

Evidence
Field
Idea research note

The ROI of AI coding tools survives or dies on rework

More code shipped is not more value delivered. The economic question is what the accepted, un-reworked, in-production fraction of AI-assisted output costs, and earns.

FlexianaAug 2026
Idea executive memo

The decision beneath the feature request

The most valuable software projects rarely begin with a feature list. They begin with a repeated decision the business cannot yet make well.

Jiri KneslAug 2026
Idea executive memo

What a piece of evidence is worth

Before you pay to gather more data, there is an exact number for how much a better answer could improve the decision it feeds, and often it is zero.

Jiri KneslAug 2026
Idea research note

Which broken thing to fix first

When remedial capacity is smaller than the problem, the order of repair is a decision worth optimising, against downstream loss, contractual exposure and customer value, not just severity.

Flexiana Decision LabAug 2026
Idea research note

Why we publish negative results

A method that fails a pre-registered test is a result worth keeping, because it stops the next team from spending on the same dead end.

Jiri KneslAug 2026
Idea research note

Scheduling when the durations are uncertain

When durations and arrivals are uncertain, the useful schedule is the one that stays good across scenarios, not the one that looks tidy on the plan that will not happen.

Flexiana Decision LabAug 2026
Formally proved formal proof

A 1,200-line kernel that proves operations-research algorithms

Rainbow machine-checks OR algorithms against a tiny trusted dependent-type kernel: the full 222-algorithm catalogue is now proved.

Jiri KneslAug 2026
Idea executive memo

What a plan-versus-reality gap is for

The gap between what a team planned and what it delivered is only useful if it changes a decision, reallocation, rescoping or renegotiation, while there is still time.

FlexianaAug 2026
Backtested research note

Forecasting a project's cost-to-complete before finance can see the loss

A lognormal accelerated-failure-time model with MCMC diagnostics estimates when, and how confidently, a delivery will overrun, while intervention is still possible.

Flexiana Decision LabAug 2026
Reproduced code

Operations research as compositions of a few higher-order functions

A zero-dependency Clojure library shows optimisation, sequential decision-making and validation are compositions of a small set of higher-order-function patterns.

Jiri KneslJul 2026
In production code

MLOps for teams who work in Clojure

chachaml tracks experiments, models and pipelines from the REPL, a web UI or an LLM agent: a first-party MLOps substrate for teams doing machine learning in Clojure.

Jiri KneslJul 2026
Reproduced paper

A book that argues operations research is a handful of functions

Applied Higher Order Functions catalogues about 480 optimisation, decision and validation algorithms and shows they are compositions of a small set of higher-order-function patterns.

Jiri KneslJul 2026

Engineering writing

104 more articles from the years of building

The typed research above is the newest, most carefully labelled work. Behind it sits a deep archive of engineering writing, Clojure, data-oriented systems, MLOps, formal methods and delivery, being migrated into this library.

The full archive

Clojure & functional programming

Big systems get complicated fast. Features + changes tangle code → tough updates.Functional programming keeps code solid: predictable, clear, reusable. Easier to read, test, debug, extend. It helps teams stay coordinated and lets developers spend more time building new things—not just untangling…

Jiri Knesl · Sept 2026

Engineering practice

Most developers don’t write tangled algorithms because they lack skill. The problem may start before they write a single line. Most developers don’t create complicated code because they lack skill. It often starts with how they approach the problem. A simple idea can slowly turn into nested…

Jiri Knesl · Aug 2026

AI & machine learning

This is the final article in our series, Clojure Meets Production MLOps: How chachaml Delivers AI-Native Workflows. If you’re joining here, you may want to start with the earlier posts: In this final article, we’ll focus on the business side.

Jiri Knesl · Jun 2026

AI & machine learning

This is Part 2 of our series, Clojure Meets Production MLOps: How chachaml Delivers AI-Native Workflows. If you missed Part 1, Why Machine Learning Projects Fail in Production—and How chachaml Solves the MLOps Gap, we covered a common issue in machine learning.

Jiri Knesl · Jun 2026

AI & machine learning

This is the first article in our three-part series, Clojure Meets Production MLOps: How chachaml Delivers AI-Native Workflows. In this article, we look at a problem many ML teams run into.

Jiri Knesl · Jun 2026

Clojure & functional programming

As data volumes grow, complexity tends to grow with it, but Clojure offers a different approach using simple, data-centric architectures.

Jiri Knesl · May 2026

AI & machine learning

Most of what decides whether a machine-learning system works is the data pipeline behind it, not the model on top.

Jiri Knesl · Apr 2026

AI & machine learning

MLOps is the operational framework that ensures machine learning models are built, deployed, and run efficiently at scale.

Jiri Knesl · Apr 2026

Clojure & functional programming

Flexiana open-sources Infix, a library that brings natural infix notation to Clojure while compiling to standard prefix forms with zero runtime overhead.

Jiri Knesl · Apr 2026

Also: our engineering handbook — practical notes on running teams, productivity and delivery.