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

See all articles →


Work

Lightning LabsLightning 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 ForEachNodeCached on 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.

LunoSoftware 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