Writing

Notes with numbers in them.

Long-form write-ups of benchmarks and reproductions, published when there's something real to show. No posting schedule; depth over cadence.

Posts

Peer-reviewed · 2025

Real-time yoga pose estimation with a hybrid MoveNet architecture

My first-author paper: a Thunder-train, Lightning-infer MoveNet split that classifies 11 yoga asanas at 98.8% test accuracy (98.4% verified on the shipped quantized model) while holding 30+ FPS on consumer hardware. Published in Sādhanā (Indian Academy of Sciences, Springer).

September 2026

What 1.6 million purchasing events say about how a company actually buys things

Process mining on a real purchase-to-pay log: orders take 77 days to close, one in five needs a payment block lifted and almost every invoice is handled by hand. Plus the 3,528 orders placed after their invoice.

process mining · pandas · variant analysis · conformance checking
September 2026

The store says Buy. The contract says licence. DODI v2 scores the gap.

DODI v1 read the contract alone, so honest subscriptions looked deceptive. v2 reads the archived store page first: X drops from 99.5 to 0, Steam keeps its 94.1. Plus the moment Amazon's Kindle button started saying "you're purchasing a content license".

Wayback Machine · evidence coding · Python · pandas
September 2026

I made a molecule model's two inputs disagree. It believed the graph.

MolCA reads a molecule as SMILES text and as a graph at the same time. I reproduced it on two machines (62.32 and 62.77 BLEU-2 against the paper's 62.0), then gave it one molecule's text and a different molecule's graph. It described the graph in about 90% of the cases where it clearly picked one. A wrong graph did more damage than no graph at all.

Reproduction · multimodal LLMs · controlled ablations · paired bootstrap · contamination checks
August 2026

I built an LLM judge to check my own scorer. It disagreed with me.

Two language models graded the same Terms of Service documents as my deterministic index. The correlation was 0.12. A much bigger model didn't fix it. What the disagreement exposed: my scorer can't tell honest licensing from deceptive licensing. The readers agree with each other more than with me. Updated September 2026.

LLM-as-judge · rubric design · structured outputs · inter-rater agreement · Spearman ρ
July 2026

Buying nothing: scoring a decade of ownership deception in Terms of Service

DODI is a deterministic 0–100 index of how hard a platform's ToS works to hide that "Buy now" means "revocable licence". Ten platforms, four Wayback snapshots each from 2015 to 2024: the language got worse, GOG scores best exactly as it should and Netflix's licence-to-ownership ratio hit 98. Updated September 2026.

Python · textstat · SciPy · ToS;DR validation · Wayback Machine corpus
July 2026

Benchmarking Arabic OCR and translation on an 8 GB laptop GPU

What Surya and PaddleOCR actually do on KITAB-Bench, how Opus-MT stacks up against NLLB‑1.3B on Arabic-to-German, why the best translator scored the worst BLEU, the failure modes that only show up on long legal text and how a triage pipeline learns to distrust itself. Updated September 2026.

Surya OCR · PaddleOCR · Opus-MT · NLLB · CER/WER · confidence calibration