I build trading systems, agentic infrastructure, and the routing layers that decide who should do the work — a model, a machine, or a person.
🥇 Top 5 of 53 — GenAI Fund Agentic AI Build Week 2026, Founder Mode track, built solo
An operating system for a workforce of humans and AI agents. It decides who should do each piece of work — an AI agent, a human, or an agent that proposes and a human who approves. Every task is routed through an interpretable score, every irreversible action is gated behind a signed human approval, and the system learns which workers to trust from judged, human-confirmed outcomes.
Reputation buys autonomy on reversible work, and buys nothing on irreversible work.
Next.js 16 · TypeScript · Supabase · OpenAI · Langfuse · 60 tests passing
A meta-router for Claude Code. It sits above every workflow system in the stack and decides, per task, which system, which specialist, and which effort tier — then logs the decision and learns from the outcome.
A friendly response to Karpathy's LLM Council: multi-model voting is one useful tool, but routing is the harder problem.
Python · Shell · Markdown
Forward-testing an equity screener before trusting it. Validation design, pre-registered promotion criteria, and the write-up of what happened when the harness found the scoring model was inverted — the screener was ranking the worst names highest, and only a pre-committed test caught it.
Methodology is public; the implementation stays private.
Python · pre-registered validation
A modular backtesting engine in Rust, built on Polars. Strategies are swappable behind a Strategy trait, execution is realistic (next-bar fills, commission, slippage), and it ships with Kelly position sizing, grid-search parameter optimisation, and walk-forward validation to catch overfitting. Includes a Rust-versus-pandas benchmark.
Rust · Polars · clap
A live Bitcoin trading simulator. Streams real-time price from the Binance WebSocket API, computes SMA, EMA and RSI on the client, and simulates market and limit orders with full portfolio and P&L tracking.
Node.js · Express · vanilla JS · Chart.js
Eight PRs merged into tools I use daily. Each one started as a bug I hit myself, was reproduced before it was fixed, and shipped with regression tests.
| project | ★ | what landed |
|---|---|---|
| Understand-Anything | 81.5k | A PostToolUse hook read its payload from a stale env var instead of stdin, so it silently saw nothing |
| Scrapling | 78.4k | The response cache dropped cookies on browser-engine responses, breaking session reuse |
| last30days | 61.2k | A silent fallback masked YouTube transcript failures, so a broken fetch looked identical to an empty result |
| mcp-atlassian | 5.8k | Clearing an issue's parent silently did nothing — an explicit null was read as "field omitted" |
| mcp-atlassian | 5.8k | A blank line before ---- became an empty h2. in the Jira markup conversion |
| fastmcp | 3.3k | MCP resource subscriptions — a new feature, shipped in v4.8.0 |
| chat | 2.3k | Slack alert attachments lost their content once a message was normalised |
| toolport | 201 | Witsy MCP client support, credited by the maintainer in the README |
In review — seven open, into engines and platforms I depend on:
| project | ★ | what it fixes |
|---|---|---|
| mastra | 27.7k | Three containment gaps in run-command-tool |
| datafusion | 9.3k | Spark pmod derived its decimal result type after coercion, which collapsed both precisions and degenerated the rule to the input precision |
| registry | 7.2k | IsValidRemoteURL accepted loopback, private and link-local hosts |
| registry | 7.2k | Search matches server descriptions, not just names — a new capability |
| mcp-atlassian | 5.8k | CONFLUENCE_SPACES_FILTER was never applied to space listings |
| workers-sdk | 4.5k | The Vite plugin dropped the port on requests arriving over HTTP/2 |
| git-proxy | 245 | Deprecation warnings drifted from the schema; now driven off config.schema.json |
Top 5 of 53 · Founder Mode track · Problem P4, "Human-AgentOS" · built solo
Shipped warrant in a single build day: a closed loop for human/AI workforce allocation. A task arrives with capability requirements and a reversibility flag; a router scores every registered worker on capability match, cost, latency and evidenced reliability; irreversible actions structurally require human authority regardless of reputation; work executes for real, outcomes are judged, and the next identical task routes differently.
Simulated workload, real executions — every execution, score and posterior update is recorded in an append-only evidence log.
CS @ Durham University — going into second year, deep in quant systems, algorithmic trading and agent infrastructure. Building real products alongside the degree, not after it.
Before Durham: 3rd Sergeant, Singapore Army (Military Police) — commanded a 10-man team in high-pressure, compliance-driven environments. Learned to think in systems and manage risk before I knew what those words meant in trading.
I write about crypto, tokenomics, quant and emerging tech on Substack.
Latest: Crypto-Currencies & Tokenomics: Their Relevance in the Next Decade
long distance running ·
street photography ·
specialty coffee ·
guitar ·


