About
Backend engineer with 5+ years building production-scale distributed systems. My work spans event-driven microservices serving millions of users and protocol-level upgrades to large, live peer-to-peer networks. I thrive in small, fast-moving teams with high ownership and high engineering standards.
Iβm especially interested in agentic loops, building experiences, flows, and tools for both developers and non-developers, AI, and event-driven systems.
Day-to-day I work with local parallel coding agents (Codex, Claude) β designing features and steering agents through implementation.
Outside of work, you can find me in the mountains, looking for rocks to climb, photo hunting, practicing calisthenics, or spending time with friends.
Writing
I love breaking down dense protocols and systems into approachable pieces. My deep-dive technical posts on Bitcoin and Lightning Network internals have been widely read and well received across the community.

Lightning Network Onion Routing: Sphinx Packet Construction

Lightning Network Onion Routing: Preliminaries

Normal operation and closure of a pre-taproot LN channel

Taproot Channel Transactions

Taproot and MuSig2 recap

Opening and announcing a pre-taproot LN channel

BIP158: Compact Block Filters Deep Dive

LN Things Part 5: HTLC Deep Dive

LN Things Part 4: HTLC Overview

LN Things Part 3: Revocation in more detail

LN Things Part 2: Updating State

LN Things Part 1: Creating a channel
Work
Lightning Infrastructure Engineer | Lightning Labs
2021 to Present
Top contributor to LND, the most widely-deployed Lightning Network implementation. My work centres on shipping protocol upgrades and large database migrations safely across a live peer-to-peer network of thousands of nodes. I also lead major features in the Lightning Terminal and Lightning Node Connect developer tooling.
Selected highlights:
- LND graph SQL migrationβ leading the multi-PR epic moving LNDβs graph database to SQL. One batch-fetching rework took
ForEachNodeCachedon a mainnet graph from 276s to 10s (~28Γ speedup). - Neutrino sync β batched filter fetching took a 3,200-filter regtest sync from 4m25s to 653ms (~400Γ speedup).
- BOLT11 blinded paths β drove BLIP-0039, the BOLT11 invoice blinded-path tagged field.
- Network gossip protocol upgradeβ authored the BOLT spec extension upgrading the Lightning network graph gossip protocol.
Software Engineer | Luno
2020 to 2021
Backend engineer on the crypto-operations team. Worked in Go on event-driven microservices handling high cryptocurrency volumes for millions of users.
Public Appearances

The Chaincode Podcast (2023)
Simple Taproot Channels on the Lightning Network.

Advancing Bitcoin Conference, London (2022)
Static invoices on the Lightning Network.

Connect The World Podcast (2022)
All things Lightning.

Bitcoin Optech Podcast (Oct 2024)
Proposed updates to the Lightning gossip protocol (start at 1m35s).

Bitcoin Optech Podcast (Jul 2024)
Adding a BOLT11 invoice field for blinded paths (start at 22m17s).

Bitcoin++ Brazil (2025)
Technical hackathon judge (one of four).