Backend engineering
A backend's job is to be the source of truth and to decide who's allowed to change it. Mine have been a GraphQL layer over blockchain events, a matching engine with browser-based signing, and a retrieval system behind a voice assistant.
Blockchain data and realtime APIs
ChainGraph started as a side project while I was at Bitcash: a GraphQL subscription toolkit for indexing and streaming EOSIO and Antelope data. Bitlauncher later needed an indexer of its own for EOS EVM, so I built one on viem event subscriptions and a dFuse stream, with Supabase handling queries, aggregation, and realtime subscriptions.
Exchange and protocol services
At Bitcash the matching engine had to be the system of record. The exchange runs on Hasura GraphQL APIs, a realtime EOS indexer with worker threads and binary deserialization, and PostgreSQL behind all of it. At Opyn the question was where protocol state should live. I put it in a Ponder indexer over PostgreSQL, so the trading interface reads indexed state and doesn't rebuild positions from raw RPC reads.
Retrieval and application services
For LegalAgent I built retrieval as an application service, not as a prompt. Document categorization decides what retrieval can reach, and the system prompts live as data in the admin instead of in code.
Writing about backend systems
See the work
Browse the full project archive for implementation details and technology choices.




