Projects

A mix of production systems, internal tooling, and open-source products across trading, research, and onchain gaming.

Rialto

Autonomous LLM trader

Live in production

Production trading system on Bybit. TradingView alerts via WSS → DOM analysis → LLM signal evaluation → Rust risk engine with guardrails → execution and trade management. Handles the full cycle including mid-trade audit.

PythonRustLLMBybitOpenRouter

GG Labs

Esports-to-Web3 onboarding

20K users · $350K raised

Product lead for onboarding 20,000 esports gamers into web3. $350K raised at $15M FDV. Designed the onboarding flow, Steam integration path, wallet abstraction, and a domain-driven architecture that made it easier to layer new features without breaking the core experience.

ProductWeb3GrowthGameFi

vc-analyzer

Co-investor graph DB

11K+ funds indexed

Graph DB of 11,000+ crypto VC funds. Built to evaluate cap tables, track public returns, and surface winrate patterns in Tier 2/3 co-investments. TypeScript app for queries, graph visualization for co-investing patterns across verticals.

Graph DBPythonTypeScriptDataVC

Meteora Scanner

LP opportunity discovery on Solana

Paper trading mode

System for identifying high-yield LP entry points across Meteora DLMM pools on Solana. Combines on-chain data (active bins, liquidity concentration, fee premiums) with LLM-driven analysis to surface actionable opportunities before they're crowded.

SolanaDeFiTypeScriptMeteora

Warpacks

Onchain collectible pack experience on Starknet

Live on Starknet · Grant funded

Founder, PM, and developer. Designed game mechanics and economy model, implemented smart contracts in Cairo on Starknet. Secured grant funding from Starknet Foundation. End-to-end: concept → contract → shipped product.

GamingStarknetCairoGame DesignStarknet Foundation

Vara Arena

Onchain PvP game on Vara

Shipped · Grant funded

Founder, PM, and developer. Led game design, contract implementation, and product execution. Participated in hackathons and secured grants. Built the full stack from game logic to onchain mechanics.

GamingVaraRustPvPGame Design

Internal systems

How I think about model-driven systems.

The common thread across these systems is not just model usage. It is deciding how context is stored, retrieved, and checked by deterministic components where precision matters more than generation.

OpenClaw memory layer

Built a vector-memory layer so the system could keep useful working context over time instead of treating each interaction like a stateless prompt.

Vault knowledge graph

Built a graph-backed knowledge layer before OpenClaw so relationships across notes, entities, and ideas were structured and queryable instead of buried in loose text.

Rialto guardrail split

Kept model reasoning separate from deterministic execution and risk controls, because the main design question was where the model should stop and the system should take over.

Case studies

Two projects that show how I work.

Rialto and vc-analyzer are both private systems, so the useful proof is not a public repo. It is the product logic, the system design, and the decisions behind them.

Case Study

vc-analyzer

Intelligence tool for BD and deal evaluation

11K+ funds indexed

Problem

Evaluating a deal's cap table in crypto means answering questions a spreadsheet can't: which co-investor combinations actually correlate with good outcomes, which Tier 2/3 funds have real winrates vs. reputation, and how capital moves through an ecosystem. I needed a tool that could surface these patterns across 11K+ funds instead of stitching them together manually.

Approach

I indexed 11K+ crypto VC funds into a graph database — entities and edges, not flat tables — because the questions are relational. Built a TypeScript app to query the DB: look up a project's cap table, traverse to co-investors, check their public returns and portfolio overlaps. On top of that, a graph visualization layer to map co-investing patterns across verticals — DeFi, infrastructure, AI-agent, gaming — so you can see clusters instead of reading lists.

Key decisions

  • Graph over relational. The value is in traversing networks — fund → portfolio → co-investors → their outcomes. A relational model stores this; a graph model makes it queryable.
  • Focus on Tier 2/3 patterns. Everyone knows what a16z does. The real edge is spotting which smaller fund combinations consistently show up around breakout deals.
  • Tool, not oracle. The system surfaces structure for a human to evaluate. It doesn't score deals — it makes the first pass faster and more grounded.

Outcome

Used at V3V as part of deal flow triage and BD. Compressed the gap between "this looks interesting" and "here's the investor structure around it" from hours of manual research to minutes. Particularly useful for evaluating cap table strength and spotting when a familiar investor set is real signal vs. noise.

What I learned

The best internal tools don't automate decisions — they change what you can see fast enough to matter. Most of the value came from killing mechanical research work so the team could spend time on judgment calls instead.

Case Study

Rialto

Autonomous trading system with LLM reasoning and Rust risk controls

Live in production

Problem

Manual crypto trading loses money because humans react late and trade on emotion. I wanted to test whether an LLM reasoning layer inside a disciplined system could make better decisions — not as a black box, but as one component with clear boundaries.

Approach

I built a set of custom indicators and connected them to TradingView alerts via WSS. When a signal fires, the system pulls DOM data to read current market structure — liquidity, order flow, where the pressure is. An LLM evaluates the signal against that context and produces a structured trade instruction. That instruction goes to a Rust engine with built-in guardrails: position sizing, risk limits, max exposure. The engine executes the trade on Bybit and manages it from there — adjusting stops, scaling out, or requesting an audit from the LLM when conditions shift.

Key decisions

  • Separated reasoning from execution. The LLM interprets signals and context. The Rust engine enforces risk. One component should never do both.
  • DOM over price-only analysis. Price candles miss what's happening in the orderbook. DOM data shows where real liquidity sits and where it's being pulled.
  • Audit loop. The engine doesn't just fire-and-forget. When market conditions change mid-trade, it can request the LLM to re-evaluate — but execution stays in Rust.

Outcome

What started as an exploration of how hard this would be to do properly turned into a live production system on Bybit with real capital. The system handles the full cycle: signal → evaluation → execution → trade management → audit.

What I learned

LLMs are good at synthesizing noisy signals into a structured view faster than I can. They're bad at precise risk management — that's why the Rust layer exists. The useful insight is knowing where to draw the line between the two.

Let's talk

If you're hiring for product, research, or a builder-analyst role, book 30 minutes and I'll come prepared.

Funds → trial DD Product teams → free teardown
Book a 30-min call