Lead AI Engineer · Dallas, Texas building in public

NolinNaidoo

nolindnaidoo — same handle everywhere

AI/ML · MLOps · agentic systemsPlatform & full-stack architectureAutomotive · finance · defense · public records

Case studies

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.

Now — OffensiveEdge

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.

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.

Verification
A public append-only audit trail with Bitcoin-anchored timestamps — one pure-stdlib verifier checks the whole chain, no account, no trust required.
Modeling
Calibrated probabilities with conformal sets, validated on held-out data and proven in a five-week public live alpha — skips disclosed, nothing deleted.
MLOps
Year-round coverage across six sports as their seasons rotate, behind a signed, versioned API — retrained on a weekly minimum in season, parallel model deployment, automated versioning, sub-second inference.
Product
Full-stack architecture across Next.js, React, React Native, TypeScript and Python, unifying every product surface on one inference backbone.

Open source

MIT · in public

Limited Edition Dev Tools

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

pixelcoords

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

pixelactions

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

The record

Selected work

RumbleOn Integrated Auction Solutions General Motors L3Harris Technologies Brierley + Partners T. Rowe Price Kofile Technologies JPMorgan Chase & Co. Poly Lingo / MedLingo

  • Shipped Shop Click Drive — the first way to buy a car outright on a major manufacturer’s own website

    +90% page speed

    General Motors · Shop Click Drive · 2017 Chevrolet, GMC, Buick and Cadillac. Franchise law means the manufacturer can never hold the transaction, so the entire purchase brokers through a third party the customer never sees — one seamless flow built around a legal boundary.Announced years earlier and still not live when I arrived. The program had a 100-person manual QA organization; I wrote the automated suite that gated the release on my own — Selenium, Mocha, Chai, Sinon, SuperTest, Postman — and took Google Page Speed up by 90%.
  • Architected the first Node.js application put into service in the Department of Defense

    0 → 80% test coverage

    L3Harris Technologies · Communication Systems · 2016 Node.js and React into defense service, on a stack that had never cleared it. Moved 40 remote engineers off strictly-typed C# · test coverage 0 → 80% · React localization framework adopted enterprise-wide
  • One of six engineers who rebuilt chase.com and the Chase mobile app as a single-page application

    −30% codebase

    JPMorgan Chase & Co. · CMH1 flagship team · 2014 Built on Ember at a Fortune 10 bank in 2014, when a bank shipping a single-page app at that scale was still unproven · jQuery fully removed · codebase down 30% · ten minutes off every build
  • Staff product engineer on a national live-auction platform — sub-two-second feed, bids exact to thirteen decimal places

    < 2s 13 decimals

    Integrated Auction Solutions In a live auction, rounding error decides who wins — thirteen places of precision removed it for every bidder in the country.Built the consumer website, the mobile app, and the on-site inventory cataloging apps outright — React and React Native on one schema.
  • Staff forward deployed engineer for what is now the largest motorcycle retailer in the country — web, mobile, and a serverless rebuild

    −75% cloud $40K → $10K / mo

    RumbleOn Created Carvis, the direct vehicle-purchasing mobile platform, and led website and mobile development end to end — AppSync and GraphQL on React Native, lead-to-sale conversion up 22%.RumbleOn ran on the auction platform I built at Integrated Auction Solutions, and brought me in to own their side of it.
  • Shipped the localization layer behind a global asset manager’s client site — the languages its brokers use with clients

    15+ locales 500+ a11y fixes

    T. Rowe Price Granite i18n across every supported market, and the ADA remediation pilot that found and resolved 500+ accessibility failures on the same platform.
  • Led the accessibility work that brought the State of Texas digital records system into ADA and Section 508 compliance

    Statewide task completion +34%

    Kofile Technologies Rebuilt the experience from business-centric to human-centric, and taught the product managers to treat accessibility as a requirement rather than a remediation.
  • Lead developer on an award-winning EMS interpretation platform, through to its acquisition

    acquired

    Poly Lingo / MedLingo → ESO Solutions Texas Fire Chief’s Lone Star Achievement Award · EMS World Top Innovation Award · shipped the iOS product to the App Store.
  • Developer tools shipped in the open, growing entirely by word of mouth

    97K+ downloads and climbing

    10 VS Code extensions · 2 Rust binaries 13,700 in the first week and it never slowed down — no marketing, no launch budget. Currently porting the suite to Zed and republishing the cores as Rust crates. letools.devcrates.io

The floor

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.
  • MLOps
  • MLflow
  • scikit-learn
  • TensorFlow
  • PyTorch
  • ONNX
  • Probability calibration
  • Conformal prediction
  • AutoML
  • Agentic systems
  • LangChain
  • LangGraph
  • Langfuse
  • MCP
  • RAG
  • pgvector
  • TypeScript
  • Python
  • Rust
  • React
  • React Native
  • Next.js
  • Svelte
  • Node.js
  • Bun
  • GraphQL
  • PostgreSQL
  • Redis
  • Kafka
  • n8n
  • Docker
  • Kubernetes
  • Terraform
  • AWS Lambda
  • AWS SageMaker
  • EC2
  • Serverless
  • Microservices
  • CI/CD
  • Tailwind CSS

Elsewhere

All of it is me