Over deze aflevering
We gaan het met Redmar & Benoist hebben over Altrady en de technologie daarachter
Delen
Wat je leert#
- •Hoe je crypto trading praktisch aanpakt als beginner
- •Wat websockets inhoudt voor real-time dataverwerking
- •Hoe je codebase geïsoleerd houdt per exchange/feature
- •Waarom integratie testen belangrijker zijn dan unit testen
- •Hoe je kleine en frequente deployments risico's minimaliseren
Transcript
Oké, dus in Ruby heb je niet hele fijne ideës om mee te werken?
Jawel.
Goeie ideeën.
De beste is RubyMine in mijn optiek en iedereen die het eigenlijk niet meer eens is, die moet
lekker Vim gaan gebruiken.
Helemaal goed.
Starting a war.
Welkom allemaal weer bij een nieuwe aflevering van CodeKlets.
Dit keer zitten we alweer in aflevering 4 van seizoen 2, wat gaat de tijd toch snel.
Vandaag zijn we met 2 hosts, Johnny en ik, Saber die hebben we lekker een dagje vrijgegeven
vanavond.
Maar goed, wel leuk weer om met Johnny een podcast op te mogen nemen.
Hoe gaat het Johnny?
Yes, goeienavond.
Ja, gaat prima.
Mogen niet klagen.
Lekker weer een gezellig avondje podcasten.
Ja, heel gezellig.
Het is wel een beetje beroerd weer.
Ik heb buiten gekeken, alle hagelstenen die komen op mijn raam, dus ik hoop niet dat de
podcast daar last van heeft.
Maar ja, ik hoop dat we het allemaal gaan overleven.
Maar goed, ook vanavond hebben we weer 2 hele leuke gasten uitgenodigd.
Onze eerste gast van vanavond is Redmar Kerkhoff.
Hallo.
Welkom.
Ja, dankje.
Ja, Redmar is een echte entrepreneur volgens mij.
Hij is een eigenaar van Creative Code en verder hakt hij graag in rust Elixir en Ruby, toch?
Ja, klopt allemaal.
Ja, mooi.
Nou, daar zullen we straks wat meer over vragen.
Onze tweede gast van vanavond is Benoit Klaassen.
Welkom.
Goedenavond.
Dat is ook echt een entrepreneur volgens mij.
Ja, klopt.
Benoit is eigenaar van Altrade, Neighbor Secure en volgens mij heb je nog wel een paar bedrijven
die ik niet heb opgenoemd.
Ja, klopt.
Ja, ik heb nog Appmonet samen met Redmar, Coinray en ik heb dan nog een eigen holding
bv waar ik eigenlijk uit werkte als freelancer, waar ik eigenlijk nu mee ga stoppen of afgestopt
ben eigenlijk.
Oké.
Nou, daar kunnen we straks nog wel even over hebben.
Maar ik had ook begrepen dat je een echte crypto trader bent, toch?
Ja, klopt.
Ja.
Ja, ik ben daar in 2017 net voor de grootste bitcoin hype ooit ben ik daarmee begonnen.
Oké.
En voor degenen die nog nooit wat met crypto gedaan hebben en zoals ik dus,
echte noobs tussen ons, zou je crypto trading kunnen uitleggen?
Ja.
Ja, crypto trading dat ja, het begint eigenlijk bij je dat je dat je de munt moet hebben,
dus je moet een stukje van de munten moet je kunnen kopen en daarvoor moet je dus bij
een exchange of een broker zitten.
Dus als je daar dan een account hebt aangemaakt en je bent door het verificatie proces heen
gegaan, dan kun je op dat moment kun je dus gewoon met ideal bijvoorbeeld kun je wat
geld storten en zodra je dan wat euro's gestort hebt, dan kun je bij de broker
bij de exchange kun je gaan zoeken naar een markt of naar een munt die je wil hebben en
die je dan met euro's kunt kopen en als je dan een order plaatst dan kun je kijken
of iemand akkoord gaat met de prijs die jij ervoor wil betalen en als je bijvoorbeeld
100 euro wil kopen dan zeg je ik wil 100 euro en ik wil er maximaal 10 cent voor
uitgeven of maximaal 10 cent voor betalen.
Nou dan kun je dus 1000 muntjes kopen en als iemand daarmee akkoord gaat dan krijg
jij die munt in je bezit en dan ben je crypto-eigenaar.
Oh wauw, nou mooi man en kan je daar een beetje rijk mee worden?
Er zijn er vele die dat wel hebben gedaan ja dat kun je wel goed rijk mee worden.
En andersom niet rijk?
Ja je kunt er ook heel veel geld mee verliezen ja volgens mij was het laatst nog in het
nieuws dat iemand die had weer tranen, dikke tranen omdat hij al zijn studiegeld en dergelijke
erin had gegooid en helaas ging alles weer naar beneden en volgens mij als hij het nu
vasthouden had dan had hij nog vijf keer zijn inleg teruggekregen dus ik denk dat
hij nu huilt van beleidschap.
Nou mooi en ik las ook ergens dat je je eigen platform ook in cryptotrading
hebt ontwikkeld of dat klopt ja en hoe ben je begonnen?
Ja ik ben toen ooit begonnen met een scanner en die scanner ja het was eigenlijk om even
dan terug te gaan naar het hele verhaal van mijn crypto avontuur.
Ik was dus in 2017 ermee begonnen toen had ik wat gekocht en eigenlijk niet in
de intentie om daarmee te handelen dus ik heb ik heb dat gewoon laten staan en op
dat moment was het in waarde verdubbeld en toen zag ik het zeg maar elke dag
heen en weer schom en toen dacht ik nou misschien moet toch maar eens wat gaan
verkopen om het weer terug te kopen en om te kijken of ik er misschien iets meer
van kan maken. Nou daardoor was ik eigenlijk per dag na vier of vijf uur kwijt aan het
zoeken naar markten om om in te kunnen handelen maar ik had eigenlijk geen idee
wat ik aan het doen was dus toen ik op vakantie was en in de zondag stierlijk
verveelde en toen heb ik wat YouTube video's opgezocht en toen kwam ik uit bij
de YouTuber Quick Fingers Look en die had eigenlijk een hele duidelijke strategie
over hoe je nou het beste kunt handelen in de crypto en ja zijn strategie past
heel erg bij de manier waarop ik zou willen treden meest bekende strategie is
En daar haaf hij eigenlijk zeg maar een leidraad in. Zo van nou als die dan
zeg maar hier naar beneden gaat, dan moet je daar op deze weg weer gaan verkopen.
En toen op zijn YouTube kanaal, toen vroeg hij dus ook van ja, als er nog developers zijn,
dan zou het wel fijn zijn als een keertje iets van scanners kunnen krijgen voor onze strategie.
En nou ja, aangezien ik er heel veel tijd aan kwijt was en zeg maar eigenlijk ook op zoek was naar
zo'n scanner, ben ik die keertje op een avondje gaan kijken van hoe ver kan ik komen. En al vrij
snel had ik iets wat kon werken. En ik herinner het me nog goed dat ik op een avond had ik weer
een avondje doorgewerkt en ik ging naar bed toe en ik zei tegen mijn vriendin, ik zei,
volgens mij heb ik nu iets wat best wel groot kan worden. Dat was ook echt een van de eerste
keer dat ze ook echt zoiets had van oké dit klinkt echt alsof dit dat kan worden. Het gevoel was
zo goed. En ik heb dat dus verder uitgebreid. Ik heb dat in de markt gezet en ik heb toen
dat met Quick Fingers Look besproken en ik had ook daarbij aangegeven dat het eigenlijk
altijd een betaalde dienst zou zijn. Ook omdat ik zeg maar zelf ondernemer ben,
en ik ook niet zo geloof in het gratis gebruiken van ander man software om er zelf rijk mee te
worden. En ik wilde natuurlijk ook gewoon een goede dienst kunnen leveren dus moest het niet
zo zijn. Zeker in die periode toen de bitcoin echt maar alle kant opging lagen al die andere
platformen lagen er ook continu uit en ik wilde ook gewoon wel goede service neer kunnen
zetten om ervoor te zorgen dat het in ieder geval blijft draaien op de momenten dat het
moet draaien. En als je terugkijkt van hoe je bent begonnen zou je dat nog een keer
willen doen? Ja, zeker, ja. Geen spijt gekregen daarvan? Nee, het was dat het op dat moment pas
kwam maar ja dat dit soort dingen dat is waar ik voor leef zeg maar oplossingen vinden
voor problemen en het leven makkelijker maken met name voor mezelf en als anderen daar ook
profijt van kunnen hebben dan is dat mooi meegenomen. In ieder geval aan, het is begonnen met een
simpel programmaatje om basis te scannen zoals je dat dan noemde. Wat is het inmiddels geworden
want ja je hebt dat was in 2017 dus er zit inmiddels een jaar of 3, 3,5 denk ik aan
programmeerwerk dan in. Wat is het platform nu? Wat behelst het? Ja nou ja dus zeg maar
toen de mensen het gingen gebruiken was eigenlijk al de respons was eigenlijk behoorlijk positief en
ja het gaf alleen maar aan dat de vraag daar echt naar was en we zijn dus gewoon met die
mensen in gesprek gegaan en zo van oké nou wat wil je dan hebben wat kunnen we nog
verder toevoegen? Uiteindelijk of in eerste instantie kwamen ze alleen op dingetjes om de
scanner uit te breiden maar later werd dus ook de vraag van ja ik zou wel graag de
charts wat beter willen zien en ik zou graag wat meer informatie over de markt zelf willen
zien en dat groeide dus eigenlijk uit tot een tot een volwaardige handels platform waar je gewoon
makkelijk vanuit kunt traden en de grootste kracht zitten in het feit dat je op alle exchanges
tegelijk kunt traden die wij aanbieden dus je hebt zeg maar één tool nodig je hoeft het maar
één keer te leren en je hebt dus geen last van de verschillen tussen verschillende exchanges
En je kan dus zeg maar eigenlijk met vanuit één platform kan je op inmiddels 8000 verschillende
markten handelen.
Oké, dus jullie zijn eigenlijk, want jullie zijn zelf dus geen exchange, jullie handelen
zelf geen geld.
Jullie zijn eigenlijk een schil om een exchange heen, of om meerdere exchanges heen dus.
Ja, het is echt een hulpmiddel, je kunt bij ons geen crypto kopen of verkopen, je
kunt alleen via ons op de exchange handelen, dus wij maken verbinding met die exchanges
en dan kun je op een eenvoudige manier dan handelen.
Ja, wat ik van trading weet is dat het echt enorm snel gaat he, dat is echt niet normaal
gewoon.
Maar hoe programmeer je zeg maar software hiervoor?
Eigenlijk op de manier zoals ik altijd software ontwikkel en dat is gewoon zorgen dat
je zo snel mogelijk iets hebt draaien en de rest komt later wel eigenlijk.
Dus zeg maar in het begin had ik die snelheid helemaal niet nodig voor de
b-scanner bijvoorbeeld, dat ging op tijd op een tijd frame van een uur, dat werd elke
15 minuten werd dat een keer geupdate en de prijzen die werden misschien elke
minuut of elke drie minuten werden die een keertje verversd.
Maar naar mate de vraag groter werd om een volwaardiger handelsplatform.
Ja, toen moesten we dus sneller gaan en daar heb ik toen ook met Redmar over
gesproken en gezegd van hoe kunnen we dit in een sneller hoe kunnen we de
data sneller overbrengen en toen is Redmar eigenlijk begonnen met het maken
van een van een websocket service om de data eigenlijk in in in realtime of
near realtime aan te bieden aan de gebruikers.
Oké, dus om het even een beetje kort samen te vatten.
Jij hebt Make It Work zegmaar gedaan, gewoon verzorgen dat het gaat werken.
Technical Dabbed. En Redmar heeft even gekeken naar hoe kan ik het performance
maken? Ja, en zeg maar dat was dan echt voor de data aanlevering.
Daar is dat echt heel erg van belang van belang en verder heb ik natuurlijk
gewoon zelf ook de technical dab weggewerkt waar dat nodig was.
Ik ben ik ben wel van mening dat je dat je zeg maar dingen best wel een beetje
in elkaar mag hacken, zolang je het geïsoleerd kan laten staan.
En als het dan niet meer goed is, dan gooien het weg begin je opnieuw,
maar dan begin je met een klein stukje opnieuw, niet je hele software
platform. En zo werk je rustig aan aan de verbeteringen en aan de
versnellingen en krijg je eigenlijk een heel mooi performant platform
op een gegeven moment.
Mooi dat je rustig noemt.
Maar ben ik even benieuwd naar Redmar zijn mening.
Heb je daar ook rust voor gebruikt?
Ja, er komt nu de sluit eigenlijk steeds meer rust in op dit moment.
Eigenlijk het platform wat we nou beschrijven bestaat eigenlijk heel erg uit
twee delen. Heel erg de smoel wat de verbruiker ziet, de UI en ja,
eigenlijk de langzaam bewegen onderdelen.
Eigenlijk als je normaal naar een chart kijkt, dan is dat langzame info om
zo maar te zeggen om terug te refereren aan dat je net zei dat het allemaal heel
snel gaat. Dat is eigenlijk de trage info.
Die kun je gewoon eigenlijk langzaam ophalen van exchange.
Die kun je dus ook voor genereren om zo maar te zeggen en gewoon laten
zien. Maar op het moment dat je echt echt op de markt wil zitten.
Ja, daar kwamen ze allemaal die websocket verbindingen bij.
Ze bieden eigenlijk websocket verbindingen aan of via rest.
Maar op rest zit eigenlijk wel heel snel een limiet, dus je mag eigenlijk ook niet
heel vaak ze gaan pullen, want dan ligt er eigenlijk al heel snel via
redelimit ligt eruit. Dus kwamen eigenlijk op die manier al heel
snel op het plan om al die exchanges aan te sluiten via websocket.
En daar kwam ik eigenlijk vanuit de hoek, vanuit dat ik vrij veel al met
Elixer had gedaan, kwam Elixer eigenlijk naar voren van dat dat een goede
kandidaat zou zijn. En om even snel gelijk dan naar rust toe te springen,
wat je wat je vraag was. Het bleek eigenlijk ook tegelijkertijd weer dat
dat Elixer ook wel heel snel weer door zijn knieën kon gaan door al het
geweld wat vanuit exchanges binnenkwam. Dat op plekken waar we zagen dat het
gewoon niet meer, dat het de boel niet meer trok, toen rust gebruikt.
En ik moet zeggen, ik ken Elixer als een vrij performant,
ja, programmeert taaltje om het even kleineren te zeggen. Je zegt al,
het ging toch door zijn hoeveel, ja, zijn dat dan zulke enorme hoeveelheden data?
Waar moeten we aan denken bij dat soort dingen?
Ja, hetgeen waar het in ieder geval bij mij gelijk, of niet waar ik dan niet goed op
match, zeg maar, want het is inderdaad een redde performant, is dat heel veel
numerieke dingen bijhouden in arrays. En dat is precies het deel waar
Elixer neigt heel snel juist naar linked list-achtige structuren.
En er was ook niet echt een hele goede soort decimal-achtige library.
Die was er wel, maar die was dus niet, die is heel erg in soort van
een, ja, het standaard user space gemaakt, die voor de rest niet
versnelt ofzo. En daar heb ik het eigenlijk ingevuld met rust.
Maar als je het aan aantallen, af en toe dan zien we gewoon, ja, iets van 15 of
1000, als je alles bij elkaar optelt, iets van 15 of 1000 updates per seconde vanuit
de exchanges binnenkomen. En dat is piek. Enkele exchanges zijn vaak 5, 6
duizend events per seconde. En events, dat zijn vaak geaggregeerde, dus dat je
meerdere events van alle markten, dat is eigenlijk hetgeen wat we dan in
het geval doen. Dus dat we voor alle gebruikers
subscriben op alle markten die er zijn van een exchange. Dat is eigenlijk ook een
beetje de reden, je zoekt het zelf eigenlijk ook wel op, doordat je allemaal alle
info wil hebben van alles wat ze hebben, zeg maar. En dan schiet het eigenlijk
af en toe dus naar zo'n soort pieken. En zeker als die opeens instort of
juist heel erg omhoog gaat, dan zien we goed pieken richting die 25, 30
duizend events per seconde. In ieder geval, dat is dan niet ongewoon.
En ja, het zou wel niet zin in kunnen liggen bij ons aan servers,
want we daten ook niet op de allergrootste en duurste servers. Maar goed,
dat is ook weer een afweging, een balans die je maakt met, ja dat is de deur dat
we eigenlijk op alles subscriben, op alle markten, voor een, voor bij elke
exchange. Er komen ontzettend veel events per seconde binnen, wat richting
de 25, 30 duizend per seconde gaat, over alles genomen. En alleen al dat
feit, dat kan ook gewoon voorgezorgd hebben dat gewoon Elixir in het
terug naar een soort van balans en wat we in de toekomst willen, want we willen eigenlijk
meer exchanges aansluiten. En dan ga je ook gewoon kijken hoeveel kost het dan
om bijvoorbeeld een, want je kan een grotere server inzetten, of je kan het
meer performant maken. En daar hebben we eigenlijk gewoon gekozen, en ook wat we
hebben gezien in de rust, dat je vrij, met vrij weinig effort en vrij naïve
code, waar je dus niet al te erg je best op hebt gedaan, is het al heel
erg performant. Dus hebben we eigenlijk voor gekozen om daar meer naar rust toe te
brengen, om straks gewoon voor minder geld eigenlijk qua serverkosten nog meer
exchanges te kunnen aansluiten en ook die peak performance beter aan te kunnen.
Hoe ga je, hoe ga je zoiets te werken? Je kwam bij rust uit na een kleine
zoekactie, of wist je al het een en ander over rust en weet maar gewoon gaan
proberen op te kijken van hoe het schaalt en hoe het tegen elkaar uit te
spelen is? Ja, ik had al wat, ja, wat gespeeld, zeg maar, met rust.
En ik was ook nog een andere library tegengekomen die het heel goed laat
mengen, dus elixer en rust. Dus die een soort soort, ja, wat je ook voor Ruby
hebt, dat je heel makkelijk met rust kan integreren. In dit geval is het rustler.
Ja, dat is een soort van, je doet even een skeleton generatie en dan kan
je eigenlijk heel snel gewoon een algoritme, gewoon in rust schrijven en
daarna beschikbaar maken weer in elixer.
En ja, het was eigenlijk gewoon dat je eigenlijk gewoon vanuit een beetje hobbyen
ermee al door had dat het zo snel was, dat het wel de moeite waard was om
gewoon, ja, delen om te coden daarin. En we zagen het inderdaad gewoon
in peak performance sowieso goed door de knieën gaan.
En dat is weer iets wat bij elixer gebeurd is, dat kan ook een deel aan
mij hebben gelegen. In de zin van dat je kan het ook nog beter
scharden, maar wat elixer heel erg doet is dat een enkele actor, want het is
natuurlijk de actor programmeur model. En als je een ene actor heel erg druk
maakt, dus dat hij heel veel CPU pakt, dan wordt hij juist eigenlijk door het
hele systeem, wordt je een beetje naar de achtergrond gedrukt met het idee van
we moeten wel zorgen dat alles blijft werken. En dat is juist eigenlijk wat
je soms niet wil, want je wil eigenlijk soms juist met een hele hoge
fiek, wil je eigenlijk gewoon je blijven processen eigenlijk. En dat is wel
op te vangen in elixer, alleen dat is eigenlijk wel weer misschien om het feit
heen werken van wat je wil doen. En daar is, daar zie je sowieso bij veel
number crunching, zie je veel mensen op dat moment binnen elixer of Erlang,
ja, grijpen naar die externe libraries, dus die noemen ze dan NIF.
Ik weet niet of je het weet, een neder interface volgens mij. In ieder geval dat je
dan naar C kan toe gaan of dus in het beval naar Rust, binnen je je VM.
Hoeveel exchanges hebben jullie nu aangesloten inmiddels?
We zitten op tien, tien exchanges. Een paar in de running, zeg maar.
Hier altijd zo van twee of drie, we zijn er nu nog mee bezig.
Ja, oké. En ja, elke exchange heeft zijn eigen API.
Kan ik me zo voorstellen. Hoe ga je daarmee om?
Hoe ga je te werk? Waar loop je tegenaan?
Ja, nou ja, ik ben dus, want Coinray is eigenlijk ontstaan
vanuit een groot gedeelte uit Altrady.
Ik had al, zeg maar, de begincode gemaakt om de trade informatie,
order book informatie en de candlesticks.
Dus dat zijn echt trade onderdelen vanuit het handelsplatform om die
rest API's gewoon elke minuut op te halen.
En ja, eigenlijk zeg maar, op een gegeven moment,
dan je begint met één exchange.
Dan kijk je naar de documentatie van de API, van de exchange zelf.
En dan pak je daarna een tweede.
Dat doe je eigenlijk wel vrij snel achter elkaar,
want je wil niet, zeg maar, dat je al helemaal klaar bent met één exchange,
omdat dan bijvoorbeeld achter te komen dat het bij de andere exchange
compleet anders is.
En dat gebeurt.
Dus dat is wel handig om even van tevoren te bekijken.
Dus als je er dan één, twee, nou, dan heb je de derde erbij.
En dan heb je eigenlijk wel een groot gedeelte van de exchanges gezien
en alle exoten die daarin zitten.
En heel lang heb ik, zeg maar, alle code gewoon gedupliceerd.
Dus als ik, zeg maar, een exchange toevoegde,
dan pakte ik alle code op, kopieerde ik het en dan deed ik
de wijzigingen die nodig waren voor die exchange.
En dat heb ik later, heb ik dat weer gereffecteerd
naar dat het, zeg maar, een beter model was,
waarbij je dan eigenlijk alleen nog de uitzonderingen per exchange overhield.
En zo was het, zeg maar, toevoegen van een nieuwe exchange.
Nou, ik heb het laatst weer eentje toegevoegd op die manier nog.
En dan ben je vier uurtjes bezig, hooguit.
En dan heb je een nieuwe exchange toegevoegd.
Of voor de voor de rest kan staan.
En dan heb je dus weer technical debt, die je het maar op mag ruimen,
of zie ik dat verkeerd?
Niet echt, want dat zijn wel echt twee gescheiden, gescheiden dingen,
want de websockets, dat is wel echt een hele andere tak van sport.
En en ja, daar hebben we eigenlijk wel een beetje hetzelfde gedaan, hoor.
Dus het is gewoon ja, in mijn ogen is het gewoon helemaal niet verkeerd
om op die manier te beginnen.
Dus dus gewoon zeg maar zoveel mogelijk kopiëren en dan en dan en dan een
beter beeld krijgen van wat zijn er daadwerkelijk de verschillen om het dan
daarna gewoon een rondje te refactoren.
Daar ben je dan misschien een dag of twee bezig en dan dan heb je eigenlijk
de code zoals je het zou willen schrijven.
Maar als je dat vanaf het begin af aan doet, dan en dan heb ik altijd het
gevoel in ieder geval dat ik ergens tegenaan zit.
De hekel om het mooier te maken, om het mooi te maken.
Maar uiteindelijk moet het moet de code gewoon draaien en moeten gewoon geld
mee verdiend worden en hoe het er dan precies uitziet.
Ja, dat maakt niet zo heel veel uit, zolang het maar gewoon klein is, geïsoleerd
en makkelijk opnieuw te schrijven.
Nou, in die zin is het hier ook een voordeel als je het redelijk geïsoleerd
houdt per exchange, want de changes bewegen ook per exchange.
Dus op moment dat je iets moet aanpassen, zeg maar, zal het vrijwel nooit zo zijn
dat je over alle andere exchanges, dus de code van alle andere exchanges
moet gaan, omdat de changes die gebeuren ook juist heel plotseling,
soms onaangekondigd, gewoon in productie, binnen sommige exchanges.
Dus je moet soms juist heel snel kunnen handelen.
En als je moet handelen op basis dat je nog rekening moet
houden met alle exchanges die je ook nog hebt draaien,
dan zou dat juist juist onhandiger zijn, eigenlijk in dit geval.
Bijvoorbeeld in ieder geval de base class die alles voor alles en iedereen
doet met heel veel cases erin verwerkt.
Dat is juist eigenlijk in dit geval onhandiger.
Ja, ja, je zei het al een beetje.
Het kan dus ook een stuk gaan in productie.
Wat zijn dat een beetje de dingen waar je tegenaan loopt?
Of heb je nog vrij vaak?
Oké, er zijn er zijn bepaalde exchanges, ik zal geen namen noemen,
maar die die echt heel vaak gewoon dan gaat het wel een stuk.
Dus we krijgen in de Altrady kanaal,
we zien gewoon mensen om hulp roepen van er is iets kapot.
Dan gaan we kijken.
Dan zijn er geen.
Want het eerste wat je meestal doet is dan naar de status pagina
kijken van exchanges.
Soms is de status pagina gelijk aan een Twitter account.
En dan zie je dat er niks aan de hand is.
Maar dan moeten we eigenlijk in onze log in kijken.
En dan zie je gewoon dat er iets is veranderd en dat was de dag ervoor niet.
Of het uur ervoor was dat er gewoon nog niet.
En dan hebben we dat gewoon echt aangepast.
En dan moeten wij scramble om het maar weer weg te werken.
Of weg te werken.
Ja, en soms is dat ook dus gewoon per markt.
Dus het is niet zo dat wij geen alerting erop hebben staan.
Ik bedoel, als er echt iets mis is, dan dan krijgen we daar ons eigen alert van.
Maar heel vaak dan zegt en dan horen van gebruikers.
Oh, die markt, die doet daar en daar iets raars.
En dan ga je kijken en hebben ze bijvoorbeeld alleen voor die markt,
hebben ze de symbols omgedraaid.
Dus dan handel je niet in een bitcoin euro, maar in euro en bitcoin bijvoorbeeld.
Dat soort dingen.
Ik moet ineens denken aan alle alle schade claims die je misschien zou kunnen krijgen.
Daarmee heb je ook al zoiets meegemaakt?
Nou, die vraag wordt wel gesteld van wie is er nou verantwoordelijk?
Dus als er iets misgaat.
Maar eigenlijk staat er in de disclaimer van de Trady heel groot,
dat je je eigen risico moet kunnen dekken.
Wij zijn daar niet voor verantwoordelijk.
Wij bieden aan wat een exchange aan kan bieden.
Als een exchange daar last van heeft,
dan kunnen wij ook niet bij de exchange onze schade claimen.
En de bedragen die je bij ons betaalt,
die staan ook niet in verhouding tot eventuele schade claims.
Dus ja, zeg maar, als we dat wel zouden willen doen,
dan betaal je misschien een tienvoudige.
Ja, dat is op de reden waarom een exchange zijn ook gewoon binnen Nederland.
Dat de Nederlandse bank zich al snel ermee gaat bemoeien,
dat dat ook de reden is, zeg maar.
En dat doen we niet.
We zijn in die zin gewoon meer een doorgeefluik.
En zijn dus echt ook in de afhankelijkheid van hoe de exchanges performen.
Ja, en de exchanges zelf geven die garanties ook niet.
Dus ook al, zeg maar, als al je geld daar op stort en er gaat iets mis,
technisch gezien en alles wordt verkocht,
dan is het heel soms dat de exchange zegt,
nou, dit was echt onze fout en we zullen de schade dekken.
Maar negen van de tien keer is het gewoon van, oh ja, sorry jongens,
we gaan het oplossen, we gaan het verbeteren.
Maar je hulp ben je kwijt.
Dat gebeurt dan.
Is dat nou ook iets waarvan jij dan nog zou zeggen dat dat wel,
want relatief gezien is bitcoin toch nog wel een soort nieuw iets
en een beetje een niche markt.
Zou je ook zeggen dat dat soort dingen nou juist beter moeten worden
voordat in het geval bitcoin een betere adoptie zou krijgen?
Of is dit juist ook de charme van bitcoin, dat dat zo ongeregulert is?
Als je het mij vraagt, is het wel die charme ervan.
Ik weet niet of jullie in vorige podcasts al gehad hebben over de gamestop.
Nee, nog niet.
Oké, nou, dat was zeg maar op de stokmarkt,
was dat een van de ja, meest recente.
Ja, bull runs, zoals ze dat noemen.
En dat werd eigenlijk veroorzaakt door een groep traders.
En dat zorgde voor zoveel volatiliteit
dat dat mensen daar in één klap heel rijk mee konden worden,
maar ook heel erg snel geld mee konden verliezen.
En in dit geval waren het dus de mensen die juist zitten op al die regeltjes
en regelgevingen en al die dingen die die waren nu
zeg maar aan de verliezende kant en die grepen gelijk in.
En die zorgden er dus voor dat zij hun eigen geld gewoon snel
ja, hun schade konden beperken.
En juist daarom zou ik zeggen van laat bitcoin lekker zoals het nu is.
Laat het vrij en dan is het spel is gewoon eerlijker.
Dus het is zeg maar ja, mensen met weinig geld
kunnen toch nog heel veel geld maken en mensen die heel veel geld hebben,
hebben niet zeker de garantie dat ze daar
nog veel meer van kunnen maken.
Ja, ja, want ik kreeg inderdaad ook een mailtje.
Ik heb een account bij de Giro en inderdaad met de hele GameStop nieuws
kreeg ik wel ineens een mailtje van ja, sorry,
we hebben de we hebben de trading op GameStop stilgelegd.
En toen dacht ik oh, ik had dan niet ik ben niet ingestapt.
Maar stel ik was was ingestapt.
Dan kan ik het ineens niet meer verkopen ofzo.
Wat? Dat is wel een beetje een vreemde gang van zaken.
Natuurlijk dat een bedrijf dat zomaar kan beslissen voor jou over.
Ja, ja. Ja, en in de crypto kan dat eigenlijk niet nu.
Ik bedoel ja, een specifiek exchange kan de handel even stilleggen.
Met wat voor reden dan ook? Dat gebeurt ook wel eens.
Bijvoorbeeld als ze onderhoud moeten plegen, dan leggen ze gewoon de hele handel stil.
Maar op de andere exchanges gaat het vrolijk door en minder met die decentralized exchanges.
Ja, precies. Dat is dat is zeg maar nog een nog een stapje verder.
Dus dat zeg maar echt iedereen onderdeel is van een exchange
en dat je dus niet één centrale server hebt die dan regelt.
Maar sowieso bij de crypto is het zo.
Ja, spreiding is altijd beter.
Dus je kan makkelijk over verschillende exchanges
je portfolio beheren.
En als er dan dus één exchange is, dan heb je in ieder geval nog op de ander genoeg staan.
En als je dus zeg maar ergens je investering veilig wil stellen, dan kan dat.
Als jullie team zouden mogen omschrijven,
hoe groot is jullie team om dat platform zeg maar een beetje in stand te houden?
Inclusief developers of misschien hebben jullie wel mensen die de boel monitoren, et cetera.
We zijn heel klein begonnen.
In eerste instantie was het alleen ik en de designer.
Ik heb eigenlijk al vanaf dag één heb ik gewerkt met met mijn vertrouwelijke designer.
Die zit in in de Oekraïne.
En na je later kamer er steeds meer mensen bij.
Ik heb een aantal keer mensen via Upwork op internet ingehuurd en ook weer afscheid van genomen.
En inmiddels zijn we met z'n tienen
nog steeds meeste freelance.
Dus ik heb nog al 2d bv heeft nog geen medewerkers,
maar er gaat waarschijnlijk in de dichtst bezende toekomst gaat er verandering in komen.
En dan zullen de eerste werknemers op de loonlijst komen.
Oh, nice. En even gekeken naar de software die jullie in het platform zelf gebruiken.
Nou, rust werd net al genoemd.
Zijn er nog andere technieken die jullie gebruiken om die software zeg maar live te brengen
of misschien ook wel te testen, te monitoren en dat soort dingen?
Kunnen jullie daar iets meer over vertellen?
Ja, of het grootste gedeelte nog van van Altrady zelf is in Ruby.
Maar de dingen waar de snelheid in moet komen,
daar heb ik dan een mix van Crystal.
Crystal is een Ruby-like taal en is ook super snel.
Daarnaast ben ik toen een paar weken geleden ook begonnen met dingetjes van rust toe te voegen.
Dus daar draaien nu ook wat rust services.
Nou ja, zoals je al hoort, praat ik over services en is eigenlijk alles als een soort van micro architectuur.
Het draait op dit moment in een Rancher cluster en dat is dan nog de Rancher 1.6 variant.
En dat betekent dat zijn maar alle containers, alle Docker containers die worden dan beheerd door de Rancher zelf.
Maar in de toekomst zullen we wel gaan switchen naar Kubernetes.
Niet omdat we Rancher niet meer mooi vonden, want het liefste zouden we daarmee verder gaan.
Maar dat wordt helaas niet meer doorontwikkeld.
Dus we moeten naar de nieuwe variant van Rancher, Rancher 2.5 of 2.6 inmiddels al.
Maar die gebruiken in ieder geval Kubernetes als onderliggend architectuur.
Dus daar gaan wij dan ook op over.
Nou ja, voor Conrad, kan Redmar misschien iets over vertellen?
Ja, Conrad's stack is dat begonnen in Elixir.
We hebben een REST API die op Ruby en Rails zat omgezet naar Elixir.
En onderdelen in Elixir, bepaalde daadsecturen, die zijn al rust.
En de upstreams die richting de exchanges praten, dit is ook allemaal Elixir,
maar dat zal waarschijnlijk ook allemaal rust worden.
Dat staat eigenlijk allemaal in de stijgers om dat allemaal om te zetten naar rust.
En eigenlijk is daar, het is echt hetzelfde wat ik ben al net opbeschreven,
het zijn allemaal aparte containers, vaak wel uit een meer monolithische codebase,
maar deploybaar, of in ieder geval te parametriseren per exchange als je ze start.
En dat draait ook allemaal op nog op datzelfde rangercluster eigenlijk.
Dat zal ik straks allemaal naar u verschenken, hoogst het Kubernetes gaat.
Met ranger ervoor als UI.
Ja, en in de front-end, dat ben ik nog vergeten te vertellen,
maar in de front-end wordt eigenlijk alleen maar React gebruikt.
Dus voor de desktop applicatie, de web applicatie en de mobiele applicaties
gebruiken we allemaal React.
Voor iOS en Android gebruiken we nu nog React Native,
maar daarvan gaan we ook afstappen en we gaan over op gewoon een volledige
React implementatie, zodat we straks één codebase hebben
voor alle front-end gerelateerde zaken.
Ja, hebben jullie daar ook een speciaal, dat klinkt altijd heel mooi in de oren
van één codebase die alle verschillende gebruikers gaat serveren.
Is dat waar? Heb je dat echt gezien dat dat werkt?
Ja, ik heb het dus de iOS applicatie is al 80, 90 procent gedeelde code.
De overige 10 procenten heeft eigenlijk alleen te maken met wat wat kleine
mobiel specifieke onderdelen, maar daarnaast de UI zelf.
Dus ja, je moet gewoon een mobiel vriendelijk navigation UI hebben.
Dus daar onderscheidt het zich dan in.
Maar er is helemaal niks mis mee om dat gewoon in één applicatie
te stoppen en te zorgen dat je dat je applicatie gewoon
responsive reageert en eigenlijk op elk formaat goed zichtbaar is.



