About

I treat correctness as the product.

I’m Ali Baig, a software engineer. Most of what I build involves money: a Bitcoin wallet and marketplace, a sports betting platform, payments at a nightclub door, on-chain fundraising, the rails that let AI agents pay for things and, most recently, the data platform behind a regulated stock-trading venue.

Work like that teaches you quickly that “mostly right” isn’t a state money can be in. So I care about the layer under the interface: data that reconciles, payments that are verified at the source, jobs that can run twice without harm, and systems that say when they’re unsure instead of quietly guessing.

I tend to own things end to end: the design document and the estimate, the contracts and services, the dashboards, the runbook for when it breaks, and the guide that lets someone else run it after me. I write down every significant decision along with the option I rejected.

Between projects I build my own products. Lately that has meant infrastructure for AI agents to pay for things. Now and then I do a piece of research, and I publish it even when the answer is no.

How I work

A wrong number is worse than a missing one.

A missing value is visible. A wrong one gets invoiced. When a system isn’t sure, it should hold the record and say why.

Check the state, not the clock.

“Wait five minutes, then assume it arrived” can’t tell broken from idle. Ask whether the thing you’re waiting for has actually landed.

Trust nothing a client says about money.

Verify it against the source: the chain, the ledger, the upstream record. A signature proves who sent a claim, not that the claim is true.

Make retries boring.

Every write that can be replayed is idempotent. Every job that moves money holds a lock and can be run twice without harm.

Widening a threshold is not a fix.

It turns a false alarm into a missed one. Find the condition you actually meant to check.

Don’t guess an ambiguous mapping.

Leave it empty, log it and ask. A plausible guess is a future bug with a head start.

Try to break your own result.

If you can’t, publish it. If you can, publish that.

Write decisions down.

Along with the option you rejected and why. Docs that disagree with the code get fixed, not ignored.

Recent timeline

Jun 2026 – nowData platform for a regulated equities trading venue: ingestion, billing, surveillance and FIX certification →
Apr 2026TESS Quiet, a paper and dataset on stellar signals the NASA pipeline removed; WalletLens; ClubPerps; and a preprint on psychiatric imaging →
Mar 2026MonkePay: payment rails for AI agents, from first commit to launch in three weeks →
Nov 2025 – Mar 2026Capset: on-chain fundraising on Base, contracts to frontend →
EarlierOrdinals Wallet, then Neverleft, Champion’s Choice, Gnizzel and NavRobo: web and mobile products shipped to production and the app stores →

Toolbox

Use every day

Python · TypeScript · SQL · Go · PostgreSQL · ClickHouse · Redis · Kafka · Solidity · Foundry · Next.js · Node.js · Linux

Have shipped to production with

React Native · Django · Rails · MongoDB · Prisma · BullMQ · viem · wagmi · x402 · MCP · Airflow · dbt · FIX 4.2 · Grafana · AWS · Docker · Vercel · App Store · Google Play