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.