About
Backend engineer with 5+ years building production-scale distributed systems. Most of that has been on Bitcoin’s Lightning Network at Lightning Labs — shipping protocol upgrades and large database migrations across a live peer-to-peer network of thousands of independently run nodes, where a change has to stay compatible with software you don’t control and can’t roll back.
Before Lightning, I built event-driven microservices at Luno, handling high cryptocurrency volumes for millions of users.
I’m especially interested in agentic loops, AI tooling, and event-driven systems.
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 2026
Top contributor to LND, the most widely-deployed Lightning Network implementation. My work centred on shipping protocol upgrades and large database migrations safely across a live peer-to-peer network of thousands of nodes. I also led major features in the Lightning Terminal and Lightning Node Connect developer tooling, and was a core contributor to Wavelength, a self-custodial bitcoin payments toolkit for applications and agents.
Selected highlights:
- Wavelength — core contributor to the Go daemon that unifies an Ark client, a Lightning swap engine and an on-chain wallet behind one self-custodial API, with crash-safe durable state across all three.
- LND graph SQL migration— led 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).