Skip links

#44 Een droombaan: het verhaal van een bitcoin ontwikkelaar

Dagelijks zijn er ontwikkelaars bezig om de bitcoin broncode te verbeteren. Wie zijn deze architecten achter bitcoin? In deze Bitcoin Focus nemen we een kijkje in de wereld van een ‘shadowy super-coder’, zoals Elizabeth Warren ze vorig jaar noemde. We nemen je mee op reis en bekijken de wereld door de ogen van een Bitcoin Core-developer.

Deze week: Josie, afkomstig uit de Verenigde Staten en woonachtig in Amsterdam. De bitcoin developer heeft zijn droombaan gevonden, maar …

  • Hoe is hij bitcoin ontwikkelaar geworden?
  • Hoe ziet zijn dag eruit?
  • Hoe zit de wereld van open source-code in elkaar?
  • Welke tips heeft hij voor beginnende developers?

Je leest het in deze Bitcoin Focus! Josie vertelt over zijn ervaringen, van een seminar bij Chaincode Labs tot Coinbase als sponsor van zijn werkzaamheden. Deze twee mijlpalen zorgen ervoor dat hij sinds 2021 fulltime met bitcoin bezig kan zijn.

[lnd-amount]

Sinds Josie in Nederland woont, werkt hij fulltime aan de ontwikkeling van bitcoin. Zijn achtergrond ligt in wiskunde en natuurkunde, maar in de loop van de tijd beweegt hij meer richting data-science, data-engineering en software-engineering. Tijdens zijn bijbaan gaat er zoveel tijd naar bitcoin, dat Josie de stap zet om fulltime met digitaal, programmeerbaar internetgeld bezig te zijn. 

Wat is Bitcoin Core?

Bitcoin Core is een full client waarin alle spelregels van bitcoin staan. De allereerste versie van deze software is op 9 januari 2009 door Satoshi Nakamoto gelanceerd onder de naam bitcoind, wat in versie 0.5 de naam Bitcoin-qt kreeg. Vandaag de dag (en sinds versie 0.9) heet deze implementatie Bitcoin Core, waarvan onlangs versie 23.0 is uitgebracht. Deze implementatie van een full node is de backbone van het netwerk. Je kunt Bitcoin Core zelf downloaden
(omdat het open source-code is) en zo een node in het netwerk worden. Het is de meest letterlijke benadering van ‘be your own bank’.

Eerste aanraking met bitcoin

We starten het gesprek over Josie’s eerste ervaring met bitcoin in 2015, toen een vriend zijn satoshi’s (de betaaleenheid van bitcoin) verloor. 

“Ik lachte hem uit, je kunt digitale dingen niet verliezen. Je hebt back-ups, kopieën, iCloud enzovoorts. Twee jaar later hoorde ik er weer over en toen kreeg ik een volledige uitleg van een collega. Gaandeweg in 2019 kwam ik in aanraking met de filosofie.

Ook raakte ik gefascineerd door de technologiekant ervan en hoe het zo succesvol kon zijn, ook omdat veel open source-projecten falen. En dat is langzaamaan een obsessie geworden. Ik was er 70% van m’n tijd op werk mee bezig, en toen besloot ik dat ik fulltime aan de code wilde ontwikkelen.” 

Zijn liefde voor open source-code weerhield hem ervan om direct te solliciteren bij een bitcoinbedrijf en daarom besloot Josie om het gewoon een heel jaar te proberen zonder financiering. Gaandeweg zag hij dat er veel sponsorships beschikbaar waren, zoals van de Human Rights Foundation, het Gemini Opportunity Fund en Brink.

Een week nadat ik de beslissing maakte, zag ik de Chaincode Labs-seminars voorbij komen. Hij roept enthousiast uit: “This is exactly what I wanted to do!” 

De start

“Ik wilde altijd al voor mijn werk aan open source-projecten werken, zelfs voor ik over bitcoin hoorde. Het is een open source project waar ik een passie voor heb gekregen én ik kan ervan leven. Het is een hele andere mindset en skillset dan werken voor een start-up”.

“Ik heb programmeertalen zoals Python en SQL zelf aangeleerd, maar het was altijd meer experimenteren dan echt coderen. Daarna leerde ik over Go en bij de start-up waar ik werkte gebruikte ik dat ook. Daarbuiten heb ik Java en andere talen geleerd en ben nu zo’n negen jaar developer.”

Maar hoe kom je dan de bitcoinwereld binnen en waarom werk je onder je eigen naam? Josie vervolgt:

“Ik wist niet hoe het moest. In mijn achterhoofd dacht ik dat het hebben van een echte identiteit het makkelijker maakt. Nu ik ‘erin zit’, had ik misschien beter als een volledige pseudoniem kunnen starten. Maar er missen dan nog wel wat puzzelstukjes omtrent financiering.”

