Predictive SplitWinner
Sports prediction for sportsbook trading desks — calibrated, conformal, and anchored to a public tamper-proof ledger before every kickoff. Records get faked in this category; this one can’t be, not even by us.
Lead AI Engineer · Dallas, Texas building in public
nolindnaidoo — same handle everywhere
The long version
A tool answers confidently with the wrong number and the pipeline stays green. A column loses its leading zeros on the way in and no later step recovers them. A value that was never knowable leaks into a model and accuracy climbs. A published record gets edited and looks identical from the outside. Nothing fails, nothing alerts, and everything built on top of it is resting on nothing. Four write-ups, one problem at four layers, and what I built so each of them has something that catches it.
Sixteen tools that came out of a data pipeline I could not take on trust, grown with no launch and no marketing. A year of building them with a model, the rewrite that threw the first version away, and the honest accounting of what the Rust port costs me.
Managed tools hand you a high number on a leaked dataset and call it a result. Model Zero is the answer to that: a data tool designed around refusing to guess, and the honest accounting of which half of it is built.
The characteristic failure in machine learning makes your metrics better, so a good number proves nothing. Two times I was fooled, and the apparatus built so a desk does not have to take my word for any of it.
A prediction record nobody has to trust, including me. Two independent roots, a verifier that needs nothing from me, and the three disclosures the alpha cost.
Current work
A sports prediction feed with a public audit trail.
Lead AI engineer on SplitWinner, a platform where every prediction is hashed and attested to two independent roots before the event starts — Bitcoin via OpenTimestamps and the Sigstore Rekor transparency log. The result is an append-only ledger anyone can check with a single file of standard-library Python, no account required. I built the machine learning platform and the LLM product on top of it: ingestion, feature pipelines, training and serving, a ReAct agent harness with tool-calling and retrieval, the public API, the trading-desk terminal, and the verification layer. The point is that you do not have to trust the operator. Neither do I.
Sports prediction for sportsbook trading desks — calibrated, conformal, and anchored to a public tamper-proof ledger before every kickoff. Records get faked in this category; this one can’t be, not even by us.
MIT · in public
Sixteen single-purpose developer tools. Ten ship as zero-hassle VS Code extensions, past 97,000 downloads across Open VSX and the VS Code Marketplace; all sixteen ship as Rust crates on crates.io and as MCP servers an agent can call. Secrets detection that never leaves your machine, env sync with visual diff and conflict resolution, regex with live previews and ReDoS scoring, and thirteen more. Zed ports in progress.
TypeScript 10 extensions97K+ downloads16 Rust crates
Coordinates a computer-use agent can trust, because a human marked them. Freeze the screen, mark regions with real shapes, and get pixel-exact targets as versioned JSON with labeled crops and click code — plus verification with exit codes and self-healing relocation when the UI moves. Built for driving desktop applications that never shipped an API: UI verification, accessibility auditing, and agent computer-use where a guessed coordinate is a failed run.
Rust MITmacOS · Windows · LinuxHuman-in-the-loop
The execution half: click, type, chord, drag, and scroll at human-marked coordinates, then confirm the interaction actually landed. Chained CLI, flow files, or a line protocol any language can drive. It cannot act on a coordinate a person did not verify first — that constraint is the point, and it is what separates a test harness from a bot.
Rust MITmacOSVerified-only execution
Selected work
RumbleOn Integrated Auction Solutions General Motors L3Harris Technologies Brierley + Partners T. Rowe Price Kofile Technologies JPMorgan Chase & Co. Poly Lingo / MedLingo
+90% page speed
0 → 80% test coverage
−30% codebase
< 2s 13 decimals
−75% cloud $40K → $10K / mo
15+ locales 500+ a11y fixes
Statewide task completion +34%
acquired
97K+ downloads and climbing
What fails the build
These aren’t aspirations. Everything is written into the agent and contributor guides in my repositories and enforced by a check that fails the build.
A number, not a habit
Coverage floors Every repository carries a coverage floor that blocks the merge, not a target somebody aims at. Tests are written to break the thing rather than to confirm it works, and a failing check stops the build whoever wrote the code. “It should work” is not a state a repository can be in.Only what survives
Dependencies are liabilities I have tried most of the methodologies sold in the last decade in production. The right tool is the one that clears the bar for reliability, not the one with the loudest supporters. I cut dependencies, pin versions to whatever generated the lockfile, and treat every external as a liability until proven otherwise. The audit-trail verifier is pure standard library on purpose: asking someone to install my requirements in order to check my work would defeat the point of publishing it.Routing, not dumping
Context is the budget Context is the scarce resource in agent-assisted work, so I route it instead of dumping it. A root map points at repositories; each repository’s guide imports the standards beside it; service-scoped guides win on detail inside their own directory; nothing loads a sibling repository’s docs for a task that does not touch it. Rules that are expensive to relearn are written next to the reason they exist — so the next session starts where the last one ended rather than rediscovering it.Less magic, more factory
Small jobs, hard edges The agent work that pays off is not a long unattended session. It is a short job with a narrow scope, a verifiable output, and a way to tell whether it worked — the engineering is in the edges, not the model. That is why the Limited Edition tools all have the same shape: one job each, deterministic, local, exit codes as the API, no network. Sixteen of them compose; none of them improvises. An agent calling one gets the same contract an editor gets, and the same answer twice.Same input, same bytes
Determinism first You cannot verify what you cannot reproduce. BLAS thread pools pinned in the process environment before numpy loads, because the libraries lock them at import and setting it from Python is already too late. Seeds set explicitly on every run rather than inherited from a default. Golden vectors that make the verifier self-test before it tests anything of mine. It matters most where the output is published: a prediction anchored to a public ledger has to regenerate exactly, or the anchor proves nothing.The check, not the fix
Drift gates When two things have to agree — a claim and its source, a doc and an enum, a CI pin and the lockfile that generated it — the answer is a check that fails when they diverge, not a correction to the instance. Every install figure on this page is compared against the registries’ own APIs on each run, so a number that drifts fails a gate before a reader finds it. Generated code meets the same bar as hand-written or it does not merge, and the gate does not care who typed it.All of it is me