Projects

Systems

This project is a complete compiler for the Tiger programming language designed from first principles as part of a compilers course project. It includes a lexer, parser, AST construction, type and semantic checking, and intermediate code generation, with support for scoped symbol tables and error recovery. The design focuses on clarity and correctness across all compilation stages, demonstrating a deep understanding of language implementation and compiler architecture.

Punt Engine is a collection of gateware and software modules for building a high-frequency trading system that can process market data and orders at extremely low latencies using FPGA acceleration. It includes reference material on key components like pipelined order books, data pipelines, and strategy-related accumulators (such as moving average modules.

Implementation of a configurable cache simulator for 64-bit addresses that model L1 WBWA cache and L2 WTWNA cache while collecting detailed statistics.

ML/Finance

Built a two-stage ML pipeline for statistical arbitrage on US equities. Stage 1 uses unsupervised clustering (K-Means with k-means++ initialization, DBSCAN with PCA-reduced features) on engineered behavioral statistics from daily OHLCV data to reduce the O(n²) pair search space to within-cluster candidates. Stage 2 estimates hedge ratios and models spread dynamics via OLS linear regression (static) and Kalman filtering (dynamic), generating z-score-based entry/exit signals for dollar-neutral positions. Analyzed 7,000+ stocks from the Kaggle Huge Stock Market Dataset (2015–2017), engineered 18 de-correlated features using percentile-based distributional summaries, and applied RobustScaler normalization. The cointegration sweep identified 78 statistically validated pairs (Engle–Granger ADF test, p < 0.05) across both clustering methods, achieving a mean Sharpe ratio of 0.99 with 85% of pairs profitable. The top pair (CBG/CIT) returned +92.4% with a Sharpe of 1.81 and passed a 3σ Monte Carlo significance test (z = +3.50σ, p ≈ 0.02%) against buy-and-hold, confirming alpha generation independent of market direction.

I’ve been exploring Kalshi prediction markets by prototyping and testing a range of strategies from basic market-making and inventory/risk controls to signal-driven trading ideas. This project is my sandbox for iterating on strategy design, evaluation, and execution logic, with a focus on understanding real-world constraints like liquidity, fills, slippage, and managing downside when conditions change.

I built a high-performance on-chain trade indexer for Polymarket on Polygon using Envio HyperSync to stream and rapidly backfill CTF Exchange events. The indexer normalizes core trading actions—order fills, position splits, and redemptions—into a PostgreSQL schema optimized for analytics. To support end-to-end trader profiling, I map proxy wallet addresses back to user EOAs by indexing factory contract deployments, enabling complete trade histories, PnL tracking, and market-level volume metrics. I also enrich raw on-chain events by resolving ERC-1155 token IDs into human-readable market outcomes through the Gamma API, cutting backfill time from hours to under 30 minutes compared to standard RPC-based ingestion.

I built a real-time Solana transaction indexer in Rust that consumes Yellowstone Geyser gRPC streams to capture on-chain activity as it happens. The pipeline filters relevant programs/accounts to focus on deposit and withdrawal flows, then writes normalized records to PostgreSQL. To keep the database consistent with chain state under retries and reconnects, the ingestion layer is designed to be fault-tolerant with idempotent processing and signature-based deduplication. The result is a low-latency indexing system that minimizes unnecessary RPC load while maintaining real-time guarantees.

Apps

Practice probability by playing a market-making game where you repeatedly quote buy/sell prices on uncertain outcomes (like coin flips, dice rolls, or events with unknown true probability). Each round forces you to estimate expected value, update beliefs as new information arrives, and manage risk by choosing spreads that protect you from adverse selection. Over many rounds, you learn how probability translates into prices, how variance and sample size affect confidence, and how good market makers profit by balancing accuracy (fair odds) with safety (a spread) while controlling inventory and exposure.

AppealRX helps patients rewrite and improve insurance appeal letters after a denial of mental health services. Users upload their draft, doctor’s note, and any supporting documents. The system analyzes the submission, retrieves similar past appeals and policy rules, and returns a refined draft with specific suggestions. Demo: https://devpost.com/software/appealrx

Other

CTRL+F to check below to see if I actually cracked it or just made a mess of Python