Doorpratend over de pseudonimiteit en geloofwaardigheid van ontwikkelaars komt de Amerikaan met een mooi statement:

“In een ideale wereld moet ieder willekeurig persoon een pull request (PR) kunnen doen. Als de PR goed is en het probleem oplost, moet dit geaccepteerd worden. Je moet elke bijdrage op zichzelf beoordelen, en niet de persoon erachter. Maar natuurlijk helpt reputatie ergens mee, en het is erg complex.”

Softwaretaal

Een pull request is een verbetering of verandering van de software-code die iedereen kan indienen. Op GitHub kan iedereen (ook jij!) zien wat er met het protocol gebeurt. Ontwikkelaars die deze wijzigingen willen aanbrengen, noemen we contributors. Bij bitcoin gebeurt dit rondom deze repository. Als de PR ook daadwerkelijk over wordt genomen, noem je dit ‘mergen’.

De opleiding en financiering

Chaincode is een initiatief die mensen bij elkaar brengt om samen door te praten over bitcoin volgens een curriculum. “Je bent dan ook aan het netwerken, praat met bedrijven en hebt wrap-up sessies met andere ontwikkelaars. Het hielp mij enorm.”

Chaincode leert je niet hoe je programmeur wordt, maar het legt uit wat de filosofie achter (de ontwikkeling van) bitcoin is. Alle leerstof is gratis beschikbaar en Josie loopt hetzelfde format nu met vrienden door.

“Het lastige is om erachter te komen waarmee je kunt helpen. Een van de eerste dingen die ik deed was om een soort testgids te schrijven voor de 22-release voor Bitcoin Core. Ik deed reviews en testte alles.”

Dit was allemaal nog vrijwilligerswerk, ten tijde dat Josie de seminars van Chaincode Labs doorliep. Bij Coinbase vond hij uiteindelijk – wat betreft de financiering – zijn succes.

 “Ik krijg nu elke maand een dollarbedrag betaald door Coinbase, in bitcoin! Eerst moest ik mijn bankgegevens delen, maar toen ik erover ging nadenken vond ik dat ik in mijn salaris in bitcoin wil krijgen. En dat gebeurt nu.”

“Dat was een enorm gaaf moment. Ik werk aan bitcoin, ik krijg betaal in bitcoin en alles komt bij elkaar.”

De werkzaamheden

Maar vervolgens komt de vraag: waar werk je aan? Coinbase heeft immers niets te zeggen over het werk van onafhankelijke ontwikkelaars en er is ook geen bitcoin CEO die taken uitdeelt. 

“Ik heb geen specifieke taken, maar moest wel het een en ander in een voorstel uitwerken. Kort gezegd: 33% research, 33% testing, 33% review. Het eerste deel gaat over van een project met een post-doc van Chaincode en een paar onderzoekers.”

“De tweede 33% focus ik op het doen en het schrijven van tests (unit testing framework, functional & fuzz testing), waar dat ook nodig is, van performance tot clarity. Ik schrijf niet in de codebase, maar zorg dat andere ontwikkelaars productief kunnen blijven. Zij kunnen figuurlijk met de bowlingballen blijven gooien en de bumpers in de baan staan er al. Waardoor de ontwikkeling gewoon door blijft draaien”.

“De laatste 33% van de tijd gebruik ik om pull requests van andere mensen te beoordelen. Ik schrijf geen nieuwe code, doe geen commits of maak nieuwe PR’s. Ik beoordeel het werk dat er al is gedaan.”

De tips aan beginnende ontwikkelaars

Het is onmogelijk om álles dat er in bitcoin gebeurt bij te houden. Een tip die Josie de beginnende ontwikkelaars wil meegeven, is om je te specialiseren binnen de niche die bitcoin al is. “Scratch your own itch” 

“Gebruik Bitcoin Core software en verbeter waar je niet tevreden mee bent. Gebruik je de GUI en vind je een bug? Probeer het op te lossen. Accepteer ook dat je niet alles kunt bijhouden, want dan zul je ook minder kunnen focussen op de dingen die je wél daadwerkelijk kunt verbeteren. Verder zijn de Bitcoin Optech en de dev-mailing lijst erg handig om op de hoogte te blijven.”

Inmiddels is Josie aan het werk en bezig om Bitcoin Core te verbeteren. Wat nu? Er is namelijk nog steeds geen CEO die beslist welke code er in de volgende versie van bitcoin wordt gebruikt.

“Er is niemand die exact zegt wat je moet doen.” Een andere tip van Josie is: “Als je niet gemotiveerd ben, doe het niet en wacht. Ik probeer er eerst achter te komen waarom ik geen motivatie heb. Als je gemotiveerd bent, doe je beter werk.”

