Welkom bij een nieuwe aflevering van de CodeKlets podcast.
De podcast gemaakt door coders, voor coders en iedereen die interesse heeft in development.
Vandaag hebben we twee gastheren, Bernard en ik, Wouter, jullie nieuwe.
En in deze aflevering hebben we een heel speciaal iemand te gast, waarvan ik bijna wel zeker
weet dat iedereen die ook maar iets met iOS development doet, hem wel kent.
Antoine van der Lee, welkom.
Dank je wel.
Bedankt voor de uitnodiging.
Super blij om hier te zijn.
Ik heb met jou via Twitter het een en ander besproken.
Ik volg jouw blogjes regelmatig en jouw tweets.
Ik heb ook jouw portfolio aanschouwd, waar gigantisch bekende apps in staan die
bijna op iedereen's telefoon wel te zien is.
Denk aan Buuradar, Videoland en misschien een app die bijna iedereen wel gebruikt,
WeTransfer.
Ja, dat klopt.
Je noemt inderdaad een paar pareltjes op.
Dat zijn inderdaad wel wel het projecten waar ik ontzettend trots op ben.
Waarbij ik denk, ik denk voor de Nederlanders, ja, Buuradar is natuurlijk het meest bekende,
waarbij het wel waard is om te zeggen dat ik ben niet de oprichter van Buuradar.
Ik heb het in opdracht van gemaakt, maar toch, ja, het was mijn eerste app die de miljoen
gebruikers haalde.
Dat was wel een big milestone.
Ja, ontzettend trots natuurlijk op dit soort projecten.
Ik denk dat iedereen ouders hier wel die app een keer heeft gebruikt of geïnstalleerd
heeft gehad of weet ik veel, maar dan gaan we eigenlijk al iets te ver naar voren.
Want hoe is nou allemaal begonnen?
Hoe ben je begonnen met programmeren?
Dat is eigenlijk de vraag die we altijd aan iedere gast stellen die in onze podcast
komt. Ja, nou, het is het is eigenlijk grappig.
Wouter en ik had een kort gesprek voor deze opname en hij vertelde over halo
en terug in de tijd met met met games en ik was echt niet echt een gamer,
maar ik heb ik heb één game echt heel veel gespeeld.
Wolfenstein en in de Territory geen idee of iemand dat kent, maar
destijds had ik ook een clan, dus een groep waarmee samen wedstrijden speelde.
Je speelt in het spelletje.
En daar ging ik een website voor maken.
Want ja, als een clan zijn, heb je een website.
Dus nou, het was een punt TK domein.
Het was het enige domein dat je gratis kon krijgen.
Dreamweaver was het volgens mij wat ik gebruikte.
En nou goed, echt een heel simpel, simpel website.
Maar het zijn wel de roots van het programmeren waar het eigenlijk allemaal startte voor mij.
Tot de dag van vandaag zegt mijn moeder ook nog steeds.
Jij bent zover gekomen doordat ik voor jou een computer heb gekocht.
Want hoe oud was je toen?
Ik denk dat ik een jaar of dertien, veertien was dat ik echt begon te sleutelen.
En het heeft eigenlijk niet, niet mega doorgezet.
Ik heb ook op een moment ben ik ingeschreven geweest voor accountancy.
En toen had ik een Frans mondeling waar iemand in het Frans vertelde
over een opleiding waarbij die websites moest gaan maken.
En toen dacht ik van ja, dat vind ik ook tof.
Weet je wel, in het Nederlands achteraf.
Want in Frans je ne sait pas, maar verder kwam het niet.
Hij heb me gevraagd over die opleiding.
Wat was interactieve media destijds?
Communication en multimedia die zijn.
Ja, en daar heb ik eigenlijk het product ontwikkelen geleerd.
En dan was het eigenlijk aan jezelf welke kant je echt opging.
Dus dat kon project management zijn of programmeren.
Maar je kreeg niet echt programmeerlessen.
Het was geen IT opleiding, ECT opleiding.
Maar goed, ja, daar heb ik het wel weer helemaal ontdekt.
En ben ik echt de diepte ingegaan met PHP, eigen CMS gemaakt.
Steeds meer stappen gemaakt.
En dat was eigenlijk in de tijd dat de iPhone die kwam net uit.
Ik denk dat ik de eerste jaar zat van mijn HBO opleiding
dat er iemand was met een iPhone en die liet zien dat je met GPS
over straat kon lopen en je wist gewoon waar je was.
Dat was ongekend op dat moment.
Op dat moment werd ik eigenlijk wel een soort van enthousiast van
hoe maak je daar nou mobiele apps voor?
En toen kreeg ik de kans om een stage te lopen hier in de buurt in Horen.
En daar begon het allemaal met Windows Phone.
Bestaat nog wel, denk ik.
Ik weet het niet zeker.
Het was het was een moedje, moet ik eerlijk zeggen.
Ik dacht destijds, weet je, als ik als ik meerdere platformen onder de knie heb,
dan heb ik in ieder geval een goede kans op een baan, laat ik het zo zeggen.
Maar goed, ja, ik was wel Apple fan, ook al had ik een Android.
Ik kon gewoon Apple nog niet echt betalen, maar ik was Apple fan.
Dus ik dacht van nou, als ik nou voor mijn baan met iPhones mag werken,
dan kan ik er toch een beetje mee spelen.
En ik denk dat daar echt de start is waar ik mijn scriptie heb gedaan
op het hacken van iPhones.
Ja, want daar had ik nog wel een vraag over,
want we hebben heel kort even naar je scriptie gekeken.
En we vonden het heel erg interessant
hoe een multimedia design student een scriptie schrijft
over de veiligheid van iOS.
Dat klinkt toch echt hardcore security gewoon?
Ja, dat is eigenlijk wel een hele treffende vraag.
Dat gaat mij nu ook een vraag opwekken
van waarom ben ik er eigenlijk opgekomen om dit te doen?
Ja, kijk, security is natuurlijk onderdeel van productontwikkeling.
En ik weet dat ik destijds ook aan een IRG-app werkte.
Het was niet de IRG-app, maar wel een bank-app
waar security belangrijk was.
Dus mijn stagebedrijf had ook wel interesse in...
Het jailbreak was toen nou echt heel groot,
nog groter dan dat het nu is. Dat is wel wat minder groot geworden.
Jailbreak, dan kan je eigenlijk buiten de app store om installeren
en je kan de iPhone eigenlijk veel fancier maken
dan het bij default kan geven.
Dus ja, ik denk dat daar ook eigenlijk
een beetje de oorsprong is ontstaan.
En ik had ook een boek over security op Ivo gevonden
en die ben ik eigenlijk helemaal doorgegaan voor mijn scriptie.
En ja, zo is het uit de hand gelopen project ontstaan.
Ja, ik ben wel aardig los gegaan destijds.
En heb je toen ook dingen gevonden die nieuw waren?
Security issues?
Nou, het interessante destijds was dat ik bestaande apps
een soort van ging proberen te hacken.
Dus ik probeerde een Rabobank app te hacken.
Ik heb de ING app proberen te hacken.
Ik ben nooit heel ver gekomen en ik heb heel gezegd het boek gevolgd.
Ik hoop niet dat mijn afstudeerleraar het luisteren nu.
Zei hij al te laat.
Ja, maar die wisten het wel.
Kijk, het volgen van een boek is één ding.
Het in praktijk brengen is de tweede.
Conclusies trekken is dan nog het derde natuurlijk.
Dus nee, ik heb zelf geen doelbrekende dingen gevonden.
Maar goed, ja, ik was destijds wel in de mogelijkheid dat
als ik jouw iPhone had, kon ik wel je PIN code achterhalen,
wat destijds nog maar vier codes waren.
Ja, dat is 9999 pogingen en je bent er.
Ja, dus ja, dat was wel indrukwekkend voor een studiebegeleider, coach,
die dus gefocust is op niet per se technische dingen, zeg maar.
Ja, ja, ja.
En tijdens je onderzoek ben je dus eigenlijk een beetje
erachter gekomen van oké, ik ontwerp iPhone apps
of de productontwikkelingszijde daarvan.
En uiteindelijk ben je dus zelf development ingerolten.
Dat was dan denk ik objectivisie, of niet?
Ja, dat was nog objectivisie voor de kennis.
Het was net na automatic reference counting.
Dus memory management werd gelukkig een beetje voor me gedaan.
Dat maakte het allemaal een stuk makkelijker.
Dat scheelt, ja.
Maar ja, nee, klopt.
Ik ben in de gelukkige positie geweest om daar te mogen blijven werken.
Bedrijf heet Miraboe. Super toffe plek.
Heel veel leuke momenten gehad.
En op een gegeven moment toch wel echt de passie ontdekt voor mobiele ontwikkelen.
Maar bij Miraboe destijds wel, Brea was dan alleen mobiel.
Dus het was niet vergelijkbaar met een met een agency die echt
dedicated mobiele apps aan het ontwikkelen was.
Dus op een gegeven moment ben ik gewoon verder gaan kijken.
En toen kwam ik een bedrijf in Alkmaar tegen dat heette We Are Triple.
Volledig gefocust op mobiele apps,
waaronder dus partijen als RTL,
waar dus Videoland en Buurade werden ontwikkeld.
En ja, daar kwam ik in een soort van walhalla met gelijkgestemde
die allemaal iOS apps maakten.
Ja, daar kon ik ontzettend veel leren en groeien natuurlijk.
Dus daar is wel mijn echte journey gestart wat betreft het mobiele ontwikkelen.
En met hoeveel mensen zat je daar ongeveer?
Voor mijn beeld?
Ik denk op het piekpunt.
Ik ben dan gegroeid van junior naar senior en uiteindelijk wel een soort team lead.
En ik denk dat ik op het piekpunt wel een mannetje of 10 dames en vrouwen en
mannen trouwens om het correct te zeggen.
Ja, een groep van 10, 11 developers op iOS only.
En dan had ik nog een hele groep met Android ontwikkelaars.
Oké. En werkte die in teams of waren er 1, 2, 3, 4?
Had je daar ideale project samenstellingen voor?
Nou, ja, dit is eigenlijk al meteen een bruggetje naar waarom ik naar WeTransfer
ben gegaan. Maar bij Trippel waren het, kijk, het is een agency waarbij je vaak
als enige ontwikkelaar per platform op een project wordt gezet.
En het biedt heel veel voordelen.
Je kan eigenlijk zelf bepalen hoe je projecten opzet.
Je moet het zelf bepalen.
Natuurlijk heb je wel sync meetings waarbij je met elkaar overlegt.
Maar uiteindelijk ben jij degene die het echt bouwt.
Er zit een tijdpressure op, de klant betaalt voor een aantal uren.
Je moet je uren ook bij je houden.
Dus uiteindelijk bouw je wel apps.
Maar ik weet gewoon nog van destijds dat ik een bepaalde project had afgemaakt.
En toen wist ik eigenlijk alweer van nu weet ik eigenlijk pas hoe ik het echt
had moeten bouwen. Dus elk volgende project begon ik weer heel anders.
En deden ik nog weer veel meer.
Uiteindelijk, dat ik daar begon, begon ik natuurlijk niet met een Videoland app.
De Voice Kids heb ik gedaan.
Dat was mijn eerste grote project.
Marco Bussato app, ook wel grappig.
Ja, dat did not age well.
Ja, goed, voor een technisch perspectief was het echt een leuk project.
Het zag er goed uit en dat was een leuke uitdaging.
Maar goed, je leert daar super snel als een junior.
Omdat er gewoon heel veel projecten achter elkaar komen en je ook de kans
hebt om je fouten in een nieuw project beter te doen als het ware.
Dus daar ben ik wel heel erg gegroeid, maar ik kreeg nooit code reviews
bijvoorbeeld. Daar begonnen we eigenlijk pas mee.
We gebruikten heel veel third party libraries.
Dus eigenlijk code van anderen die maakt heel...
Ja, dat zorgt er natuurlijk voor dat je veel sneller ontwikkelt.
Ja, dat is heel anders dan dan dat je bij een product company
werk. Ja, en waarom heb je daarvoor gekozen?
Nou, op een gegeven moment zat ik gewoon eigenlijk een beetje op een
op een doodspoor in de zin van, kijk, heel eerlijk heb ik, ik heb
gewoon vrienden om me heen, die challenge mij en ik challenge hun.
We zijn constant een soort van, weet je, we willen niet dat je
stilstaan, weet je, wat is je volgende target?
Waar ga je nu naar doorgroeien?
We proberen constant eigenlijk het beste uit elkaar te halen.
En ik weet nog heel goed destijds dat ik op het terrasje zat met
een maat van mij en die zegt, ja, waarom ga je niet voor Apple werken?
Weet je, waarom zit je nog in Alkmaar?
Waarom ga je niet verder?
En ik was super happy hoor bij Triple, maar het is toch een
soort van zaadje die dan geplant wordt, die langzaam een
soort van water krijgt en groeit.
En ja, het is wel een mooi verhaal.
Ik had een, ik wilde presentaties geven op meetups en ook
eigenlijk op conferenties, maar ik kwam er niet echt aan te pas.
Dus ik had eerst een kleine lokale meetup, had ik een
presentatie gegeven en er was een conferentie, Do IOS in
Amsterdam, Pakhuis de Zwijger, die wisten dat ik die
presentatie gedaan had op die meetup en 24 uur voor de
conferentie was er iemand helaas ziek, die moest afzeggen.
Dus kreeg ik een belletje van, hey, Twan, wil jij die
presentatie niet doen?
Ja, ik dacht, ja, dit is wat ik wilde.
Ik was mega zenuwachtig hoor.
Ik dacht echt van, holy shit, weet je, heel veel mensen
natuurlijk, in ieder geval waren er 130, 150 mensen in die zaal.
Maar goed, ik ging ervoor, trillende handjes op het podium,
praatje vertellen, helemaal tof natuurlijk.
En toen bleek daar in het publiek een product owner te
zitten van WeTransure.
Die benaderde me en die zegt, ja, wil je niet een
keer langskomen voor een koffie bij WeTransure?
Dus ja, ik dacht, ja, leuk, ik ben wel benieuwd hoe het
kantoor eruit ziet.
Weet je wel, niks vermoedend.
Wat was je onderwerp?
Destijds was het functional reactive programming.
Dat was echt wel hip.
Destijds met RxSwift, reactive Swift had je.
Nu heb je Cobain, dus echt een first party framework van Apple.
Ja, dat was dat was één van die projecten.
In Buitenraad ben ik helemaal los gegaan met met
functional reactive programming en ja, ik was een
advocate voor functional reactive programming.
Iedereen moet het doen.
Het is echt een next big thing, weet je wel.
Kijk ik nu ook wel op ons op terug.
Maar goed, het was wel wel leuk.
Het is een rode draad.
Daar kom ik zo nog wel even op terug.
Maar goed, ja, toen ging ik dus op gesprek bij WeTransure.
Een anderhalf uur, gezellig gekletsen, eigenlijk helemaal niet
over een paar aanbiedingen gehad of iets, tot ik de deur uitdiep.
En hij zegt, nou ja, weet je, als je nog een keer een
aanzoek laat maar weten, weet je wel.
Dus ja, het zaadje was natuurlijk eerder al geplant.
Dus ik was er wel, ik had wel oren aan en toen ben ik eigenlijk het gesprek
aangegaan en is het heel snel gegaan.
En ja, toen ik daar kwam, was het wel, weet je, bij Trippel was
het heel tof, had ik constant nieuwe projecten, maar je gooit ook
constant je werk weg, dus je hebt iets vet tofs opgebouwd.
Maar ja, dan zijn de uren op, de klant betaalt niet meer.
Dus je gaat aan een nieuw project werken, wat perfect is als je het
junior bent. Maar goed, ik was inmiddels wel toe aan een project
waar ik gewoon echt op door kon bouwen en waar ik, waar ik gewoon echt
aan de details kon gaan werken.
Dus ja, een product company als WeTransfer die net een nieuwe app begint,
waarbij het ook wel een perspectief was dat de app echt miljoenen
gebruikers potentieel zou kunnen gaan bereiken.
Ja, dat kwam eigenlijk op een perfect moment en daarom heb ik die stap
gemaakt en daar kwam ik wel echt tegen wat het verschil is tussen
een agency en een product ontwikkeling, want ten eerste kwam ik in een team
met een voormalig ontwikkelaar van de Uber app en een andere ontwikkelaar
van Sketch Cloud. Die jongens hadden gigantisch veel ervaring.
Ik opende mijn eerste pull request.
Nou, wat deed ik? Functional reactive programming.
Ik stopte RX5 Frame ook in het project en ik ging helemaal los.
Nou, ik was pull request niet gewend, code reviews was ik niet gewend.
Dus ja, ik kreeg natuurlijk een lading aan feedback.
Best even slikker was, want je vindt het spannend.
Je eerste code wat je submit in een nieuw project, dat is best wel een stap.
Maar op een gegeven moment dacht ik wel van ja, weet je, dit is wel wat ik wilde.
Ik leer nu van twee andere seniors.
Eigenlijk best wel toffe dingen en ik kan het inderdaad ook gewoon
bouwen zonder RX5 en vanaf daar ben ik echt gigantisch hard gaan groeien
en heb ik heel veel geleerd.
Ja, als je kwam binnen als mediehoor begrijp ik.
Volgens mij als senior, want het idee was ook dat ik team manager zou worden.
Dat was één van mijn eisen, want dat was ik ook bij Triple.
Dus dat heb ik wel meteen meegenomen daar.
Kan je misschien iets vertellen over de mobiele applicaties die bij
WeedFansen worden ontwikkeld?
Zijn dat er meerdere? Is dat er één?
En hoe dat gaat en wat jouw rol is?
Ja, destijds begonnen we aan de app Collect.
Dat was eigenlijk de vervanger van wat toen de
Transfer app was. De Transfer app destijds deed eigenlijk niet veel anders dan.
Je kon foto's en video's selecteren en die kon je versturen naar iemand.
Ja, dat zit.
Nou, toen kwamen wij met de Collect app.
Die begon als de WeedFans app qua naam.
Werd niet in dank afgenomen, want het was een heel ander concept
dan de Transfers, we hadden namelijk Boards.
Nou, uiteindelijk is dat allemaal wel op zijn pootjes terechtgekomen.
En vandaag hebben we dus een Collect app, maar ook echt een Weed Transfer app
waarmee je bestanden kan versturen en ontvangen.
Je locht eigenlijk in met je Weed Transfer account en hier krijgt al je Transfers te zien.
We hebben een aantal jaar geleden 53 overgenomen.
Het is een Amerikaans bedrijf
bekend van twee apps, eigenlijk Paste en Paper,
waarbij Paper een Apple Design Award winning app is.
Wel bekend bij heel veel mensen.
Dus die zitten tegenwoordig ook in onze suite van apps.
Dus Altogether hebben we inmiddels vier apps die we ontwikkelen, waarbij
lately echt de Transfer mobile app de hoogste focus heeft.
Oké. En hoe gaat dat? Zit het één app per team of hebben jullie
verschillende platforms per team?
En de aantallen en wat jouw rol daarin is, daar ben ik ook nieuwsgierig naar.
Ja, ja, we hebben nu een team van,
ik denk om en erbij 20 mensen en dat bestaat uit
zeggen 2, 3 designers, 3, 4 Android ontwikkelaars.
Mijn iOS team is vijf man groot, waarbij ik zelf
eigenlijk een rol bezit.
Ik werk vijf jaar bij WeTransfer inmiddels.
Dus ik heb heel veel knowledge wat betreft business logica.
Hoe werkt het nou eigenlijk?
Hoe upload je een bestandje aan mensen die
nieuw beginnen bij ons hebben daar vragen over.
Dus mijn rol is wel heel erg veranderd, waarbij ik minder hands on ben,
maar meer eigenlijk verschillende
palletjes aan het hoog houden ben met meerdere mensen in discussie.
We werken eigenlijk samen aan één app op dit moment.
Dus er is eigenlijk een dedicated iOS team en een dedicated Android team
die min of meer de responsibility heeft van alle apps.
Maar omdat we nu dus op dit moment even gefocust hebben op de transfer
mobile app, zijn we daar met z'n allen mee bezig.
We werken in sprints, scrim based.
We maken eigenlijk een planning vooruit voor de hele kortaal.
En ja, prioritiseren en gaan ermee aan de slag.
Waarbij we ja lately wel echt toffe dingen aan het doen zijn.
De afgelopen vier weken ben ik alleen maar bezig geweest met het verbeteren
van de success rate van transfers die gemaakt worden op mobile.
Dus we hebben advanced monitoring in place.
Service level objectives, waarbij een target van 95 procent
bijvoorbeeld gehaald moet worden.
En daarmee bedoel ik dus 95 procent van de transfers die op mobile
gestart worden, moeten ook daadwerkelijk een succes zijn.
Waar zit dat dan in dan dat ze mislukken?
Nou, er komt dus van alles eigenlijk terug.
We gaan nooit 100 procent halen, want internet verbinding
die wegvalt, ja, dan houdt het gewoon echt op natuurlijk.
Maar we hebben inmiddels, we gebruiken datadoc, misschien wel bekend bij sommigen.
We krijgen echt heel gedetailleerd inzichten in welke status codes terugkomen.
Zo heb ik van de week kwam ik erachter dat als je een transfer maakt,
meld je hem eerst aan en dan komt er een token terug waarmee je kan starten met uploaden.
Alle bestandjes worden in chunks, in kleine blokjes worden die geüpload.
Naar Amazon.
Uiteindelijk is die upload een soort van klaar, dus dan wordt hij ook een soort van gemarkeerd
als zij in de klaar en dan is de laatste fase eigenlijk een finalise end point,
waarbij we aan de WeTransfer backend vragen van hey, heb jij daadwerkelijk die
data doorgekregen, staat de transfer correct in de database.
Nou, het bleek bijvoorbeeld in onze logging dat die laatste end point een 404 kan
terugsturen en wij handelden dat niet goed af.
Wij veelden gewoon die hele transfer waardoor de gebruiker eigenlijk volledig opnieuw
moest uploaden.
Wat heel vervelend is als je vijf gigabyte uit uploaden bent, mobiele data.
Terwijl een finalise request misging.
Ja, ja, dat is eigenlijk één request van het hele verhaal en dat hebben we
opgelost waardoor we weer een aantal procent success rate omhoog gaan.
Nou, nice. En werken jullie remote of allemaal bij elkaar?
Voorheen, ja, corona heeft natuurlijk alles behoorlijk op z'n kop gezet.
Ja, we werken volledig remote op dit moment.
Het kantoor is wel open, dus er is ook ruimte om.
Ik geloof tot tot honderd man kan er op kantoor zitten, waarbij je eigenlijk
inschrijft op een bureau.
Alle bureaus zijn flex en er zijn wel regels als maximaal van drie dagen per
week. Maar in praktijk, iedereen is inmiddels zo gewend aan thuis werken
dat ik kan morgen naar kantoor gaan, maar de kans dat ik mijn eigen team
daartegen kom is niet eens heel groot.
Dus voor wie ga ik dan naar kantoor?
Dus dat is een beetje de situatie nu.
Maar we proberen eigenlijk wel een soort van dag te prikken met het team
dat we samenkomen.
Oké, cool. Want jij beheert dat team een beetje als leidinggevende, zeg maar.
Dus hoe ga je er dan mee om op het moment dat er een junior in het team
komt, ga je dan elke dag op kantoor afspreken?
Nou, ik ben overigens echt alleen de leiding van de IOS team en doordat
ik staff level ben heb je ook een soort van vinger in de pap op andere gebieden.
Maar het is het is zeker niet dat ik de enige ben die het team leidt.
We hebben nog wat product owners en product managers die dat gedeeld
samen met mij doen.
Ja, juniors, minors, maar ook seniors die nieuw starten.
Wij pakken dat eigenlijk aan op een manier dat we regelmatig
inchecken met elkaar.
We transcribe sowieso een heel onbordend proces, waarbij het bedrijfscultuur
wordt uitgelegd.
Iemand van elk team komt langs in een meeting om te vertellen over
de producten, hoe we de producten ontwikkelen.
Als ik als ik met een nieuwe collega aan de gang ga, dan zorg ik dat ik
eigenlijk een soort van inleiding geef tot het project.
Deels synchronous, deels async.
Dus we hebben heel veel documentatie, staat veel op notion, allemaal uitleg
over hoe het project werkt, hoe je het project kan uitchecken en
zorgen dat het project eigenlijk bouwt meteen.
Eigenlijk heel veel common questions worden daar al beantwoord.
En mijn tactiek is eigenlijk vaak om een soort van ja, of wel een
bug of een soort van kleine UI-chains als taak te geven aan die
persoon en ook geen taken die echt pressure hebben.
Weet je, ik ga natuurlijk niet iemand die net begint vragen iets
te bouwen wat volgende week echt in de apps te ontstaan.
Dat zou gewoon niet echt leuk en eerlijk zijn.
En met die taken kan die eigenlijk een soort van door het project heen gaan
zoeken, rustig aan zijn tijd nemen.
De eerste pull request die die opent is dan ook niet zo bedrukkend.
Als je alleen een kleur moet aanpassen van een kroppenwijze van
spreken dan is dat natuurlijk veel fijner dan dat je meteen business
logica moet gaan aanpassen.
En ja, eigenlijk echt een situatie creëren waarbij vragen stellen heel
normaal is en ja, iedereen is gelijk bij ons.
En wat ik daarmee wil zeggen is dat een junior die kan net zo goed
een heel goed idee hebben als een senior.
Dus wij gaan er ook van uit dat iedereen goede ideeën kan brengen,
waardoor nooit een situatie krijgen waarbij een junior niet serieus
genomen wordt of iets goed.
Dat betekent ook dat een junior soms een project op z'n schouders
krijgt die die serieus moet gaan leiden.
En natuurlijk zullen we hem dan niet identieper laten vallen en veel
van begeleiden en helpen, maar het is vaak wel de snelste
manier om te leren.
Oké, cool.
En Twan, zit je ook wel eens in Android code te programmeren?
Bless for me.
Gevoelig antwoord kan er komen.
Ja, dit is natuurlijk een hele belangrijke discussie in veel teams
die zowel Android als iOS doen, of misschien zelfs meerdere platformen.
Sommigen doen er zelfs bekend bij.
Ik kan ik kan ik kan jou vast vertellen dat ik niet heel veel in de Android code
beest te vinden ben, maar dat betekent niet dat ik ze niet help.
Dus sowieso als als staf help ik eigenlijk alle teams binnen
WeTransfer wel, maar ik zit vooral een rol waarbij ik ze
proactief dingen laat oplossen op basis van de kennis die ik besit.
Dus iemand die het uploading wordt nu gebouwd op Android,
dat komt er binnenkort aan.
Daar zijn heel veel vragen over waarbij ik de code heb gezeten voor de iOS app.
Dus kijk, ik raak dan niet de Android code aan, maar ik zit wel in een meeting
met degene van Android die het bouwt om te zorgen dat ze ja,
eigenlijk een soort van kickstart hebben en niet dezelfde fout maken
als dat ik heb gemaakt.
En jij hebt waarschijnlijk destijds veel met de backend team gezeten
om al die endpoints te testen en te tunen.
Ja, nou, het grappige is dat de hele upload mechanismen is gebouwd
tijdens een hackathon.
En dat is uiteindelijk echt echt doorgegroeid tot wat nu upload bij
Which Wanser regelt.
En ja, het is niet zichtbaar, maar upload zijn veel sneller geworden lately.
Dus ja, alle endpoints waren er al.
Maar inderdaad, ik heb wel communicatie gehad over endpoints
om ze beter te maken of dingen aan te vullen.
Want als ik me goed voor de geest, als ik het goed heb,
is backend toch ooit in rails begonnen en tegenwoordig ook met
wat e-links er links en rechts? Of heb ik dat mis?
Het is grappig dat je dat je dit hebt opgevangen.
Er is een korte periode geweest dat we elixer hebben geprobeerd.
Dat was misschien wel een meetup geweest, waarbij je dat hebt gezien
of gehoord, denk ik.
Het was voornamelijk Ruby.
Het is voornamelijk Ruby.
Maar er zijn ook wel.
Er worden wel nieuwe talen echt uitgeprobeerd nu.
Omdat ja, volgens mij is het voornamelijk het grootste probleem
is het vinden van Ruby ontwikkelaars.
En er zijn wel wat talen zoals Go die wat wat wat hipper zijn fans
die er misschien ook wat meer in de toekomstperspectief hebben.
Maar we zijn wat dat betreft wel een beetje de hackentons.
We hebben elke maand een playday.
Daar zie ik regelmatig van dit soort nieuwe
exotische talen, zou ik maar zeggen, voorbij komen.
Maar de core, er is nog heel veel in Ruby geschreven.
Dat wist ik, ja.
Oké, duidelijk.
Ah goed.
Ja, jij zei dat er een ooit een zaadje was gepland
waardoor je bij WeTransfer terecht bent gekomen.
Groeit er nu ook iets?
Ik ben benieuwd of je daarover mag praten.
Waarom zit je niet bij Apple?
Dit is wat ik ook kunnen vragen.
Waarom zit je nog niet bij Apple?
Kunnen we even inchecken wie er van WeTransfer meeluistert op dit moment?
Nee, nee, maar hoe zie je de toekomst voor je?
Ja, nee, ik ben hier sowieso heel open en eerlijk in.
Dat is mijn manager.
Mijn manager is gelukkig Frans of Engels, dus die gaat hier niks van begrijpen.
Dus daar kom ik wel goed mee weg.
Maar nee, ja, dat is een heel goede vraag.
Kijk, ik zal je eerlijk zeggen dat ik, ik heb wel regelmatig gesprekken gehad.
Zeker vorig jaar heb ik echt een periode gehad dat ik het was corona tijd.
Dus de salarissen van Amerika vloog ook een beetje over naar Europa.
Ja, en dan zie je ook wel gewoon aanbiedingen voorbij komen,
die je soms hard vindt om te negeren bij wijze van spreken.
Kijk, een bericht krijgen is één ding.
Het binnenhalen van zo'n salaris is de tweede.
En dan komt daar bovenop nog dat de salaris natuurlijk niet altijd alles is.
Het heeft mij eigenlijk inzichten gegeven dat ik heel erg op mijn plek ben bij WeTransure.
Zeker nu in deze tijd WeTransure is winstgevend en echt een stabiele omgeving om te werken.
Daarnaast heb ik de introductie zei het al even.
Ik heb mijn eigen blog, Swiftly.
Swiftly is ook echt een eigen onderneming.
Daar verdien ik gewoon gewoon een leuk zakcentje bij mee.
Ja, dat is inmiddels zo serieus geworden dat ik daar eigenlijk meer mijn focus op leg.
En als ik nou moet zeggen waar wil ik staan over 10 jaar of misschien wel als het goed gaat over 5 jaar of misschien maar over 3 jaar.
Ik ben heel erg bezig om Swiftly uit te bouwen tot een ja eigenlijk een recurring income waar ik op verder kan bouwen.
Dat doe ik in combinatie met een nieuwsletter die groeit en krijg sponsorships daarop.
Ik heb inmiddels meer dan 10.000 volgens op die nieuwsletter, wat allemaal app ontwikkelaars zijn.
En er zijn bedrijven die specifiek op die app ontwikkelaars eigenlijk willen targetten.
Dus dat levert een sponsor inkomsten op.
Oké.
Daarnaast heb ik twee apps.
Een van is Rocket Sim.
Het is eigenlijk een ontwikkelaars tool waarbij je de iOS simulator op je Macbook eigenlijk geavanceerder kan maken.
Die begint nu aardig door te groeien.
En dan heb ik ook nog Stock Analyzer.
Dat is een iOS only application op dit moment.
Waarmee je aandelen kan analyseren.
Er zit ook een subscription model in.
Daar heb ik eigenlijk het target voor dit jaar om duizend euro model recurring revenue mee te krijgen.
En dat is eigenlijk nu mijn zaakje die aan het groeien is.
Dus long story short, WeTransfer is een ontzettend goede basis om dat uit te laten groeien.
Waarbij WeTransfer me ook ontzettend steunt met mijn blog en community building.
Omdat het hiring zelfs op back-endposities en dat soort dingen echt veel, veel makkelijker maakt door de reach die je krijgt binnen engineering.
Duidelijk.
En zullen we dan via je blog een Swiftly richting Swift gaan?
Kan jij voor Wouter en de luisteraars het Swift landschap kort beschrijven?
Jazeker.
Open source Swift ontwikkeld door Apple.
Gelanceerd in 2014 als een opvolger voor Objective-C.
Waarbij je in de beginjaren echt geen apps wilde bouwen met Swift.
Omdat het gewoon slow was.
Maar destijds was het gewoon echt een beginnende language.
Dus heel erg nieuw.
Wat betekent dat ze eigenlijk de tekortkomingen van andere talen weten op te lossen met nieuwe technieken.
En dat gaat eigenlijk door de jaren heen.
Dus je hebt meerdere Swift releases elk jaar.
Waarbij tijdens WWDC, de Worldwide Developer Conference van Apple,
worden de grotere versies gelanceerd.
Waarbij we nu op Swift 5.7 zitten.
Swift 6, dat is eigenlijk de big milestone die nu gevolgd wordt.
Waarbij het doel van Apple met Swift is eigenlijk om programmeren leuk te maken.
En dat is het natuurlijk bij default, vind ik, vinden wij allemaal.
Maar leuk in de zin van je hoeft niet zorg te maken over race conditions,
over memory management, over crashes of eigenlijk developer mistakes,
die je normaal gesproken zelf onbewust of bewust, weet ik niet.
Die je heel makkelijk aanschreven hebt.
Ja, en dat komt met updates die niet altijd even goed werken.
De head-build types van de apps zijn nog niet waar ik hoop dat ze zijn over een jaar.
Maar goed, het is een jonge taal en dat zorgt voor plus en minpunten.
De community is echt super gedreven.
Ik zit er wel helemaal in, moet ik zeggen.
Dus het is misschien voor mij niet helemaal makkelijk om te zeggen hoe dat voor een buitenstaander is.
Maar er zijn heel veel bloggers.
Tegelijkertijd is het ook het niets.
We zijn niet de grootste taal, we zijn niet de meeste ontwikkelaars te vinden.
Maar het is wel echt een toffe community waar je hele toffe apps uit de grond ziet komen.
Zeker na zo'n WBDC met veel nieuwe features.
Je geeft aan dat je diep in die community zit.
Hoe zou je de filosofie van Zwift vergelijken met die van Ruby bijvoorbeeld?
Ja, ik ben wel echt Zwift.
Dus om een vergelijking te maken moet je eigenlijk van twee kanten natuurlijk veel weten.
En ja, ik heb geen idee bijvoorbeeld hoe Ruby ontwikkeld wordt.
Ik heb daar helemaal geen inzicht in en dat zegt misschien tegelijkertijd al iets.
Dat zou kunnen.
Kijk, wat je bij Zwift gewoon hebt is dat het allemaal...
Mensen die echt alleen Zwift kennen zijn allemaal jonge ontwikkelaars.
Want de taal is sinds 2014 waarbij Ruby zou je ongetwijfeld veel meer ontwikkelaars hebben die al veel langer in het vak zitten.
Dus ja, nogmaals, ik vind het moeilijk om de vergelijking te maken omdat ik een beetje ervaring mis wat betreft het Ruby landschap.
Ja, ik kan daar niet een klein beetje over zeggen.
Wat ik fijn vind aan Ruby is dat de ontwikkelaar Matsumoto.
Ruby heeft ontwikkeld om de programmer happiness te bevorderen.
Je wordt gewoon blij als je in Ruby programmeert. Dat wil hij bereiken.
En ik word altijd blij als ik in Ruby programmeer.
Dus wat dat betreft is het gelukt.
Je moet weinig typen en het is allemaal heel logisch.
En dat gevoel krijg ik bij de nieuwe Zwift dingen ook een beetje, moet ik zeggen.
De nieuwe aanpassingen en hoe het allemaal opgezet is, dat is toch veel beter, veel fijner dan Objective-C, waar ik ook nog vaak in zit te hakken.
Ja, en hier zeg je op zich wel wat grappigs.
Want als je vandaag met Zwift begint, dan heb je zeg maar niet al een oude manier van werken.
Zwift is heel snel ontwikkeld.
Er zijn heel veel dingen veranderd.
Maar dat betekent ook dat er dus bijvoorbeeld heel veel veranderd in concurrency is.
Asynchronous code schrijven.
Dat is nu eigenlijk veel logischer geworden met structured concurrency,
wat eigenlijk betekent dat het lijkt alsof je gestructureerde code van boven naar beneden schrijft.
Maar het is daadwerkelijk, als het uitgevoerd wordt, asyngroon.
En dat wordt dan gedaan door Async Await, wat ook wel bekend is van JavaScript, geloof ik.
Voor mij als ontwikkelaar met wat meerdere jaren Zwift-ervaring was het best wel een mindset change,
omdat ik het gewend ben om het closures te doen, op een andere manier te schrijven.
Waarbij als je fresh begint, dan heb je die learning curve om het ouderwetse manier van schrijven te vergeten.
Ergens kan het best wel wel eens zijn dat als je vandaag begint met schrijven van Zwift, dat het een stuk makkelijker is.
Ik herken wel een beetje wat je zegt. Ik ben oorspronkelijk begonnen met Zwift UI.
Dat werd mij aangeraden. Het is nieuw, het is hot.
Het is onze heren en redder Paul Hudson die iedereen daarmee neemt op sleepthouw, zeg maar.
Uiteindelijk is er ook nog heel veel UI-kit in de markt.
En de eerste keer dat ik een UI-kit app ging maken, ik wist niet wat ik meemaakte.
Ja, ik denk dat het wel goed is om uit te leggen voor de luisteraars die niet bekend zijn met Zwift UI en UI-kit.
UI-kit is eigenlijk van oorsprong de manier om apps te bouwen.
Het is eigenlijk gewoon een framework waarbij alle UI componenten beschikbaar zijn om apps te bouwen.
Zwift UI is een laag erbovenop, een declaratieve laag.
Dus je schrijft eigenlijk wat je wilt hebben.
Bijvoorbeeld, ik wil een label, maar Zwift bepaalt hoe dat label getekend wordt en op zo'n geoptimaliseerde mogelijke manier.
Lijkt een beetje op React Native, waarbij er uiteindelijk iOS-code uitkomt of Android-code.
Declaratief, veel makkelijker begrijpbaar.
Het is bijna gewoon leesbaar en je ziet gewoon eigenlijk letterlijk de structuur van de UI op je scherm.
Daarom is het ook heel declaratief om te schrijven.
Als je nu begint, Zwift UI is nog jonger dan Zwift. Het is drie jaar oud, geloof ik.
Het is heel beperkt. Zeker als je oudere iOS-versies nog moet ondersteunen,
heb je gewoon heel veel beperkingen die je niet alleen met Zwift UI kan oplossen.
Dus als je vandaag begint als een junior, moet je opeens ook UI-kitcode gaan schrijven.
Wat echt wel een hele andere manier van schrijven is dan Zwift UI.
En dat maakt het nog wel eens lastiger voor een junior die net begint met het bouwen van Zwift apps
om helemaal up to speed te komen. Laat staan.
Als je ook nog eens een project tegenkomt met Objective-C,
dan wordt het natuurlijk helemaal een festijn van verschillende talen en structuren.
Want welke architectuur schrijf jij bij voorkeur in?
Soms hoor ik heel veel over CleanSwift bijvoorbeeld.
MVWM, MVC, dus de Model-View-Model en de Model-View-Controller paradigma's.
Hoe sta jij daarin?
Ja, er zijn inderdaad best wel wat verschillende oplossingen en ook best wel wat hippe oplossingen.
Ook wel een paar die snel outdated zijn doordat Zwift met nieuwe features komt.
Die het mogelijk maakt om het anders te schrijven.
Bij WeTransfer hebben we eigenlijk een soort van approach dat we gebruiken wat meest logisch is in de situatie.
Waarbij we wel een soort van structuur door het project heen willen.
Dus we gaan niet opeens MVWM daar gebruiken en dan gebruiken we een heel ander patroon op een andere plek.
Maar tegelijkertijd MVWM en dan creëer je eigenlijk een View-Model voor je View.
Soms heb je zo'n simpele View dat een View-Model een soort van, ja,
te veel is voor wat je aan het doen bent.
Dus dan vinden we het ook gewoon prima als je het niet doet.
Dus er is wel consistentie door het project heen.
Dus we hebben wel een soort van basis van deze technieken willen we gebruiken.
Maar het is niet een soort van must wat dat betreft.
En je eigen voorkeur?
Nou, als ik kijk naar, ik heb eigenlijk twee apps.
Dus ik heb RocketSim en ik heb Stock Analyzer.
RocketSim is AppKit.
AppKit is eigenlijk de UI-kit versie, maar dan voor macOS.
En op macOS is SwiftUI nog veel verder op achterstand.
Dus daar heb ik wel een combinatie van die twee.
Waarbij ik eigenlijk wel dezelfde technieken als Weetranser gebruik.
Dus ook wel MVWM, een coordinator pattern voor navigatie.
Stock Analyzer daartegen ben ik pas begonnen dit jaar in januari.
Het is volledig SwiftUI.
Dus daar komt ook qua navigatie alleen SwiftUI aan te passen.
Bijna geen UI-kit.
Dus daar heb ik geen coordinators.
Heb ik eigenlijk alleen een MVWM op plekken.
Wat het ook makkelijker maakt om logica te testen met SwiftUI, bijvoorbeeld.
Ja, oké, gaaf man.
Heb je nou nooit, laat maar zeggen, een ander ecosysteem verkend naast die van Apple?
Want je zit nu zo diep in Apple, dat ik me best wel kan voorstellen dat je soms denkt,
van joh, ik ga flutter eens een keer proberen.
Iets wat nog redelijk dicht in de buurt kan liggen, aangezien het toch wel kan compileren naar iOS.
Maar ook de Android-kant biedt?
Ja, het zit niet in mijn karakter.
Ik zou er echt heel ongelukkig van worden, zelfs als zou ik flutter moeten gaan doen.
Nee, kijk, als ik terugkijk, het is een patroon aan mijn leven.
Ik heb een scooter gehad, die moest zo mooi mogelijk worden.
Helemaal getuneerd, helemaal top.
Ik heb op een rare zondag nog eens een keertje gedud.
Nou, ik moest helemaal de beste duder worden.
Ik ging er helemaal op los.
Dat heb ik nu eigenlijk ook.
Ik wil gewoon Zwift doen en ik wil daar helemaal perfect en top in worden.
En ik geloof er ook eigenlijk niet in dat je goed kan zijn in meerdere talen,
als in je kan wel goed zijn in meerdere talen, maar echt gespecialiseerd
kan je maar in één taal zijn.
Dat is mijn perspectief er een beetje op en dat kost al genoeg tijd.
Bijblijven met Zwift, alle technieken echt onder de knie krijgen.
Dat kost gewoon echt heel veel tijd.
En zeker als je al die hobbyprojecten die ik er ook nog allemaal bij wil doen.
Ja, dan kan ik niet ook nog eens een keer gaan hobbyen met Flutter.
En goed, dat is mijn manier hoe ik ernaar kijk.
Ik weet dat er genoeg zijn die dat wel doen.
En dat is ook helemaal helemaal top en helemaal goed natuurlijk.
Maar nee, er wordt nooit wat getriggerd bij mij om daarnaar te gaan kijken.
Want doe je ook wat met Vapor, bijvoorbeeld Vapor Zwift?
Dat framework is voor back-end applicatie bijvoorbeeld.
Ja, kijk, dat is dan natuurlijk anders.
Dan zou ik morgen mezelf de app ook op Android kunnen lanceren met Zwift.
Dan blijf ik in het ecosysteem van Zwift.
Dus Vapor wat je opnoemt inderdaad is voor Zwift on the server.
Eigenlijk een framework die alles wat je nodig hebt voor een back-end server makkelijker maakt.
Ja, dat is wel iets wat ik interessant vind.
Alleen ja, ik heb nog niet de need gehad om het te doen.
Rocket Sim heeft geen back-end en Stock Analyzer heeft een back-end die eigenlijk gemaakt wordt.
Ik gebruik gewoon een publieke API waar ik voor betaal.
Dus ja, nee, ik heb er niet nog niet gehad.
Maar het zijn wel veel veel meer interessante projecten waar ik misschien wel eens een keer naar wil kijken.
Ik kan me ook wel voorstellen dat de belangrijkste API's die die hebben,
of een first party of een third party oplossing daarvoor.
Want wat is nou bijvoorbeeld een voorbeeld van een iOS API die je heel sterk en onderscheidend vindt?
Qua een SDK bedoel je, qua code bijvoorbeeld.
Laatst met de WWDC hebben ze bijvoorbeeld de nieuwe Navigation API gepubliceerd.
Hoe heb je een voorbeeld van een API die jouw voorkeur heeft,
waarvan jij denkt, die vind ik echt sterk en onderscheidend.
Dit is waarom ik Swift schrijf.
Ja, ik denk dat het dan eigenlijk in het algemeen gewoon de combinatie van Swift en Swift UI is voor mij.
Maar zeker voor mij als ontwikkelaar.
Ik weet gewoon dat er nieuwe versies komen van Swift en dat het doel wat ze stellen met Swift,
het makkelijker maken van apps en dergelijke.
Ik word er gewoon onwijs gemotiveerd van.
Ik vind het gewoon super tof waar het naartoe gaat.
Async Await was echt een grote release vorig jaar.
Daar heb ik echt naar uitgekeken, want dat was al twee, drie jaar bekend dat dat zou komen.
De manier van apps schrijven, dat past gewoon heel erg bij wat ik gewend ben natuurlijk,
maar wat ik ook gewoon heel fijn vind van het schrijven van apps.
Ik bouw nog steeds wel eens websites voor mijn site projects.
Dan kom ik in PHP of HTML.
Ja, dan ben ik gewoon weer blij als ik weer terug kan gaan naar Xcode en weer lekker Swift en SwiftUI kan gebruiken.
Maar er zijn wel echt toffe announcements geweest.
Misschien heb je Room API wel voorbij zien komen op Twitter,
waarbij je eigenlijk je hele kamer kan scannen en een 3D model eruit krijgt.
En vervolgens kan je daar uiteindelijk misschien meubels inzetten en dat soort dingen allemaal.
Het is wel duidelijk dat Apple echt aan het werk is richting augmented reality en mogelijk iets van een Apple Glass.
Of ja, geen idee hoe die gaat heten.
Ja, dat is wel tof om te zien waar dat naartoe gaat.
Volgens mij ARKit heet dat volgens mij.
Ja, ja, klopt. ARKit, Room API.
En zo heb je nogal wat CoreML voor machine learning,
wat ook best wel makkelijk is om te gebruiken relatief gezien,
want CoreML machine learning is niet altijd het meest makkelijke.
Ja, Apple doet echt wel toffe dingen in dat gebied.
Heb je er ervaring mee met die machine learning in deze specifieke?
Ja, wat ik weleens gedaan heb, je hebt een framework dat heet Fission Framework,
waarmee als je foto's hebt bijvoorbeeld,
dan kan je eigenlijk heel snel data uitkrijgen of er een hond op te zien is of een kat of allemaal dat soort.
Ja, tracks kan je eruit halen en op een hackathon heb ik dat wel eens gebruikt voor de collect app.
Waarbij je eigenlijk een board, een title als suggestie kreeg.
Dus als ik zie dat je vijf foto's van een hond upload,
dan geef ik als suggestie de titel hond bij wijze van.
Maar ook het zoeken naar bestanden, op je iPhone kan je zoeken op hond
en dan krijg je al de foto's van je hond. Dat kan je ook inbouwen in je eigen app.
Dat moet je echt zelf inbouwen. Dat gaat niet standaard.
Dus daar heb ik wel meegespeeld.
Ja, grappig. En wat doe je met je eigen apps?
Wanneer ga jij naar de nieuwe iOS?
Gebruik je alle betas van tevoren?
Bereid je dat voor of wacht je op een dat die officieel is?
Toevallig heb ik vandaag mijn iPhone naar iOS 16, publieke beta is er.
Ik was wel meteen geupdate met mijn test device naar iOS 16 om de apps te testen.
Je moet toch een beetje weten waar je staat.
Tegelijkertijd werkt het ook zo.
Apple op dit moment, ze hebben verschillende developer evangelists.
Het zijn eigenlijk contactpersonen die vragen of jij de hot new frameworks aan het implementeren bent voor jouw app.
Want als dat zo is, dan heb je kans dat je gefeatured wordt in de App Store.
Dus zometeen in september wordt iOS 16 officieel gelanceerd.
En dan zal je zien dat op de hoofdpagina van de App Store heel veel apps staan die zeggen
shared with you, collaboration in messages, lock screen widgets.
En op dit moment ben ik mijn stock analyzer app echt daarop aan het voorbereiden.
Dus ik ben verschillende features aan het inbouwen waarmee ik eigenlijk hoop op die boten kunnen gaan stappen.
Wat betreft featuring met iOS 16.
Oké, dus jij komt met vette widgets straks?
Nou ja, dat is ja, ik ben toevallig vandaag begonnen of heb ik afgerond het shared with you.
Dat betekent eigenlijk dat als jij het werkt in de music, heb je al een tijdje.
Dus als jij een album deel met iemand op messages, dan kan er wel eens gebeuren
dat je dan vergeet dat album echt te openen.
Nou, als je dan de music app opent, dan zie je daar shared with you.
Dus eigenlijk iets wat eerder met jou gedeeld is in messages.
En dan kan je dat album alsnog afspelen op dat moment.
Dat heb ik net afgerond.
Dus dat is mijn eerste iOS 16 feature waarmee ik al hopelijk een ticket op die boot heb.
Maar het volgende zal inderdaad widgets zijn, wat gewoon tof is om te bouwen.
Ik ben wel benieuwd hoe dat er weer aan toe gaat.
Ja, ik heb het idee dat je een beetje achter Apple aanloopt om features toe te voegen
die misschien niet voor jou producten het fijnste zijn, maar meer om in de aandacht te komen.
Is dat dan op de lange termijn ook verstandig?
Ja, dat is een heel goed punt.
Kijk, het werkt natuurlijk twee kanten op.
Want aan de ene kant weet ik dat Apple een soort van please.
Maar ik vind het ook gewoon tof om met de nieuwe technologie te werken.
True, het is een nieuw framework.
Dus ik ben ook wel gewoon benieuwd.
Ik ga niet Room API inbouwen waarmee ik kamers kan scannen,
terwijl ik een stok app heb.
Ik blijf wel binnen mijn domein.
Maar ja, je hebt wel gelijk.
Ik ben wel met een soort van roadmap aan het aanpassen
op wat Apple wil zien.
Maar tegelijkertijd zal het mij ook niet in een minder goede positie brengen.
Nee, precies.
Dus geen Room API in combinatie met dat hij je kamers scant en alle producten
waarvan jij de aandelen bezit of zo, dat hij die oplicht?
Je brengt me wel op een idee dat als je bijvoorbeeld een Amazon pakketje binnenkrijgt
en je scant die, dan kan je aandelen van Amazon kopen.
Ja, misschien moet ik er toch nog eens naar kijken.
Tenzij het pakketje beschadigd is.
Ja, precies.
Dan zie je de aandelen ook omlaag gaan.
Je hebt één quintillion percentage omzet bijgedragen of zo.
Wat vind je van Xcode?
Ja, ik ga heel eerlijk zijn dat het niet het meest geavanceerde editor is.
En dat uitzicht vooral in...
Ik ben regelmatig in San Francisco geweest, in person bij WBDC.
En dan zit je in een zaal met 5000 app-ontwikkelaars.
En dat wordt vaak wel gezegd, schaapjes.
Dus als er eentje klapt, dan klapt iedereen mee.
En het grappige is, ik weet nog dat op een gegeven moment
een refactor-methode werd aangekondigd.
Dat is het renemen van een variabele in een klas.
En dan worden alle properties in één keer gerenamed.
Nou, als jij dat net hebt geschreven, met vsharpen, was het toch al over?
Of resharp?
Back in the days.
Maar goed, in ieder geval, refactoring, dat is het standaard.
Dat is heel normaal.
Dat is echt gewoon bij het liefde iets wat je moet hebben.
En we zaten in die zaal en dat werd aangekondigd.
En de hele zaal ging helemaal los, want je kon refactoring in Xcode.
En ik dacht ja, maar dit is toch gewoon...
Ze zijn eigenlijk de tijd aan het teruggehalen.
Had er al lang al in moeten zitten.
En dat is wel een beetje het verhaal van Xcode.
Het is wel een stuk beter dan in het begin jaren.
De syntax highlighting ging heel vaak stuk, bijvoorbeeld.
En dat is echt wel frustrerend.
Bugs die eigenlijk geen bugs zijn.
Je sluit Xcode af, je opent Xcode weer en opeens doe ik je project het wel.
Dat zijn wel verhalen die ik heb ervaren.
Het wordt wel steeds beter.
Ze zijn echt wel verbetering aan het doorvoeren.
De beeldtijden zijn af en toe echt nog steeds best wel dramatisch.
Waarbij een website, ja, je refresht en dan doet het.
Een app kan je soms wel eens gewoon 30 seconden moeten wachten voor dat je nieuwe code werkt.
Dat is wel gewoon balen.
Dat is een beperking van Swift overigens.
Dat is niet per se Xcode.
Maar ja, ik hoop toch wel echt dat de toekomst van Xcode er een beetje beter uitziet.
Ja, ik ben een beetje eens.
Het wordt steeds beter.
Maar af en toe kan het heel frustrerend zijn.
Als ik in de console wat type om een variabel te weer te geven, dat hij dan smart completion
doet.
En terwijl ik het gewoon precies goed intype, complete hij iets anders en dan zoekt hij
niet wat ik wil dat hij zoekt.
Dat kan me dood en erg.
Maar dat is toch nog zoiets?
Auto completion, dat zou er gewoon...
We zitten in 2022.
Dit wiel is al lang al uitgevonden, maar toch weet Apple er nog een zootje van te maken
af en toe.
Schrijf je alleen Xcode?
Ja, wat doe jij Wouter?
Ja, ik schrijf Xcode.
Ik deed eerst altijd alles in VS Code.
Dus Visual Studio Code, zeg maar.
Zelfs wanneer het niet logisch was, kon je door middel van modules et cetera en add-ons
kon je het zo omklussen dat het wel werkbaar was.
En met Swift heb ik het geprobeerd.
In ieder geval, je kan natuurlijk printen en dat gaat allemaal prima.
Maar ja, testen, dat is bijna onmogelijk.
Je hebt gewoon die test suite nodig van Apple wat dat betreft uit Xcode.
Ja, en tenzij AppCode gebruikt, VS Code gebruikt onderlich aan dezelfde technieken
die Xcode ook gebruikt.
Dus de plugins die beschikbaar zijn voor VS Code gebruiken dezelfde syntax highlighter
en source kit logica als het ware.
Dus waarschijnlijk kom je daar min of meer dezelfde dingen tegen tenzij Xcode qua
performance natuurlijk achterloopt op VS Code wat nog wel eens een ding is.
Het werkte prima, maar op het moment dat jij je UI wil laden, dan werkt het niet.
Ik weet niet of dat ondertussen aangepast is en mocht er een luisteraar zijn die
het wel op een juiste manier werkt heeft, alsjeblieft stuur wat in.
Ik heb ook gelezen over de JetBrains IDE.
Maar daar hoor ik eigenlijk niemand over.
Ja nee, dat is echt wel een populaire alternatief.
JetBrains loopt gewoon echt voor op Xcode wat betreft refactoring.
Dat is wel echt een echt een grote pluspunt om om JetBrains app code te gebruiken.
Maar ze lopen altijd achter.
Dat is gewoon het nadeel, want zeker met zo'n WWDC.
Dan komen er nieuwe features en dergelijke.
Ja, dat zit dan in Xcode en dan moeten hun eigenlijk pas beginnen met development
om dat allemaal weer bij te klussen.
Dus je loopt soms wel eens achter de feiten aan.
En voor mij is dat genoeg reden om binnen Xcode te blijven.
Je kan dat wel begrijpen hoor.
Als je al die nieuwe libraries en modules moet gaan ondersteunen,
ook vanuit Xcode of daaronder liggen.
Ja dan en als Xcode het zelf voldoende goed doet, waarom niet?
Ja, kan ik me ook wel voorstellen dat je dan liever gewoon deals
met de ja, de duivel die je kent, zeg maar.
Ja, ja, ja, ja, precies.
Ja, maar er zijn jaren geweest dat ik toch wel wat meer issues had met Xcode.
Ja, dan ga je toch verder kijken en dat zijn er wel vaak de redenen
voor mensen om een andere Intellië editor bijvoorbeeld te gaan proberen.
Zijn er nou in je hele carrière?
Je hebt gewoon een heel heel assortiment aan apps ontwikkeld,
inclusief je eigen projecten natuurlijk.
Zijn er ook opdrachten die je ooit hebt afgewezen omdat je er gewoon
niet achter kon staan?
Ik ben wel altijd heel solidaire geweest.
Dus ik heb gewoon eigenlijk altijd wel gewoon gedaan wat me gevraagd werd.
Ik moet ook zeggen dat ik nu ik ben, want dat is ook misschien wel
verwend geweest door ik heb gewoon echt wel toffe projecten mogen doen
bij zowel Miraboe als bij bij Triple.
Kijk bij WeTransfer is het natuurlijk allemaal een beetje hetzelfde.
Het zit allemaal in hetzelfde spectrum.
Kijk, ik ben wel op een gegeven moment weggegaan bij Miraboe
omdat daar gewoon geen native projecten kwamen en daar werd vooral
ingezet op Koni.
Dat is ook een hybride platform zoals Flutter en dergelijke.
Ik ben er in principe nog in meegaan.
Ik heb ook een cursus gevolgd voor Koni.
Ja, daar raakte ik gewoon echt mijn passie kwijt.
Ik was eigenlijk nog verder achterop aan het raken, want Koni
hybride platform, die kan dus pas DPI's die nieuw zijn
gebruiken nadat ze gelanceerd zijn.
Dus je loopt altijd achter de feiten aan.
Dan heb je de platformbugs van IOS, maar dan bovenop nog eens
de bugs van het hybride platform.
Ja, daar werd ik gewoon echt ongelukkig.
En toen ik daar bij Miraboe werkte, heb ik wel gewoon
keurig mijn best een beetje voortgezet en het project zo
goed mogelijk laten runnen.
Maar dat ik weg was, was ik eerlijk gezegd wel blij
omdat ik gewoon mijn passie daarin kwijtraakte.
Ja, bizar.
Ja, het is wel goed wat dat betreft dat je dan gewoon
kiest voor waar je wel energie van krijgt en dat je dan toch
wel besluit om weer terug te gaan.
Waar je vandaan komt eigenlijk.
Ja, dat kan ik ook iedereen wel aanraden.
Kijk, het was echt geen makkelijke stap.
Ik vertel het nu als iets zijn wat heel logisch was,
maar ik had het bij Miraboe echt naar mijn zin.
We hadden echt een leuke groep collega's.
Je hebt echt vrienden natuurlijk.
Dat heb je bij elk bedrijf.
Maar tegelijkertijd wist ik ook.
Bij elk nieuw bedrijf ga je ook weer nieuwe vrienden
vinden en ook leuke collega's.
En als dat niet zo is, ja, dan ga je gewoon
nog een keer verder kijken.
Zo stond ik er eigenlijk een beetje in.
En het belangrijkste was voor mij om mijn passie terug te vinden,
waarbij ik ook wel geprobeerd heb om dat
natuurlijk initieel gewoon te vinden bij Miraboe zelf.
Maar dat kwam gewoon niet uit destijds en het geeft niet,
maar dat was voor mij wel genoeg reden om gewoon weer verder te kijken.
Ik zit te denken of we nog even ergens met Swift de diepte in kunnen.
Jij beschrijft ook op je blog van alles over Swift.
Wat is eentje waar je veel lol aan hebt beleefd,
een recente blog?
Ja, ik schrijf heel veel inderdaad.
Ik heb onlangs mijn 200ste artikel gepubliceerd en ik schrijf een artikel elke week.
Dus dat betekent 200 weken artikelen.
Dat zijn best een hoop om een favoriet uit te moeten kiezen.
En waar ik heel erg van geniet is de wisselwerking tussen
dingen die ik leer buiten wetransformen als zijn de dingen die ik leer binnen wetransformen.
Dus mijn artikelen bestaan ook uit dingen die ik leer tijdens mijn werk bij wetransformen.
Maar soms komt er ook gewoon iets voorbij wat ik in een stockanalyzer heb gemaakt bijvoorbeeld.
En onlangs hebben we bij wetransformen de ratings verbeterd.
Het zag er best best slecht uit dat we net gelanceerd waren.
We hadden veel negatieve App Store ratings en dat komt gewoon omdat je app lanceert
nog niet compleet is.
En de meeste mensen die focaal zijn in de App Store zijn de mensen die niet tevreden zijn.
Mensen die wel tevreden zijn zullen niet zo heel snel een App Store rating plaatsen.
Wat er gebeurt binnen het bedrijf.
De mensen bovenop die kijken in de App Store en die zien de slechte rating.
En dat is eigenlijk het enige wat ze zien en die gooien dat over de schutting.
En ze zeggen van fixen.
En daar komen ze eigenlijk een beetje mee.
We hadden genoeg manieren om te fixen waarin het begonnen.
Maar we hebben het wel serieus aangepakt.
En ik denk dat iedereen het wel herkent dat je een app opent en je wil eigenlijk
gewoon even snel je solo checken of iets.
En dan krijg je opeens dan, hey, wat vind je van de app?
En dan denk je, ja hallo, ik wil gewoon even snel kijken wat er in die app staat.
Waarom kom je nu met deze melding?
Dit is dus eigenlijk een voorbeeld van de techniek dat we hebben ingebouwd,
maar dan op een goede manier.
Dus we kijken in de app.
Als je bijvoorbeeld al twee minuten bezig bent in die app,
dan geef je eigenlijk een soort van aan dat je tijd hebt.
Dus je bent al lang bezig in die app.
Als we dan ook nog eens zien dat je 3 of 4 transfers verstuurd hebt,
dan weten we dat je ook wel een soort van happy user bent,
want je hebt meerdere keren iets verstuurd.
De kans is best aanwezig dat als we jou nu vragen om een rating te plaatsen,
dat je dat best wel wil doen omdat je gewoon blij bent met de app.
En die techniek hebben we ingebouwd.
Heel veel succes mee gehaald.
We hebben nog steeds heel veel slechte ratings,
maar doordat we zoveel goede ratings hebben nu,
vallen die eigenlijk niet meer op.
We zitten nu volgens mij op 4.6 in de App Store
met best wel heel veel gebruikers.
Dus dat is gewoon eigenlijk wel iets om trots op te zijn.
En daar heb ik een artikel, volgens mij een logische wijze.
Ja, dat is wel een artikel waar ik veel goede responses op heb gehad.
Waar ik ook echt wel trots ben en achtersta.
Want die tijd, hoe heb je dat onderzocht überhaupt?
Hebben jullie daar een soort van psycholoog bij betrokken geraakt?
Of hebben jullie gewoon focusgroepen gehad?
Of gewoon gokken?
Het komt eigenlijk oorspronkelijk voor mij terug uit bij Buurader.
Bij Buurader hadden we eenzelfde oplossing gemaakt.
Want daar is het helemaal om mensen die willen even snel zien of het regent of niet.
Dus daar hebben we dezelfde technieken toegepast en heel succes gehaald.
Bij de WeTransfer App hebben we eigenlijk wel een soort van gok gedaan.
Maar we weten inmiddels ook wel vanuit data een beetje te bepalen wat power users zijn.
Dus als je bijvoorbeeld ziet dat on average een gebruiker twee transfers maakt.
Dan kan je al stellen dat drie transfers uniek is of een soort van power user aan het worden is.
En op die manier kan je wel een soort van slimme keuzes maken.
En je gaat ook logisch nadenken. Dus je doet het niet on-launch.
Je doet het niet als iemand net een transfer aan het maken is.
Dan ga je hem niet storen daarin.
Je doet het eigenlijk nadat een transfer klaar is.
Dus eigenlijk op een stil moment dat een gebruiker klaar is met wat hij initieel wilde doen.
En dan heeft hij een soort van zijn doel bereikt.
Dat kan hij achter zich laten.
En als hij dan potentieel ook nog tijd over heeft.
Dan kan het best een mooi moment zijn om zo'n rating te vragen.
En dat gaat vaak ook gewoon dat het niet gebeurt.
Maar ja, de mensen die het wel doen, dat zijn toch weer erbij.
Dat zorgt er weer voor dat je appen beter opstaan in de app store.
Meer gevonden wordt en meer geïnstalleerd.
Heb je enig idee hoeveel mensen dat scherm krijgen en ook daadwerkelijk wat invullen?
Hoe hoog is het percentage?
Probleem is dat platform-wide vanuit Apple wordt het ook wel een soort van gelimiteerd.
Dus we kunnen niet elke dag zo'n pop-up pushen, zeg maar.
Dus je kan eigenlijk tegen Apple zeggen van hey, wij willen nu de rating laten zien.
Maar dan is het nog maar de vraag of ook echt die pop-up tevoorschijn komt.
Op een bepaalde Apple.
Je krijgt sowieso maar drie kansen per jaar per appversie, volgens mij.
Dus volledige statistieken heb ik niet.
Maar de statistieken die ik wel heb, is eigenlijk de app store rating.
Daar ging het ons in die end om.
En die is wel echt gigantisch gegroeid sindsdien.
Dat is gewoon duidelijk te zien wanneer die app live is gegaan, die versie.
En hoe de ratings zijn gegroeid.
Oké, nice.
Ik vind het ook wel slim hoe je eigenlijk iets wat best wel een irritante handeling is,
gewoon toegankelijk hebt gemaakt op deze manier.
Ja, zeker.
Het is iets wat we veel meer doen.
Op dit moment zijn we ook A-B tests aan het doen.
Het is echt experiments.
Eentje waar ik heel interessant over ben is, je kan een transfer uploaden in verschillende chunks.
En die chunks kunnen 5 MB groot zijn, maar ook 10 MB of 15 MB.
En wij kunnen bijvoorbeeld zien dat in een land als India,
failen de transfers veel vaker.
Dus we willen kijken of we die kunnen improveen.
En door daar de chunk size bijvoorbeeld naar 5 MB te zetten,
in plaats van de standaard 15 MB die we hebben,
vergroten we misschien wel de kans dat een chunk vlak voordat het internet weg gaat.
Alles afgerond.
En daarmee hopen we eigenlijk het soort van de transfer success ook te vergroten.
Maar goed, we willen het niet zomaar aanzetten,
dus hebben we een experiment gestart in India,
waarbij we een subset van de gebruikers een kleinere chunk size assignen.
En dan hopen we eigenlijk daarmee te kijken van,
hey, zien we bij die subset van gebruikers een betere success rate van de transfer creation?
En daarmee bouw je eigenlijk steeds een stabielere app op.
En dat trek je dan eigenlijk aan de serverkant?
Ja, inderdaad. Dus op het moment dat de app gelanceerd wordt,
wordt er eigenlijk aan onze experiment server gevraagd van,
hey, zit ik in een experiment of niet?
Zo niet, blijft alles bij default.
Zowel dan als je de app bezit, waarbij de logica ook ingebouwd is,
om zo'n experiment te activeren,
wordt het experiment geactiveerd en zal je een andere ervaring hebben.
Maar in dit geval valt het voor de gebruiker waarschijnlijk niet eens op.
Nee, nee, nee. Dat is ook gewoon onzichtbaar.
En gebruik je ook weleens dingen als feature toggles,
die je dan aan kan zetten op de server,
dat mensen meer of minder features krijgen?
Ja, zeker. Advertenties zijn bij WeTransfer
niet per se bekend, maar die zijn er wel.
En die zijn eigenlijk bekend en grootgehoord door onze advertenties,
omdat ze er vaak mooi uitzien.
Er zijn zelfs mensen die advertenties opslaan,
omdat ze ze zo mooi vinden.
En dat is dan voornamelijk op de website.
Maar we hebben ze nu ook op de mobiele app.
En op dit moment wordt dat uitgerold als een feature flag
voor een deel van de gebruikers om te kijken van
hoe beïnvloedt het het aantal transfers
wat gecreëerd wordt of ontvangen wordt en dergelijke.
Omdat je natuurlijk niet je business case
helemaal overhoop wil gooien met de nieuwe feature.
Nee, nee, nee. Je kan dan ook... ja.
Oké, nou slim.
Wie gebruikt WeTransfer gemiddeld qua leeftijd?
Ja, we hebben wel vele leeftijden,
omdat we gewoon heel veel gebruikers hebben.
Maar de core business zijn wel creatives, freelancers,
fotografen, film editors, dat soort gebruikers.
En die range van, ja, ik denk toch wel 25 jaar
tot 40, 45 misschien.
Maar goed, dit is op basis van mijn ervaring
van het werk bij WeTransfer.
Ik heb niet echt de harde data ervan,
maar het klinkt wel een soort van logisch als subset van gebruikers.
Omdat dit mensen zijn die opgegroeid zijn met de techniek,
jong zijn en weten hoe het werk bewijsvalt.
Maar tegelijkertijd hebben we ook heel veel gebruikers
die gewoon boven de 50, boven de 60 zitten en dergelijke.
Ja, ik kan me ook wel voorstellen dat je niet zomaar
de hele demografie op tafel kan leggen, natuurlijk.
WeTransfer is gewoon zo'n concept dat, ja,
dat wordt eigenlijk vanaf de middelbare school al geïntroduceerd
bij het delen van grote hoeveelheden data.
Ja, je groeit er mee op, denk ik.
Ik denk tegenwoordig wel, ja.
Ja, absoluut.
Dus ja, heel veel mensen kunnen ook niet meer zonder.
Even goed, kijk, natuurlijk kan je straks met je mail
veel grotere bestanden versturen,
maar ja, dan ga je wel met je persoonlijke e-mail bestanden versturen,
terwijl je het misschien juist wel via een service als WeTransfer wil doen.
Dus ja, het is zeker wel bekend bij heel veel mensen.
Ja, ik zat net aan die advertenties te denken,
maar volgens mij komt dat ook,
moet ik even diep in mijn geheugen graven,
dat was toch eerst minder duidelijk een onderdeel van WeTransfer?
Is dat er niet bij ingekomen doordat er iets is gemerched ofzo?
Nee, nee, het is de oorsprong van WeTransfer,
waardoor de advertenties zijn ontstaan,
komt eigenlijk voort uit een van de founders, Nalde,
die had zijn eigen blog,
en op zijn blog had hij op de achtergrond fullscreen advertenties.
Het verhaal doet rond dat er in Amsterdam magazine ontwikkelaars waren,
die reden met een cd'tje op de fiets van het designbureau naar de magazineontwikkelaars,
of naar de printer,
en dat is natuurlijk time consuming om met de fiets van A naar B te gaan.
Dus bedachten ze van hey, waarom maken we geen file transfer service?
Nalde had dus het idee om meteen die advertenties erbij te doen,
dus die zijn er toch echt van dag 1 bij geweest.
Oké, dan ga ik nog even dieper graven hoe het in mijn hoofd zit.
Dat maakt verder niet uit,
dus ik denk niet belangrijk voor de verloop van dit gesprek.
Is er een Swift feature, Swift iets wat echt ontbreekt,
waarvan je zegt die wil ik nu hebben,
of die er aan staat te komen, waarvan je weet dat die komt?
Nou kijk, al had ik je maar dit 2 jaar geleden gevraagd,
toen waren er nog zoveel grote dingen in te bouwen,
zoals Async Await,
dus echt het managing van asynchronen requests en dergelijke.
Op dit moment is de enige grote request die ik nog heb,
is Xcode verbeteren,
maar ook CoreData.
CoreData is eigenlijk mijn SQL van Swift.
Dat is gewoon heel oud.
Ik heb ooit een keer de code mogen bekijken
met een ontwikkelaar van het CoreData framework tijdens WWDC.
Dan kan je zo'n grote zaal ingaan,
waar alle Apple engineers zitten,
en dan kan je direct vragen stellen met een probleem
waar je maar niet uitkomt.
Die code zag er echt...
Het was duidelijk te zien dat het een oud framework is.
Laten we het daarbij houden.
Je gaat het natuurlijk niet zomaar omschrijven,
want dat zijn hele gevoelige frameworks.
Heel veel apps gebruiken CoreData om lokaal data op te slaan.
Als je daar een foutje in maakt met een nieuwe versie daarvan,
wat helemaal in Swift geschreven is,
dan ga je er maar aan staan.
Het is een beetje valse hoop misschien,
maar ik hoop toch echt wel een keer dat dat framework
echt een refreshment krijgt.
Maar zouden ze dan niet beter een nieuw van de grond
of opgebouwd alternatief kunnen gaan aanbieden?
Want dat vermoed ik eigenlijk,
want CoreData, daar blijven ze eigenlijk al heel lang
een beetje van weg.
Ja, precies, dat je eigenlijk zelf die migratie lokaal
zou moeten doen en dat het niet per se
een automatische migratie zou zijn.
Precies, je moet kiezen, ga maar, en doe het dan maar zelf.
Ja, nou, dat zou echt...
Ja, dat zou als muziek in de oren klinken.
Niet voor iedereen, denk ik.
Bij Collector hebben we een hele grote CoreData database.
Ja, dat wordt niet heel leuk om die over te schrijven,
maar ja, dat is misschien wel de beste oplossing.
Ik weet het niet.
Ja, CoreData, dat is toch echt altijd wel vaak
een beetje zwoegen.
Ja, absoluut.
En weinig resources over te vinden.
Er wordt niet heel veel publiek over geschreven.
Ik heb toevallig vorig jaar heb ik een aantal talks
op conferenties voor gedaan, omdat ik het echt wel nodig vond
en er echt diep in ben gegaan.
Dus dat heeft misschien een gat opgevuld,
maar ja, je hebt zoveel vragen die je niet makkelijk kan beantwoorden
en zoveel edge cases en dergelijke.
Omdat elke app wat dat betreft ook wel uniek is.
Iedere database is anders.
Ja, dat maakt het wel lastig.
En wat heb je tijdens die talks verteld over CoreData?
Waar steed je dan aandacht aan?
Nou, mijn talk was CoreData best practices,
dus dat ging eigenlijk heel breed.
Ik heb eigenlijk alle leerdings die ik van Collector
over de jaren heen heb opgedaan.
Heb ik allemaal samengevoegd in een project ook gestopt,
dus ook open sourced.
Eigenlijk ook met als doel dat het voor iedereen bereikbaar is
en dat we een soort van samen een knowledge base kunnen opbouwen.
En kijk, als ik een talk maak,
dan schrijf ik eigenlijk eerst vier, vijf weken artikelen
die uiteindelijk de talk vormen.
Dus het is echt een soort van win-win geworden.
Maar het ging voornamelijk over best practices.
Dus hoe je de laatste technieken kunt gebruiken
en hoe je fouten kunt voorkomen.
Cool.
Want dat bloggen, dat doe je dus nu al meer dan vier jaar.
Ik had even wat statistieken opgezocht.
Ik zag dat je al meer dan 30.000 subscribers hebt op zowel Twitter,
10.000 subscribers voor je nieuwsbrief
en volgens mij nog 30k volgers op ook LinkedIn, geloof ik, of je blog.
Ja, want ja, komt ongeveer wel.
En toen ik jou vroeg van hoe ben jij begonnen met bloggen,
toen gaf je eigenlijk aan van het is gewoon documentatie voor mezelf.
Maar daarnaast gaf je ook aan dat je niet iemand bent die veel boeken leest.
Dus dat vond ik wel opvallend, want je deelt dus ongelooflijk veel content.
Je bent gewoon een auteur om even op z'n zacht uit te spreken, zeg maar.
What up?
Ja, kijk.
Heel veel lezers die reageren wel eens van dat ik artikelen heel short en to the point uitleg.
Mijn gedachten gang bij het begin af aan was altijd van ik maak.
Ik houd niet van van lezen en mijn lezers houden het niet van.
Nee, ik moet anders zeggen.
Ik houd niet van lezen, dus mijn artikelen moeten zo kort en bondig mogelijk zijn.
Dat is ook echt de tactiek die ik gebruik, maar mijn artikelen short en to the point duidelijk uitgelegd.
Ik zeg wel eens alsof mijn moeder het kan begrijpen.
Ik heb ooit mijn moeder moeten uitleggen hoe een mech werkt.
Ja, toen ben ik echt gewoon in je pionneke taal gaan uitleggen hoe je een bestandje in de prullenbak sleept.
Dat is alsof je een prulletje in de prullenbak sleept.
Weet je, gewoon heel letterlijk uitleggen, dergelijke.
Dus ja, ik houd niet van lezen, dus daarom houd ik mijn artikelen ook kort.
Want ik ga er ook van uit dat mijn volgers niet van lezen houden.
Nee, maar wat je zegt klopt.
Kijk, als ontwikkelaar ben je gewoon eigenlijk wel verplicht om bij te blijven.
Anders loop je achter de feiten aan.
En voor mij is dat geworden dat ik elke week een nieuw onderwerp zoek waar ik nog niet alles van weet.
En dat schrijf ik op.
En ja, misschien weet je het wel van vroeger.
Als je een spiekbriefje maakte, schreef je dingen daarop.
En dan ging je de toets in en dan wist je precies wat er op het spiekbriefje stond.
Want je had het opgeschreven en het hele spiekbriefje gebruik je niet.
Voor mij werkt dat in ieder geval zo.
En dat werkt dus ook zo met mijn artikelen.
Door dat op te schrijven en uit te leggen op een duidelijke manier leer ik het onderwerp zelf ook beter.
En het gebeurt heel vaak dat ik op Google iets zoek.
En dan kom ik erachter dat ik er een jaar geleden over geschreven heb.
En dan weet ik dus precies van hoe ik het destijds heb gedaan.
En dan kopieer ik de code en dan kan ik weer verder.
Ja, het is echt een persoonlijke knowledge base geworden.
Maar ook een manier voor mij om als ontwikkelaar up-to-date te blijven en bij te blijven.
Ik moet wel zeggen dat ik het knap vind dat je het elke week doet.
Stel, heb je elke week een onderwerp?
Ja, ik heb een hele lange lijst op Trello met allemaal onderwerpen.
En die bezoek ik eigenlijk alleen als ik op dat moment geen onderwerp heb.
Zoals vandaag heb ik Shared With You in gebouwd in Stock Analyzer.
Je kan erop wachten dat ik de dag daarover ga schrijven omdat het top of mind is.
Maar het kan ook zijn dat ik misschien net iets op WeTransfer heb geleerd.
En dat ik daar dan over ga schrijven.
En hoeveel tijd kost je ongeveer het schrijven van zo'n blog?
Je maakt een goed punt hoor.
Het is zeker niet makkelijk om elke week te schrijven.
Maar het is ook iets, je wilt niet stoppen.
Het is een soort streak.
Net zoals op je Apple Watch dat je je conditieringen constant voor wil houden.
Voor mij is dat ook met schrijven.
Kijk, als ik nu twee, drie weken niet ga schrijven, dan wordt het heel moeilijk om het weer op te pakken waarschijnlijk.
Maar het betekent ook hoe vaak je schrijft, hoe beter je erin hoort.
Mijn eerste artikel kostte me misschien al vier, vijf uur.
En nu ben ik soms in een uurtje klaar omdat ik zo snel schrijf.
Ik ben er veel beter in geworden.
Maar ik schrijf ook voor mezelf.
Dat zeg ik.
Om een reden.
Als ik denk dat het goed genoeg is, dan gooi ik het gewoon online.
En ja, je hebt het mee te doen.
En kijk, heel eerlijk, het eerste jaar dat ik schreef,
betekende dat wel een lagere kwaliteit dan nu, omdat ik meer ervaren ben.
Dus ja, mijn eerste versie is vaak al veel beter dan iemand die net begint met schrijven.
Maar ja, het zorgt er wel voor dat ik niet morgen weer terugkom bij een artikel.
En in plaats van het afschrijven, ga ik het weer helemaal herschrijven,
omdat ik denk dat het dan beter kan.
Waardoor je uiteindelijk een artikel helemaal niet publiciteert.
Dat hoor ik toch best wel vaak van beginnende bloggers.
Ik heb ook geen angst dat iemand gaat zeggen dat ik het niet goed doe.
Ik heb in die vier, vijf jaar tijd nooit negatieve feedback gehad.
Ik heb altijd wel feedback gehad van hey, je schrijft niet dit en dit,
misschien moet je het zo schrijven, dan klopt het beter.
Nou, top, heb ik weer wat geleerd, pas ik mijn artikel aan, is het weer beter.
Er is eigenlijk geen reden om falenangst te hebben.
Dat zorgt er allemaal wel voor dat ik vrij snel klaar ben met een artikel
en het ook vol kan houden.
En is dit ook een practice die je aan zou raden aan andere developers
beginnend dan wel niet beginnend?
Op een of andere manier?
Je moet toch bijblijven.
En voor iedereen werkt dat anders.
Sommigen kijken een video.
Maar goed, ik weet niet hoe het voor jullie is, maar als ik een video kijk,
dan vergeet ik het ook wel weer heel snel.
En als ik een artikel schrijf, moet het toch een beetje het zon zijn.
Ik moet echt wel een beetje weten.
Ik moet het ten slotte uitleggen aan anderen.
Je leert het onderwerp veel, veel beter.
Dus ja, ik zou het zeker aanraden
en begin een blog dan niet met het doel van
ik wil dertigduizend volgers op Twitter krijgen.
Nee, begin gewoon een blog om voor jezelf je learnings bij te houden.
Zodat je over een week weer terug kan komen van
hey, hoe deed ik dat ook alweer in kordade?
En ja, het voordeel is dan dat mensen je kunnen gevolgen
en dat je misschien uiteindelijk sponsors op je blog kan vragen.
Of dat je uiteindelijk zelf heel makkelijk dingen terug kunt vinden.
Ja, zo zou ik het wel willen aanraden, zeker.
Heb je die blog site zelf gebouwd?
Of gebruik je er een soort van CMS voor?
Want ik zag dat die best wel lijkt op Swift by Sundel.
Maar ik weet niet of het gewoon stom toeval is of?
Ja, hij lijkt op heel veel Swift blogs
en dat komt omdat oranje de kleur van Swift is.
Dus dan gaat het al heel snel.
En kijk,
wat er nog een valken is voor veel mensen die een blog starten
is dat ze met de fancy static site generator aan de slag gaan.
Vervolgens twee dagen bezig zijn om een blog online te zetten.
Een beetje een mooi design willen, maar nog niet tevreden zijn.
Een puntje bepaalt je, ben je vier maanden verder,
heb je nog geen artikel geschreven.
Dus mijn echte doel daarmee was eigenlijk,
ik wil wegblijven van zelf websites schrijven.
Dus ik ben gewoon met WordPress gestart.
En dat had wel nadelen,
want static site is veel sneller natuurlijk.
Maar door de jaren heen heb ik ook wel dingen geleerd.
En doe ik het steeds weer.
Pas ik het een beetje aan,
dan heb ik ook heus wel wat code geschreven in PHP
om mijn website beter te maken.
Maar nu met Cloudflare wordt het aesthetic geserved
en dan zie je echt mega snel.
En search engine optimisatie zit ook dik in orde daardoor.
Ik installeer een plugin op WordPress en het werkt.
Ik hoef niet zelf aan mijn dingen te doen.
Ik hoef niet zelf uit te zoeken hoe SEO werkt.
Daar profiteer ik eigenlijk gewoon van de kennis van andere mensen.
Het gaat mij om het bloggen,
het gaat mij om kennis te delen
en het gaat mij niet om het te leren van een blog te bouwen.
Dus ik heb wel heel bewust voor WordPress gekozen.
Ja, het is eigenlijk samenvattend aan developers die overwegen om te gaan bloggen.
Pak gewoon iets zo snel mogelijk op en ga gewoon schrijven
in plaats van nadenken over hoe je website eruit moet zien.
Ja, eigenlijk wel.
Ja, en het voordeel van WordPress,
ik geloof dat 30, 35 procent van alle websites op WordPress rijdt.
Ja, er is een plugin voor alles.
Dus ja, je hebt er zoveel voordeel aan.
Daar ga je echt wel van profiteren.
En mij heb je geïnspireerd in ieder geval.
Dus ik ga ook maar eens wat bouwen dit weekend.
In WordPress dan, of iets anders?
Ja, goed idee.
Ik denk zeker dat je er geen spijt van krijgt
en dat je er echt een beter ontwikkelaar van wordt.
En ja, dat heeft weer vele andere voordelen.
Dus ja, ik zou het zeker doen.
Ja, ik schrijf nu voornamelijk voor mezelf dan.
Dan doe ik dat in Notion.
En dan heb ik een hele, ja, mindmap gemaakt
met allerlei onderwerpen die ik moet gaan leren.
Want het is gewoon een gigantisch groot ecosysteem
die je, ja, eigen moet gaan maken.
Ja, en om dat overzichtelijk te houden,
probeer ik het gewoon onderwerp voor onderwerp aan te vliegen
en zelfs daar, ja, verwatert er weer wat
en dan pak je het even later weer op en dan probeer je het weer opnieuw.
Ja, nou, ik zou zeggen, schrijf je learnings op in een artikel
en je zal zien, ja, je zal natuurlijk wel iets opschrijven
wat misschien door iemand anders ook al geschreven is.
Maar het is wel jouw perspectief.
Het zijn wel jouw learnings waar je in ieder geval zelf naar terug kan komen.
En ik durf te weren dat er zeker één iemand anders is
die jouw artikel gaat vinden
en die weet te vinden wat hij nodig had.
En ja, dat zou toch eigenlijk al genoeg reden moeten zijn om het te doen.
Ja, dat klinkt gewoon hartstikke waardevol voor iedereen eigenlijk.
Absoluut.
Nou, dan zijn we min of meer bij tips voor juniors aangekomen.
Dat was volgens mij Wouter ook echt een onderwerp
wat je even na wilde vragen, toch?
Ja, nou ja, ik vooral omdat ik zoveel materiaal over je heb gelezen
heb gebruikt voor mijn projectjes.
Volgens mij heb ik nog stiekem één van jouw artikelen gebruikt
voor mijn technische assessment bij mijn baan,
waar ik in een of andere instantie ga beginnen.
Dus ja, het is gewoon ongelooflijk gaaf om je allereerst
hier gewoon live te kunnen spreken.
En ja, ik heb dus altijd een Visual Studio Code geprogrammeerd
en ik ben eigenlijk even benieuwd van,
joh, heb jij nog Xcode tips of bepaalde bronnen
waarvan je zegt die moet je hebben?
Nou, dat zal je niet verbazen,
maar ik heb een categorie op mijn website voor Xcode.
Nou, dan ga je naar Sint Bernhard.
Nee, dat kan wel, maar ik was ook benieuwd naar hem.
Nee, daar staan heel veel tips in.
Maar kijk, waar we als Apple ontwikkelaars gewoon heel veel voordeel aan hebben
is dat WWDC gewoon echt een goudmijn aan sessies oplevert.
Ik zou je zeker aanraden om die sessies te kijken.
En wellicht is het niet handig om de sessies van dit jaar te kijken,
want dat zijn de laatste features die je niet altijd al meteen kan gebruiken.
Maar ga eens kijken naar twee jaar terug.
Dat was iOS 13 of iOS 14.
Dat zijn dingen die je nu vandaag de dag meteen kan gebruiken.
En ik zal je zeggen dat als ik die sessies ga kijken,
nu ga ik ook heel veel dingen tegenkomen dat ik dacht van oh ja, dat was ook zo.
Maar dat ben ik destijds vergeten omdat ik het toch nog niet kon gebruiken,
want onze apps waren iOS 12, 13 en 14 en niet alleen 14.
En nieuwe features kun je alleen in de laatste versie gebruiken.
Dat is één van de tips.
Maar de video's aan zich zijn gewoon heel waardevol.
Apple legt daar dingen echt heel gedetailleerd uit.
En als junior moet dat goed te volgen zijn.
Zeker als je met SwiftUI begint bijvoorbeeld.
Ja, er zijn gewoon beginjaren van SwiftUI,
die zijn gewoon vastgelegd in die sessies.
En dan kan je gewoon net als ik destijds leren
hoe SwiftUI vanaf het begin af aan eigenlijk wordt uitgelegd.
En ja, je zei het al, Paul Hudson hacking with Swift
heeft een lading aan artikelen, ook voor juniors.
Er zijn vele blogs.
Ik zou zeggen volg mijn newsletter, maar ook iOS Dev Weekly.
Dat is ook een hele bekende newsletter,
waar heel veel artikelen worden gedeeld.
En dan heb je toch elke week weer een soort van nieuwe inzichten.
Je hoeft niet per se alles te lezen en alles te leren.
Maar als je maar weet van het bestaan af van bepaalde onderwerpen,
dan kan je er altijd later weer naar toe zoeken
en het op dat moment gebruiken.
En leg vooral niet te veel druk op jezelf
als je heel veel technieken voorbij ziet komen die je nog niet snapt.
Want het is gewoon heel veel.
Het is niet makkelijk en het kost gewoon tijd.
Maar zorg dat je hands-on gaat.
Misschien je eigen project start.
En daarmee gewoon eigenlijk natuurlijk challenges tegen gaan komen.
Even een heel snel mooi voorbeeld.
Probeer je eigen app maar eens te submitten naar de App Store.
Kijk maar eens wat daarbij kon kijken.
Wat moet je allemaal doen?
Straks werk je bij een bedrijf
en moet je misschien die app wel gaan submitten.
Er is niks enger dan een update van BioRadar Live zetten
die naar miljoenen gebruikers gaat.
Misschien gaat het wel fout.
Het is een stuk makkelijker als je je eigen Sudoku-appje
in de App Store zet die misschien naar twee gebruikers gaat.
Als dat fout gaat, dan heeft een persoon
misschien een tuurlijk minder per dag.
Maar je weet wel hoe je een app moet submitten.
Dus echt hands-on gaan, probeer gewoon ervaring op te doen.
Dat submit is ook echt wel heel veel makkelijker geworden in Xcode.
Ten opzichte van die jaren geleden.
Ja, de beginjaren waren pijnlijk.
Nou, mijn Xcode-tip is gebruik control-shift
en dan pelt je omhoog en pelt je omlaag.
Dan heb je multiple cursors.
Dan kan je in één keer heel veel dingen tegelijk doen.
Dat is een hele mooie.
Absoluut.
Oké.
Is het tijd voor onze eigen tips, Wouter?
Of heb je nog dingen die je echt even wilt bespreken?
Hebben we dingen gemist?
Ik denk dat we al redelijk rond zijn.
We hebben ook eventueel nog developer-dilemma's
die we vaak stellen aan een gast.
Ik heb er een aantal verzameld
waarvan sommigen je waarschijnlijk al een beetje antwoord hebben gegeven.
Dus we gaan er gewoon lekker vliegensvlug doorheen.
En dan mag je kort daarna even toelichten waarom wel, waarom niet.
De regels zijn als volgt, je mag gewoon maar één kiezen.
En...
Nou, wrapping fire.
Conferentie of meetups?
Conferentie, ja.
Ja, veel meer bereik, veel meer mensen, veel meer kans op netwerken.
Deploy ieder kwartaal of elke commit gaat rechtstreeks naar productie?
Elke commit gaat rechtstreeks naar productie.
Develop is always release ready.
Break stuff.
Learn by doing, ja.
Deze heb je eigenlijk een beetje beantwoord, denk ik.
Remote of kantoor?
Remote, 100%.
Ik hoef minder dan vijf minuten te reizen, eigenlijk, van boven naar beneden.
In plaats van twee uur.
En dat zorgt ervoor dat ik allemaal hobbyprojecten kan doen.
Steve Jobs of Tim Cook?
Steve Jobs, ja.
Weet je, zoveel miljoenen verdienen en op een matrassje slapen.
En gewoon weten waar we naartoe moeten met de wereld, wat betreft telefoons.
Ja, op gebied van iOS development heeft die niet zijn hele grote rol gespeeld, toch?
Nee, maar ik zie het alleen maar zo dat ik zou nu niet in deze podcast zitten,
was Steve Jobs er niet geweest.
Ja, misschien hadden we het dan over PHP websites gehad.
Je weet het niet.
Ja, ja, ja.
Windows Phones.
Windows Phones, ja.
Dat was Windows Phones eigenlijk gewoon groot geworden.
Realistisch programmeren in films of nooit meer gevraagd worden om iemand's printer te fixen?
Realistisch filmen, ja, die eerste.
GitLab of GitHub?
GitHub.
Want?
Publiek, veel verder in ontwikkeling in mijn zin denk ik,
moet ook zeggen dat het een stuk makkelijker wordt gemaakt om GitHub te gebruiken.
Ja, ik ben gewoon, ik ben gewoon een groot gebruiker van GitHub.
Ik denk dat het daar voornamelijk uitkomt.
Ik dacht Nederlandse origine, maar nee hoor, dat telt allemaal niet hier.
Sorry, sorry.
Tof product door GitLab.
Love you.
Oké, dan zijn we door de dilemmas heen.
Ik heb een paar tips voor deze week meegenomen.
Afgelopen vakantie heb ik een boek cadeau gekregen.
Philosophy of Software Design door Sean Oosterhout.
Het is gewoon een redelijk dun boekje.
190 pagina's is misschien nog wel een keer te doen op vakantie, Antoine.
Ja, daarin gaat hij eigenlijk gewoon heel hands-on in op discussies over bepaalde software paradigma's en design.
Maar het is dusdanig laagdrempelen geschreven dat je er ook echt wel wat mee kan.
Een voorbeeld kan zijn is dat Define Your Errors Out of Existence.
Dus de manier van hoe je met fouten omgaat bijvoorbeeld.
Ik vond het wel heel erg inspirerend, vooral omdat ik nog ga beginnen.
Ik denk ook wel echt dat het een boekje is waar je misschien nog vaker in terug gaat bladeren.
Een tweede tip is een film die ik laatst heb gezien.
Legend uit 2015 met Tom Hardy gaat over Grote-Brittannië 1960.
Lekker crimineel, lekker strakke pakken, veel geknokken geweld. Ja, heerlijk.
Vind ik goed.
Bernard.
Ik heb vandaag geen tips.
Je hebt ons al een exco-tip gereden.
Ja, dat was het.
En voor de rest geen films, geen super goede boeken.
Ik kijk tegenwoordig The Office, maar dat vind ik af en toe tenenkrommend.
Zoals die Michael Scott zich gedraagt.
Maar dat is denk ik ook de charme met tegelijkertijd.
Dus dat ga ik gewoon niet tippen.
Bij deze.
Ja, ik kijk op Prime, wel The Man in the High Castle.
Dan hebben de nazi's de oorlog gewonnen.
Ja, dat is de boek heb ik gelezen van Philip K. Dick, toch?
Als dat een goed boek is, dan wordt dat jouw tip.
Dat was een goed boek, maar ik vond het boek waar Blade Runner op gebaseerd is beter.
Dat is van dezelfde schrijver volgens mij.
Het is leuk als je video land ontwikkelt.
Dan kan je heel veel series afschrijven omdat je dan de video player aan de testen bent.
En allemaal spoilers ziet en zo.
Ik werk ook aan een app waarin je je filmcollectie kan bijhouden.
En ja, je gebruikt altijd toch je eigen testfilms om te kijken hoe makkelijk die erin komen.
En we hebben ook een collega die tipt altijd RED in om te zoeken.
Dus we komen heel veel filmtitels tegen met RED.
En die zie je dan telkens tevoorschijn komen in alle screenshots en testreports.
Ja, classic.
Vergeet niet je staging en development data uit je echte data te filteren.
Ja, dat is allemaal user data zelf.
Maar je hebt helemaal gelijk.
Ja, dat zou zo fataal zijn.
Ik ben ook altijd zo bang.
Dan gebruik je in je codebase even een staging URL.
En dat je die dan door een of ander foutje mee commit en dat het in productie meegaat of zo in je app.
Dat zou toch echt heel naar zijn.
Ja, grootste nachtmerrie van elke app ontwikkelaar.
En ik heb het zeker zien gebeuren.
Ik heb weleens in de tijden dat je zeven dagen moest wachten op een app-update-goedkeuring.
Heb ik een app-update van Bauer aan de lijf gezet.
En dit weten ze overigens ook.
Gelukkig.
En advertenties waren de bron van de inkomsten voor Bauer hadden.
En dat betekende dus dat een week geen inkomsten waren voor Bauer.
En wanneer had je het door?
Je had het na die zeven dagen door of niet tussentijds?
Nou ja, op het moment dat de app-lijf stond kwamen we erachter dat de app-inkomsten opeens een beetje omlaag gingen.
Ja goed, dat is ook nog iets waarom je bij een productbedrijf misschien beter terechtkomt.
We schreven geen test destijds.
En daar ben ik pijnlijk achter gekomen wat het resultaat daarvan kan zijn.
Nou ja, dit dus ja.
Goed.
Antoine.
Tips.
Ik heb nog tips Antoine.
Nou ja, ik heb wel het idee dat dit een aflevering vol met tips is natuurlijk.
Maar ja, als ik zo vrij mag zijn zou ik als tip kunnen geven om mij te gaan volgen met mijn nieuwsletten.
Daarmee ga je in ieder geval ontdekken hoe tof Swift is.
Maar ja, weet je, volg in ieder geval vooral wat je leuk vindt en ga niet stil blijven zitten.
Bij een bedrijf waar je wellicht niet helemaal doet wat je passie is.
En durf die stap te maken om je eigen passie achterna te gaan.
Een hele mooie tip. Dank je wel.
Ja, zeker.
Zal ik de opname even stop zetten?
Nee, je mag misschien nog even afsluiten.
Hoe sluiten we af?
Dit was het weer.
Zoiets.
Wat? Dit was het weer?
Nee, we moeten nog mensen bedanken. Ja, Wouter en natuurlijk Antoine.
En voor de rest niet. Maar dat...
Ja, super bedankt voor je tijd Antoine en ook je flexibiliteit.
Want het is best wel kort dag afgesproken allemaal.
Dus daarvoor hartelijk dank.
Ik zou het ook echt tof vinden als we contact houden.
En wie weet dat de paden gaan kruisen.
Nou, ik zou zorgen dat je op een meetup krijgt of op een conferentie.
Dan gaan we elkaar zeker zien.
En ja, super bedankt voor de uitnodiging.
Was heel gezellig.
Ik hoop dat mensen het interessant vonden om een inkijkje te krijgen in de wereld van Swift.
Wij vonden het sowieso interessant.
Ja, zeker.
Tof. Dankjewel.
Doei.