Cloud, DevOps and platform engineering — AWS and GCP, Kubernetes, infrastructure as code, CI/CD, observability. Multi-account cloud platforms, container orchestration, and the data and ingestion layers underneath them.
The same work applied to ML systems — pipelines, feature contracts, model promotion, serving, drift monitoring. And the question those systems exist to answer, which is not what will happen but what to do about it: which feature has earned the right to be seen, what an intervention actually caused, which price to offer when nobody has told you the answer. Consumer credit and payments, for now.
Most of it is commercial and not public. This is the part that could be.
Deciding which columns a model may see is ad-hoc work a person drives. Training, gating and scoring repeat on every retrain. A feature contract is the specification that the analysis signs and the pipeline executes — stamped onto the model, and the scoring job refuses to run when the file on disk disagrees.
ieee-cis-fraud-detection-eda — the analysis. R, one question per notebook, every verdict a rank statistic or a two-sample test with an interval on it rather than a threshold on a point estimate. Two CSVs from Kaggle and it runs: no cloud, no Python.
fraud-detection-mlops — the pipeline. Dagster over BigQuery for features, LightGBM training, Vertex AI for lineage, batch scoring on Cloud Run Jobs, provisioned with OpenTofu and shipped through GitHub Actions. Temporal aggregates are cut strictly before the transaction they describe, with the positional functions that would leak the future blocked by a test rather than by convention. Promotion is a gate rather than a judgement call: calibration, a threshold set from a false-alarm budget, and per-segment regression, each able to stop a model that looks better on average.
A limit increase goes to the customers a lender already trusts, so the portfolio correlation says the opposite of the truth. Both repositories work the same panel from Kaggle's Home Credit.
fixed-effects-vs-ols — what changes when you stop comparing accounts with each other and start comparing each account with itself. R and fixest.
staggered-did-sunab — limits go up in different months, and a two-way fixed effects event study quietly compares treated accounts against other treated accounts. Goodman-Bacon weights to see it, Sun and Abraham to fix it.
pooled-vs-independent-bandits — a provider prices instalment plans per risk band and has to learn who takes them, one checkout at a time. Should a band start from what the other bands already learned? Thompson sampling, empirical Bayes, R and Quarto. Nothing to download — the market is in the repository.
Public datasets and a simulator. None of it has ever priced or scored a live account.