“Voor bitcoin is het niet belangrijk dat het snel gebeurt, maar dat het goed gebeurt. The quickest is not the best. Als je bij een bedrijf werkt, kan dit niet. Met open source ontwikkeling wel.”

Kansen, uitdagingen en risico’s

Toch is niet alles automatisch hosanna, want er zijn risico’s en uitdagingen voor bitcoin. Een van de mogelijke problemen zijn overheidsinterventies richting onafhankelijke ontwikkelaars.

“Ik denk dat dit een grote factor is en kan zijn. Er zijn gevallen van de bekende bitcoinontwikkelaar Jeremy Rubin die door de New Jersey Attorney is aangeklaagd voor een project waaraan hij werkte op een hackathon. Hoe groter bitcoin wordt als technologie, betaal – en bewaarmiddel, hoe meer gevaren en risico’s. Naarmate bitcoin waardevoller wordt, moet je misschien ook maatregelen gaan nemen. Daarom zijn de gesprekken over anonimiteit onder de developers zo belangrijk.”

“Er zijn een aantal bitcoin ontwikkelaars gestopt doordat ze vreesden dat ze bekend werden. Dat is het bewijs dat het een écht probleem is. Als we talent verliezen door deze reden, moeten we het ook serieus nemen. Helemaal als bitcoin steeds meer een politieke speelbal wordt.”

“Jack Dorsey heeft samen met een aantal anderen gelukkig het Bitcoin Legal Defence Fund gestart. Het laat zien dat er een gevaar is waartegen wordt gewerkt.”

Traag

Het is niet altijd makkelijk om een developer te zijn in een open source-omgeving. Je kunt moeilijk inzichten krijgen in wat er met ‘jouw’ code gaat gebeuren:

“Als bitcoin nog 100 jaar moet bestaan, is het niet erg als het allemaal iets langer duurt”, refererend naar de adoptie van bijvoorbeeld Taproot-adressen in wallets.” Taproot uit 2021 is de laatste grote update aan het protocol geweest.

 “Het kan frustrerend zijn als iets goedgekeurd is en je er veel tijd in hebt gestopt, maar het daarna niet echt opgepakt wordt. Maar als het een goed idee is, zullen de mensen er uiteindelijk vanzelf terechtkomen.”

“Taproot bijvoorbeeld is de building block. Het meeste werk is nodig aan de kant van de wallets. Walletmakers moeten wachten totdat Taproot er is, om er vervolgens mee te kunnen werken.

Dat is een van de redenen achter de trage adoptie. Ik ben eerder bezorgd als alle wallets binnen één week waren geïntegreerd. Ik wil dat het langzamer gaat, ook omdat wallets en scripting in bitcoin ineens heel anders werken. Het komt terug op de juiste prikkels: als het voor mensen zin heeft, zal het gebeuren.”

Bitcoin is als een olifant

Wat is bitcoin eigenlijk? De developer heeft een mooi antwoord: “Als je tien blinde mannen in een kamer zet met een olifant, en ze vraagt te raden wat het is, zal iedereen iets anders zeggen.” 

“De een beschrijft de slurf, de andere de huid en weer een ander de staart. Dat is wat bitcoin voor mij is. Ik hou niet van de analogieën die bitcoin vergelijkt met dingen. Bitcoin is bitcoin. Misschien ziet het eruit als een bewaarmiddel of een betaalmiddel of juist een politiek statement. Het zijn allemaal kleine dingen die we proberen te beschrijven, maar als je uitzoomt zie je pas wat het echt is: bitcoin.”

Op de vraag of er in bitcoin iets is dat beter kan, parafraseert Josie het boek The Unbearable Lightness of Being van Milan Kundera. Hij zegt: “We kunnen niet zeggen of iets een goede of slechte beslissing was, omdat we niet terug kunnen gaan om het alternatief te proberen.”

“Dat is hoe ik ook naar bitcoin kijk. We kunnen niet zeggen of iets een goede of slechte beslissing was. Dat is onmogelijk. We moeten leren van wat er is gebeurd, en zo proberen het project in de juiste richting te sturen.”

Droombaan

Samengevat volgt een mooie conclusie: “Ik heb absoluut mijn droombaan gevonden. Om als onafhankelijke contributor aan een open source-project te werken is een droom. Dat is mijn doel, en het feit dat ook nog eens met bitcoin kan doen waar ik een enorme passie voor heb, is echt geweldig.”

Is Josie nu de baas over de bitcoin-code, nu hij dingen kan aanpassen die hij wil? Nee, absoluut niet! “Dit is één van de misverstanden, waar je een aparte serie over zou kunnen maken.

Volgende week in Bitcoin Focus het vervolg: “Wie is de baas in bitcoin?” Hoe zit het met de pull requests die zijn ingediend en wie bepaalt welke code wel en niet in Bitcoin Core moet komen? Zijn ontwikkelaars dus eigenlijk niet de baas van bitcoin?