Where I am, autumn 2026
The last post here is from December 2024. This one fills the gap: a master's degree, a few systems I built and ran, and what I want to work on next.
The last post here is from December 2024. This one fills the gap: a master's degree, a few systems I built and ran, and what I want to work on next.
In 2025 I wrote a relay that sits between Solana searcher bots and Jito's block engines. This post is about the part that broke under load: deciding, thousands of times a second, which egress address may send to which region right now.
The expensive mistake in on-chain arbitrage is building a fast bot for a market you haven't measured. This post is about measuring first, on Solana and then on Robinhood Chain, and what the numbers changed.
LLM-Digest is the app I run for myself to read the market so I don't have to. This post walks through how its flagship report gets written: nine LLM stages, typed hand-offs, and the boring machinery that keeps it running.
For our graduate capstone this summer, a team of four built a latency stack on vLLM serving Llama-3.1-8B on a single RTX 3090. My part was the KV-cache layer underneath the scheduler. This post covers what that layer did and why it moved first-token latency more than anything else we tried.
Most of my local inference runs on one RTX 3090 with 24 GB of VRAM. This post covers what fits on it, what doesn't, and why the limit is usually not the model weights.
In 2026 I spent most of my time on a Rust trading system for Polymarket's 15-minute BTC up/down markets. I spent more of that time on the backtester than on the live bot, and this post is about what the backtester got wrong.
Most of my code in 2026 was written with coding agents, mainly Claude Code. These are the practices that held up on large codebases, and the problems that made me adopt them.