Last updated: 2 September 2022
Lately I’ve been working on Bitcoin. See also my articles and GitHub.

Overview

Bitcoin Core activity 2019-2022

  1. Began contributing to Bitcoin Core development in March 2019.
  2. Currently #10 of the Bitcoin Core contributors with 621 commits merged into Bitcoin Core and a primary focus on code review.
  3. Invited to join the Bitcoin and Bitcoin Core teams in November 2019 after 7 months of contributing.
  4. Recipient in March 2020 of the first Spiral Bitcoin Core developer grant, renewed in 2021 and 2022.
  5. Invited to CoreDev in March 2020 and October 2021.
  6. Joined the Bitcoin Optech team in May 2020 after starting to contribute in June 2019.
  7. Recipient in July 2021 of the first Strike Bitcoin developer grant from the proceeds of the Indy 500 Bitcoin racing car run by Ed Carpenter Racing.
  8. Recipient in August 2021 of the first Compass Mining Bitcoin developer grant organised via the Human Rights Foundation.

Current and future work

  1. Working to improve Bitcoin Core's robustness: finding and fixing bugs and regressions and improving the correctness of the code and test coverage.
  2. Working to strengthen Bitcoin Core's decentralization, censorship resistance and privacy.
  3. Ongoing code review, notably of the more difficult and important PRs. This is probably the most-needed work and bottleneck in Bitcoin Core development.
  4. Friendly and encouraging review of pull requests by new contributors.
  5. Verifying guix/gitian signatures for each release.
  6. Researching or implementing improvements to the Bitcoin protocol.

Background

I began programming at age 9 in BASIC and year later in 6502 assembly language. From age 14 to 18, I authored several professional computer games in assembly for Atari and Commodore computers that were published internationally by Synapse Software, Broderbund, and Ubisoft. They still run fine to this day using any 6502 emulator.

I studied Computer Science at Harvey Mudd College in Claremont, California (USA), Business Administration and French at Oregon State University, followed by an MBA at INSEAD in Fontainebleau, France. In addition to software engineering, I have 2 years of marketing brand management experience in mass consumer products at L'Oréal from their world headquarters in Paris. I speak English, French, German, and some Russian.

Over the past decade I have been a freelance software engineer for large companies and an open source contributor (Ruby on Rails Top 100) and library author/maintainer, notably of Ransack, the leading Ruby search engine.

In March 2019, I started learning to contribute to Bitcoin Core, beginning with studying the repository and the social process and technical details of contributing to the project. I've been compiling and curating this knowledge here and at https://github.com/jonatack/bitcoin-development, which was recommended to other developers in this Bitcoin Magazine September 2019 article.

It became clear that what is most needed and useful, and paradoxically the least done by new contributors, is review and testing of PRs and issues. More than 350 pull requests and 500 issues are open at any given moment in Bitcoin Core waiting for experienced review and testing, and the amount continues to increase. The maintainers need help!


Future work in detail

I prioritise my time to Bitcoin roughly as follows:

Decentralization > Robustness > Privacy > Features > Scaling > UI

Decentralization, censorship resistance, robustness, and privacy are therefore my highest priorities.

Goals

  1. Dedicating time to review of the important, critical PRs that often sit for months without enough review to be merged and have to go through multiple painful rebases, which blocks vital progress and demotivates experienced long-term contributors from working on Bitcoin Core.

    The number one bottleneck in Bitcoin Core is experienced review of difficult PRs. As Steve Lee of Spiral once wrote to me: "If literally all a developer did was review hard but important PRs it'd be incredibly valuable."

    The idea is to unblock these critical PRs not only by reviewing them, but also coordinating with the maintainers and other contributors to ensure timely review where it is most needed and difficult.

  2. Increasing Bitcoin Core's robustness: finding and fixing regressions and bugs, improving the code, and adding missing test coverage or improving it.
  3. Strengthening Bitcoin Core's decentralization, censorship resistance and privacy by working on the peer-to-peer network privacy and resistance to surveillance and attacks: researching and proposing improvements, and collaborating with and testing work by fellow developers and researchers.

Feel free to reach out for more details or to chat.

Best
Jon