Featured work · Also building · Experience · Libraries and tools · Interactive demos · Tech stack
AI / data engineer. I run Alloway LLC, where I build LLM evaluation tooling, agent systems, and the data pipelines behind them, and I contract on frontier-model evaluation programs for AI labs.
What I ship is meant to be checked: open-source packages on PyPI, browser demos that run with no API keys, a working paper whose tables recompute from the repo with one command, and tests that assert on the decisions a system makes.
- Now: Founder, Alloway LLC (details)
- Education: University of South Florida, M.S. Artificial Intelligence (expected Dec 2027) · B.S. Information Science, cum laude
- Contact: ian@allowayllc.com · LinkedIn · Résumé (PDF) · ianalloway.xyz · Writing: Alloway AI
SOLVENT: an agent that has to stay solvent
Problem: an agent that can spend money needs pricing, a margin gate, and an auditable ledger.
Design: a Python business loop with a SQLite treasury, policy-screened spend, and optional Stripe test-mode payments and NVIDIA Nemotron inference. The core runs on the standard library alone.
What you can inspect: the offline demo runs earn → fulfil → spend → P&L with no API keys. Its dollar figures are simulated, not production revenue. Stripe test mode is the default earn rail. An optional Nano settle rail runs in sim or live verify-only mode: it checks public ledger blocks before fulfilling and never holds a hot wallet. Guardrails include per-job budget envelopes and a human-approval hook.
pip install solvent-agent && solvent · Try it in the browser · Run the demo · Dashboard preview · Security model
juryrig: audit the LLM judge before you trust it
Problem: LLM-as-judge scores can hide position, verbosity, and prompt-injection bias.
Design: zero-dependency Python audits, judge panels, pairwise agreement, and calibration against human labels. Protocol-based adapters keep the judge provider replaceable.
What you can inspect: a network-free demo compares fair and deliberately rigged mock judges. Agreement matrices and the disagreement atlas ship in PyPI 0.3.1.
pip install juryrig · Try it in the browser · Demo source · Evaluation lab · Tests
SpendAudit: can an LLM auditor match an executable payment policy?
Question: when an LLM reviews an agent's payments against a written policy, does its verdict match what the policy actually computes, and does an instruction planted in a payment memo change it?
Design: 160 synthetic payment histories, each labeled by SOLVENT's deterministic spend policy and paired with a copy whose memo argues for the wrong verdict (320 items). Three models were tested under a verdict-only protocol and under one that requires rule-by-rule evidence and arithmetic, and results are compared on the scenarios each model answered in every condition.
Findings: requiring evidence cut false approvals on clean traces from 34 to 6 and from 47 to 18 (exact McNemar p < 10⁻⁷) without a single false rejection, but injected memos still got violating payments approved for every model.
What you can inspect: a working paper, the dataset (CC BY 4.0), every model response, and a one-command recount of each table.
Working paper (PDF) · Benchmark and data · Reproduce the tables · Cite
AI Advantage Sports: a deployed React / TypeScript product for odds, Kelly-based stake sizing, calibration views, and portfolio risk, with server-side Stripe entitlement handlers. The related training demo uses synthetic data; its metrics are not evidence of live betting returns. Live product · Case study · Screenshot
openclaw-skills: 17 tested, installable skills for the OpenClaw assistant covering sports analytics, market data, and LLM-judge auditing with juryrig. Three are published on ClawHub.
- Founder, Alloway LLC: applied ML products, analytics tooling, and autonomous agent systems (including AI Advantage Sports)
- Contract @ Handshake AI (Jun–Oct 2026): graded frontier-model output on software-engineering and agent tasks; side-by-side preference evals and reviews of agent-built apps
- Contract @ Mercor & Turing: building agent eval environments, golden answers, and grader rubrics (audit/accounting, spreadsheet automation)
| Area | Projects |
|---|---|
| Sports libraries & experiments | nba-ratings / nba-edge — ratings and probability · kelly-js — odds and stake math · sports-betting-ml — synthetic training demo |
| Agent extensions | openclaw-theme-neon — theme with a preview |
| Web & experiments | ian-web-forge — portfolio · matrix-rain — React animation · evm-sentry — on-chain scanner |
| Upstream | LiteLLM (open): #48895 reap the killed Prisma engine so it no longer lingers as a zombie process · #49448 run the Docker images under tini so orphaned Prisma processes are reaped |
| Archive | oss-archive — completed project snapshots |
Writing: The browser is the real agent benchmark · Archived benchmark checklist.
| Project | What to try | Links |
|---|---|---|
| Ballpark | A multiplayer estimation game: closest guess wins. | Play · Source |
| Beat the Close | A shared market game with private scouting reads and closing-line value. | Play · Source |
| Neon theme | Switch palettes, tune CSS variables, and preview the rain effect. | Preview · Source |
| ASCII portfolio | An experimental monogram landing page built with Three.js and GSAP. | Source and local setup |
Evaluation: LLM-as-judge auditing · rubric & preference evals · agent evals · calibration · benchmark design
Data: SQL · SQLite · PostgreSQL · Pandas · reproducible analysis in CI
Languages: Python · TypeScript · SQL · JavaScript
AI / ML: OpenAI · NVIDIA Nemotron · LangChain · scikit-learn · XGBoost
Product & infra: FastAPI · Next.js / React · Stripe · Docker · GitHub Actions · PyPI packaging · Hugging Face Spaces





