Projects

Working builds, each one self-contained. The flagship projects carry their own README.

Trading Simulator / PnL Tracker

A shared public trade book. Open a simulated stock or option position and watch the PnL move against live market data.

Flask yfinance SQLite Black-Scholes

Company Scorer

Scores a company on valuation, leverage, growth and profitability from SEC EDGAR filings and market data, then backtests whether the score predicted anything.

SEC EDGAR API yfinance Backtesting

Pipeline World

Submit a character and watch it move through a real queued pipeline (validate, test, build, deploy) in a top-down world. Every run is logged and queryable on the analytics page.

RQ + Redis Socket.IO Postgres Window Functions

SRE Infra Layer

The Redis queue, cache-aside world state, and per-IP rate limiting that Pipeline World runs on, with a live dashboard.

Redis Cache-Aside Rate Limiting

Site Traffic Analytics

An analytics board over this app's own network traffic: request volume over time, latency percentiles, error rate, and the busiest endpoints and outbound calls. Not visitor browsing, for reasons covered on the page.

Flask hooks Analytics

Timed-Squares

A turn-based survival game on a 10x10 grid, playable right in the browser. Dodge obstacles that telegraph their next move before they make it, and outlast an escalating spawn rate. Public leaderboard, no login.

Canvas Vanilla JS Public leaderboard

Tiny JVM

A compact stack-based virtual machine written in C that runs the same bytecode in the browser (WebAssembly) and, eventually, on a microcontroller. Programs are written in a small custom language and compiled to that bytecode by a real Java toolchain (lexer, parser, code generator). Try it live: step through a recursive factorial, or watch an over-temp-alarm program read a simulated sensor and drive a simulated GPIO pin.

Java Embedded / C WebAssembly Compilers

Market Data Warehouse

yfinance's full price/dividend/split history pulled through an idempotent ingestion job into a dbt dimensional warehouse: a fact-table family (price, technical indicators, risk metrics) sharing conformed dimensions, plus a clearly labeled (not financial advice) trend projection. This page queries the built warehouse live, with a timeframe picker. Same dbt code runs on DuckDB, MotherDuck's free tier, or Snowflake.

dbt DuckDB Star Schema yfinance

Top Interview 150 Tracker

A personal interview-prep dashboard over LeetCode's official Top Interview 150. Pick a problem, run the 20-minute timer, compare to the solution, then mark it Yes or No. Progress is saved in the browser, no login.

Vanilla JS localStorage No backend state

AI Assistant

A retrieval-grounded agent, not a scripted chatbot: a LangGraph agent loop decides for itself which tools to call and in what order, pulling real data from this site's own live projects (trading simulator, pipeline world, company scorer, timed-squares) instead of describing them from memory. Its flagship example chains three tool calls on its own -- a stock quote, a trend projection, then a written risk report -- deciding at each step what to call next based on what the last one returned. Retrieval runs over a pgvector store with local embeddings; generation is Groq, behind a rate-limited, prompt-injection-aware public endpoint. A stats page tracks tone, volume, and top questions from the logs, with no model calls.

RAG pgvector Embeddings Groq LangGraph

Earlier Projects

Older and smaller. Not running here, just linked.

Beeznest

B2B networking platform built with Ruby on Rails and SQLite. 2nd place at StreetCode Accelerator Demo Day.

View