TechnologyBuilt, not bought

Fast where it
has to be.

Rust in the order path, where milliseconds and correctness both matter. Python and SQL for research, where iteration speed matters. One archive underneath both, so research runs on exactly what the live system saw.

01

Execution

A compiled Rust service per bot, on its own host. Order adapter, order lifecycle and reconciler are separate modules: the adapter talks to the exchange, the lifecycle owns each order's state, and the reconciler checks that state against the exchange's own records.

Production order code is compiled in only when a build explicitly asks for it, and armed only by a separate runtime authorization. A default build cannot reach the exchange's order endpoints.

02

Market data

An always-on collector records the full order book, every trade and every market status change for every Kalshi market on each NBA game, not just the winner: spreads, totals, quarters, player props. The raw tape format is frozen; one canonical replay turns it into books at any instant.

Kalshi publishes no historical order book. Depth exists only where we captured it live.

03

Game data

League play-by-play and box scores are polled every second for live games on the same host clock as the order book. Each record keeps when we first saw it as well as when the league says it happened, so research acts on what was knowable, not on the event time.

04

Research

Hourly Parquet files with five-minute book checkpoints, queried with DuckDB. Backtests run against the same replay the live system's data came from, and a candle-based result is never reported as a fill.

05

Models

STRYKE and MACHINE run as their own services with versioned model bundles, recorded seeds and point-in-time cutoffs. See AI/ML.

StackWhat it runs on

Boring tools.
Sharp edges.

RustPythonTypeScriptDuckDBParquetFastAPIReactAWS EC2AWS S3AWS Systems Managerlaunchd