I build systems: distributed backends, infra tooling, and the occasional analytics platform, then make sure they actually run in production.
I like taking a system apart to understand exactly how it fails, then building the version that doesn't: queues that survive a crashed worker, dashboards that update in real time instead of on refresh, infra that tells you what's actually wrong instead of just that something is. Most of what's below started as "I wonder how that actually works under the hood."
Languages
Infrastructure & platforms
Observability
Web & data
Tools
|
|
Aegis: distributed job queue and DAG workflow engine A from-scratch Celery/Temporal alternative: atomic job leasing, retries with backoff and jitter, dead-letter queues, a reactive DAG engine, and Postgres-advisory-lock leader election for HA. Go engine, React dashboard, Go + Python worker SDKs, one binary. |
|
|
InsightBoard: self-hosted product analytics A Mixpanel-style stack: a tracking SDK, a FastAPI ingestion API, a Kafka to ClickHouse pipeline for event aggregation, and a React dashboard for funnels, heatmaps, and custom boards. |
|
|
SentryFlow: API gateway with rate limiting and analytics Sits in front of an API: authenticates by key, enforces sliding-window and token-bucket rate limits, and streams request logs through Kafka into ClickHouse for usage analytics. |
|
|
ETHVault: Ethereum staking and governance platform Deposit ETH for a receipt token, stake it for a second token, earn rewards, and vote on governance proposals, four Solidity contracts behind a Next.js frontend. |
|
|
Symbolic Music Scaling Laws: do neural scaling laws hold for music? Trains Transformer and RNN language models at five sizes on ABC-notation music and fits a power law to loss vs. parameter count, the same question scaling-laws research asks for text, asked of music instead. |
More on my GitHub profile: an HTLC atomic-swap protocol simulator with a short paper, an Ethereum auction house, and a diabetic retinopathy screening app among them.
Full contribution history and activity graph are on this profile page, right below this README.

