Projects

Three independent engineering projects spanning ML research infrastructure, programming languages and data systems. For Finch and Crow, I owned the architecture, the research questions, the correctness criteria and the engineering decisions; AI coding agents implemented much of the software under explicit tests, validation gates and human review.

Finch

ML research and market-data platform · December 2024 to present · private

A research platform for premarket equities, processing one-second market data and evaluating decisions at ten-second intervals across approximately 900 trading days and 2,000 symbols a day.

The system is built around three requirements: historical features must contain only information available at the decision, offline evaluation must reproduce live execution semantics, and research results must be rejected when those requirements fail. Its infrastructure includes a point-in-time feature store with pre-write causality checks, separate controls for walk-forward model features and strict separation of labels from serving features; causality certification and evaluation harnesses; deterministic pattern detectors; and shared decision and exit logic used by both simulation and live monitoring, so that research and serving behaviour differ as little as possible.

What the platform is built to do is say no. Its most important output is not a trading result but its ability to reject invalid research: 32 research threads have been closed or refuted, and eleven documented failures involving look-ahead leakage, selection bias and offline/live mismatch were investigated and corrected. No performance figures are published.

  • ~10 million feature rows in 83 stored groups, October 2026
  • 32 research threads closed or refuted
  • 11 documented evaluation failures corrected
  • ~2,670 commits

Crow

Programming language and numerical runtime · February 2026 to present · early access

An experimental programming language for numerical computing, data processing and web applications. Crow uses Python-like syntax, compiles to Rust, supports automatic parallel execution for eligible loops, and treats errors as values. Its runtime includes tensors, data frames, SQL integration and a reactive web framework.

The central engineering challenge is correctness across execution paths. Interpreted and compiled execution paths share an intermediate representation and a runtime. Valid programs must agree on their results, and invalid programs must be rejected consistently, in the same words. Its numerical and ML packages are also compared against established Python references, using bit-exact, tolerance-based or behavioural parity according to the reference's semantics.

Those comparisons have exposed numerical implementation details absent from the references' documentation, and defects in Crow's own compiler and runtime. Rejected language features are retained as design notes, so architectural trade-offs stay reviewable. Pre-1.0, experimental, and without external users.

  • 244 interpreter and compiler parity programs
  • 7 packages tested against Python references
  • 96 design notes of rejected features
  • ~124,000 lines of Rust

BlueJay

Go data-analysis library · September to October 2024 · archived · public, MIT · github.com/aggnr/bluejay

An experimental data-frame library for Go exploring disk-backed storage, persistent B+tree indexes and desktop data visualisation.

The project evolved through three storage architectures: row-oriented storage, column chunks, and chunked rows backed by B+tree indexes the library implements itself. Earlier implementations remain in the repository, documenting the design progression. The library also includes structured-data readers, joins, statistical operations and interactive visualisations.

BlueJay is archived rather than maintained. It has no automated test suite, and the library packages build independently although the complete repository does not.

  • 3 storage designs explored
  • ~2,400 lines of current Go
  • 66 commits over four weeks