I build streaming data infrastructure in Rust. Most of my work lives where a firehose of on-chain state meets a database that has to answer questions about it: gRPC subscriptions, Anchor account decoding, columnar storage, and the operational plumbing that keeps a pipeline running unattended for weeks.
Right now that means two things. klend-indexer is a production Rust indexer that subscribes to Kamino Lend account writes over a Yellowstone gRPC stream, decodes them with Anchor discriminators, and lands them in ClickHouse. It ran continuously on GCP and accumulated ~1.1M account updates and ~180K decoded obligation snapshots. Separately, I do network measurement research at Oregon State University's ASTRO Lab under Dr. Zane Ma, measuring how much validator identity leaks at Solana's gossip layer.
Solana is the domain I know best, not the boundary. The through-line is Rust and data engineering.
When I'm not building, you can probably find me analyzing the conceptual mechanics of Devil Fruits in One Piece. Contact me if you want to talk streaming data, Rust, or Solana internals.
- klend-indexer: Rust β Yellowstone gRPC β ClickHouse. Account-level decode, slot-based checkpointing, gap detection, lag metrics, and a freeze/resume runbook so a live pipeline can be parked without losing history.
- S-NodeFinder: network measurement research at OSU ASTRO Lab. How much does Solana's gossip layer leak validator identity, and how is that leak weighted by stake and concentrated by cloud provider?
- Cold-path storage: Parquet and DataFusion beside ClickHouse, so the same dataset serves both live queries and cheap historical scans.
"The clock is the dataset: a stream you stop observing is history you cannot get back."


