WBSO.aiVideo
Hoe wij bij WBSO.ai software bouwen met AI-agents (zonder zelf code te typen)
In gesprek met Jos Koomen · 29 september 2026 · 55:08
“Ik draai altijd in Bypass Permissions Mode. Hij moet gewoon vrij spel hebben.”
In gesprek met Jos Koomen laat Jankees zien hoe we bij WBSO.ai software bouwen. Jankees typt al anderhalf jaar geen regel code, dat doet hij via zijn agent. Zelf controleert en test hij of het klopt. In de video doet hij het hele proces voor, met zijn scherm erbij.
- Alle interne en externe meetings nemen we op. Een agent haalt er voorstellen voor nieuwe features uit. Die komen in het loket terecht en gaan na goedkeuring als issue naar GitHub.
- Een agent zet de backlog op volgorde, met regels als "eerst afmaken wat onder handen is" en wijsheden uit eerdere gesprekken.
- De hele applicatie is één Ruby on Rails-codebase met 85% testdekking. De volledige testsuite draait in 37 seconden, zodat een agent zijn eigen fouten snel vindt.
- In plaats van git worktrees krijgt elk issue een eigen VM met een eigen database, zodat agents elkaar niet in de weg zitten.
- Wat blijft er dan over voor een developer? Domeinkennis: weten wat het product moet doen en hoe een klant ernaar kijkt.
Zelf de WBSO-uren van jouw developers bijhouden? Bekijk WBSO-administratie voor developers.
Volledig transcript
Automatisch uitgeschreven en daarna nagelopen.
Jos: Want we gaan het vandaag hebben over jullie werkwijze, toch?
Jankees: Ja, klopt. Ik wilde heel graag een keer uitleggen hoe wij bij WBSO.ai software maken. Ik doe dat al, we zijn nu anderhalf jaar bezig en al vanaf het begin ben ik eigenlijk helemaal vol in op AI. Eigenlijk, om eerlijk te zijn, heb ik geen één regel software zelf geschreven in deze codebase. Ik genereer eigenlijk alle code. Ik doe dit natuurlijk wel, ik controleer alles en ik test of het ook echt klopt. Maar software schrijven dat doe ik eigenlijk al anderhalf jaar niet meer. En ik zie om me heen dat bij heel veel ontwikkelaars dat toch echt nog anders is. En ik wil eigenlijk eens laten zien hoe dat dan eruit ziet bij ons.
Jos: Ja. Hoe doe jij dat met testen? Want er komt, er wordt wel geschreven. Tenminste, doe jij echt codereviews zelf ook? Al?
Jankees: Dit is wel veranderd. Toen ik anderhalf jaar begonnen, toen was het met Cursor. Dus toen was ik gewoon nog in een IDE, keek ik echt nog naar de code.
Jos: Ja. Ja.
Jankees: Ja, dat voelt echt als een eeuwigheid geleden. Toen werkte ik dus in een IDE en dan kreeg ik autocompletion en dan kon ik chatten met een model en die paste dan dingen aan. Dat reviewde ik nog echt op regelbasis. Maar na een maand of na twee maanden kwam Claude Code uit en daar veranderde ik heel veel. Vanaf dat moment ben ik namelijk afgestapt van een IDE gebruiken. Dus ik deed alles vanuit de terminal en ik had dan wel een Git hoe heet dat? Een git GUI openstaan.
Jos: Ja.
Jankees: Zodat ik wel zag welke bestanden aangeraakt werden. Maar ik opende eigenlijk nooit een teksteditor. Dus wat ik dan wel af en toe deed was in Git iets selecteren en bijvoorbeeld discarden. Van gooi dit weg en doe het opnieuw. Maar ik zat niet, ja ik heb eigenlijk anderhalf jaar, heb ik al geen regels meer geëdit. Als ik iets wil editen dan doe ik dat gewoon via mijn agent.
Jos: Ja, dat heb ik dus ook. Ja. Zelden tot hooguit een keer een styling dingetje dat ik dacht van dat doe ik even snel aanpassen. Maar dan nog, tegenwoordig geef ik er gewoon aan die class ook met frontend styling, wil ik die styling aangepast hebben. En dat is het meest gedetailleerde, dat is grappig, want ik heb dat dus hetzelfde. En die angst ergens bij anderen om het los te laten en toch die controle te willen houden, denk ik juist dat het mensen afremt.
Jankees: Ja. En hoe vertel jij de agent wat je wil veranderen en waar? Doe je dat dan met screenshots of hoe?
Jos: Nee. En dat is pas heel vers hoor. Als ik, wat ik soms doe, is op het moment dat ik echt iets gedetailleerd wil hebben, vooral als het om visualiteit gaat en een stukje proces. Dan neem ik met mijn, binnen Chrome, neem ik eigenlijk, doe ik een soort screen recording. En die stappers kan hier een JSON output maken. En die kan ik aan mijn Claude geven, om te zeggen, ik wil het aangepast hebben, dit is het proces hoe ik daar kom. Check het en geef je bevindingen of pas het aan. Ik vraag altijd wel om verificatie als ik iets niet zeker weet.
Jankees: En heb je daar dan een extension voor of zit daar iets voor in Chrome?
Jos: Dat zit in Chrome in je developer tools, zit er een, screen recording maken, een van de laatste tabminuutjes. Maar ik heb dat vorige week pas ontdekt hoor, dus het is niet dat ik er heel veel mee gedaan heb. Maar ik merk wel dat, vooral als ik in de browser dingen wil laten testen, is dat soms iets wat helpt om sneller tot een resultaat te komen.
Jankees: Oh leuk. Ja we hebben zelf een extension gemaakt voor Chrome. Die heet Slop Off.
Jos: Ja?
Jankees: Moet je maar eens naar kijken. Die kan je installeren. En daar kan je eigenlijk ook zoiets mee doen. Wat hij dan doet is dan maakt hij je hele website content editable. En dan kan je gewoon met je cursor en je toetsenbord tekst aanpassen. En dan heb je helemaal rechts onderaan in je scherm een soort van palet zitten. En dan slaat hij alle aanpassingen op die je doet. En die kan je dan in één keer naar je default agent toesturen. En je kan er soort van annotaties maken bij HTML elementen. Dus dan kan je dan op klikken met een plusje. En Dan kan je zeggen oké ik wil dat dit groen wordt. En dan stuurt hij dat meteen door naar je agent. Oeps. Ik laat mijn microfoon. En dan gaat hij dat meteen aanpassen voor je.
Jos: Beetje zoals Claude Design eigenlijk werkt, dat je dat in je browser doet. Zeg ik dat goed? Dan kan je ook commenten.
Jankees: Nooit gebruikt. Nee. Ja maar het zou kunnen dat dat hetzelfde is.
Jos: Nou. Oké.
Jankees: Het gaat zo hard met al die tools dat ik soms ook even de weg kwijt ben.
Jos: Ja.
Jankees: We hebben daar zelf dus iets voor gemaakt. Maar dat was niet het onderwerp wat ik wilde laten zien.
Jos: Nee. Doe gewoon je, laat zien wat je wil laten zien en dan, ben ik ben benieuwd.
Jankees: Ja. Even kijken. Ik heb mijn presentatie hier staan. Dan ga ik heel even mijn scherm delen. Ja. Ik doe het vanaf mijn werkmachine. Even kijken of er niks geks open staat. Wat ik niet wil delen. WhatsApp en Telegram kunnen wel dicht. Deze browser. Spotify kan ook uit. Oké, Nou is alles dicht. Ik ga mijn scherm delen. Ik deel mijn hele scherm. Ik werk dus sinds jaar op Omarchy. Daar heb je misschien wel iets voorbij van zien komen.
Jos: Nou. Ik denk dat de mensen die jou kennen, dat ze dat weten. Ja. Leuk.
Jankees: Ik ben hier echt super enthousiast over. Dit is een nieuwe Linux distributie. Die helemaal gemaakt is voor Agentic werk. Je kan je hele OS gewoon aanpassen. Iets wat met macOS is alles helemaal afgeschermd en veilig. En hier is een soort van vrije wereld waar gewoon alles mag en kan. En dat is echt. Het geeft mij heel veel creativiteit en energie om allerlei nieuwe dingen te verzinnen en te maken. Dus ook wat ik vandaag. Wil laten zien.
Jos: Ik zou je wat grappig vertellen, dat ik ben altijd wel echt een Mac man geweest, maar juist door wat jij post, ben ik me echt aan het inlezen wat Omarchy is en of dat misschien, of ik het misschien zie zitten. Dus, er komt misschien wel dit jaar nog een Linux laptopje bij om eens gewoon mee te spelen.
Jankees: Oh dat is leuk om te horen. Ja misschien is dit ook alweer een extra uitleg dingetje. Dat je denkt van oh dat is grappig.
Jos: Nou.
Jankees: Wat ik dus nu de hele tijd doe is gewoon zelf applicaties maken. Dat deel ik ook. En in deze presentatie zullen ook wat voorbeeldjes zitten. En omdat die modellen. Van Claude Code gebruik ik dan heel veel. Die zijn nu zo goed. En die snappen Linux. Die hebben alle regels Linux gelezen die bestaan. Dus die kunnen op een heel makkelijke manier kunnen die zelf software voor je maken. En dat is echt fantastisch. En Dat geeft je echt. Dat geeft mij zoveel mogelijkheden in één keer om dingen te maken. En ik wil het dus hebben over software development met AI. En specifiek hoe wij dat dan bij WBSO.ai doen. Even kijken.
Jos: Ja.
Jankees: Dit is hoe de meeste mensen software bouwen. In elk geval bouwden. Iemand heeft een idee. Vaak is dat iemand in het team. En die praat dan met een product owner. Wordt een ticket gemaakt. Er komt een refinement sessie. Dan wordt het op een gegeven moment in een sprint gezet. Wordt het gebouwd. Gereviewd. Gereleased. Nou jij kent dit. Dit is dan nog een hele simpele versie van dat proces. Dat kan nog veel complexer zijn. Allemaal refinements tussen zitten. Maar dit proces duurt eigenlijk heel lang. Traditioneel. Als je een feature verzon en productie. Nou daar kon echt maanden, een half jaar tussen zitten. Maar je ziet nu met AI agents. Dat dit moet allemaal veel sneller kunnen.
Jos: Ja. Ja. Ja.
Jankees: Want het maken gaat gewoon veel sneller. En daarom hebben we dit proces. We hebben eigenlijk heel erg zo gemaakt. Dat je heel makkelijk iets kan. Van idee tot release kan doen. En dat hele proces ga ik even laten zien in deze presentatie. Heb jij hier nog iets aan toe te voegen?
Jos: Nee. Alleen dat ik maar kan weten, en vooral als het dan Scaled Agile is. Scaled Agile deden we bij mijn vorige werkgever. Dan ging je per kwartaal kijken en dan had je geluk als het in het volgende kwartaal werd opgepakt, maar soms lag het een jaar stil voordat je überhaupt aan een issue kon gaan werken.
Jankees: Ja precies.
Jos: Dus, ja.
Jankees: Jij deed ook van die scrum of scrums. Dat je dan met meerdere scrum teams. En meerdere feature teams. Ja precies. Ja dat is interessant. Wat wij. Het voordeel wat wij bij WBSO.ai hebben. Is dat ik samen met iemand anders. Eigenlijk de enige product developers zijn. Dus daardoor heb je ook heel weinig afstemming nodig. Onze hele applicatie is opgezet. Als een full stack monolith. Dus ik kan gewoon heel makkelijk mijn hele systeem in één keer draaien. Ik heb niet allemaal microservices. En allemaal losse apps. Dat maakt dit wel een stuk makkelijker. Dat moet ik al toegeven. Als je stel je werkt bij de NS. Ik noem even wat. En je hebt tien apps die je moet onderhouden met allemaal microservices. Dan is het veel moeilijker om iets te implementeren wat ik nu laat zien. Maar voor kleine bedrijven en kleine teams is dit volgens mij heel makkelijk haalbaar.
Jos: Ja, dat is het ook zeker. Hoe zit het met jouw collega? Hebben jullie wel eens, omdat het zo snel gaat, hoe doen jullie de afstemming? Want het kan heel goed zijn dat jij ergens aan werkt met je AI. Je schrijft zelf die code niet. Dat het zo snel gaat, dat het eigenlijk, jouw collega kan misschien ook al met iets bezig zijn wat elkaar raakt. Hoe gaan jullie daarmee om?
Jankees: Mijn collega werkt maar één dag in de week. En die werkt vooral aan kleinere tickets nu. Waar je niet superveel domeinkennis voor nodig hebt. Dus die pakt bijvoorbeeld urgente bugs op en dat soort dingen. En ik werk nu vooral aan de grotere dingen.
Jos: Ja, precies.
Jankees: Dus daardoor heb je sowieso al iets minder conflicten. Maar wat ik ook merk is dat je die AI tools die kunnen heel goed merge conflicten fixen. Vroeger als je met meerdere developers bezig was op een project. En iemand had net een feature live gezet. En jij was al een maand bezig met iets of een paar weken bezig. Dan baalde je echt dat jij niet eerder had gemerged. Want dan dat betekende gewoon dat jij jouw werk moest rebasen. En dan om dat te kunnen doen moet je echt veel verstand hebben van de code. Moet je echt verstand hebben van wat hij net gemaakt heeft. Want je krijgt allemaal conflicten in je code. En Die moet je allemaal oplossen.
Jos: Ja.
Jankees: Maar AI is dus supergoed in het bekijken van oké wat is daar gebeurd.
Jos: Ja. Ja. Ja.
Jankees: Wat was de intentie. Wat is de intentie van deze PR. Iets wat wij als mensen ook zouden moeten kunnen. Alleen AI kan het veel slimmer. Dus als ik nu gebeurd is gewoon. Dan maakt mijn collega best wel een grote aanpassing. Met allemaal database migraties. En dan zeg ik gewoon tegen mijn agent. Rebase alle PR's die nu openstaan. En dan gaat hij dat gewoon netjes één voor één doen. En ik heb hem er niet kunnen betrappen op echt grote fouten.
Jos: Ja.
Jankees: Dus dat is wel een hele andere manier van werken nu.
Jos: Dat is een heel andere manier van werken en die herken ik ook wel. Ik heb vorig jaar ook wel een situatie meegemaakt waarin het was met Claude 5.5 al, Opus 5.5. Ik dacht, oeh. Toen had ik een merge conflict richting mijn main, richting een feature die nog niet naar de main toe mag, maar echt nog in testing zit. En ik wou mijn main branch binnenhalen voor de laatste changes. Toen heeft hij in het oplossen van conflicten toch alles naar main gemerged. En toen dacht ik, ja, ik moet die branch gewoon op slot zetten. Die moet je echt gewoon, hadden wij niet. Dus dat zijn wel dingen. Dat is het eerste dat ik dacht van, oeh. Het vraagt soms echt wel wat meer dan gewoon opletten wat er gebeurt.
Jankees: Ja in sommige gevallen moet je denk ik een agent een beetje beschouwen als een stagiair. Dus wat zou een stagiair ook per ongeluk verkeerd kunnen doen. Dat is bijvoorbeeld zoiets merging naar main. Dat zou een stagiair ook moeten kunnen doen. En je moet eigenlijk gewoon software maken om ervoor te zorgen dat dat niet zomaar gebeurt. Want als die agent dan ziet van oh ik kan niet merging naar main. Dan denkt dus tussen aanhalingstekens die agent ook wel twee keer na. Dat hij dat doet of daar omheen werkt. Maar Als er maar genoeg pointers zijn dat iets niet de bedoeling is dan gaat hij ook wel daar voorzichtig mee om. Ja, ook gelijk ingebakken.
Jos: Het kan alleen maar zijn. Al is het alleen maar in dat ik bij mijn AGENTS.md of mijn CLAUDE.md zeg dat dat nooit mag. Dus tegenwoordig eigenlijk al bijna genoeg om af te remmen. Maar ja, ik denk dat misschien wel jouw systeem, jouw Linux systeem daarbij dan helpt om daar nog meer mee te doen. Zeg ik dat goed?
Jankees: Nou ik denk dat mijn Linux systeem houdt je niet tegen op die momenten. Ik denk niet dat dat op dat punt echt anders is dan een macOS systeem. En zo'n CLAUDE.md file dat helpt wel denk ik in veel gevallen. Alleen het is niet een harde blok ergens voor. En je ziet ook als je context groter wordt in je AI agent. Dan gaat hij dat soort dingen gaat hij compressen en dan gaat hij gewoon vergeten. En Dat valt dan op een gegeven moment eruit. En zeker als je CLAUDE.md file heel lang is en het staat ergens onderaan. Dan is er gewoon een kans dat hij dat vergeet en dan gaat hij dat dus nog doen. En daarom moet je er echt voor zorgen dat je in GitHub bijvoorbeeld instelt. Dat je niet meer zomaar naar main mag pushen. Dat het via een pull request moet. Dat heb ik ingesteld,
Jos: Ja, precies. Maar jij zegt ook, ik bouw software daarvoor. Wat voor software moet ik dan aan denken? Ja,
Jankees: Een mooi voorbeeldje. Dat staat op de volgende slide.
Jos: Ja?
Jankees: Eén ding wat wij vanaf het begin van het bedrijf gedaan hebben. En dat kan heel mooi omdat wij remote werken. Is dat wij nemen alle meetings op. Dus alle interne meetings maar ook externe meetings nemen wij op.
Jos: Ja.
Jankees: Wij maken daar transcripts van. En die slaan we allemaal op in onze grote monolithische applicatie. En anderhalf jaar geleden leek dat best wel raar. Want toen konden die modellen daar nog niet zoveel mee. Maar nu plukken we echt de vruchten van al die opnames die we gemaakt hebben over tijd. En we nemen dus op met Fireflies.ai. Dat zie je hier aan de rechterkant. Daarmee nemen we gewoon onze Google Meet meetings op. En dan krijg je ook echt zo'n avatar in beeld. Maar soms belt ook iemand even via een huddle in Slack. En daar heb ik dus mijn eigen meeting recorder voor gemaakt. En dat is een voorbeeld van iets wat ik in Omarchy heb gemaakt. Dat is gewoon een native app. Die heb ik in Rust geprogrammeerd tussen aanhalingstekens. Gevibecode. Die neemt mijn eigen microfoon op. Die neemt de system audio op. En Die gaat dan na lokaal gaat die dit omzetten naar een transcript. En dit kon ik gewoon in een paar uur bij elkaar vibecoden. En al die content komt dus in ons portaal terecht.
Jankees: En dan ga ik je nu laten zien wat wij daarmee doen. Meeting recorder is iets wat ik daarvoor zelf gemaakt
Jos: Heb. En daarmee
Jankees: Kan ik dus ook een huddle opnemen. Of kan ik ook een Telegram-oproep of een WhatsApp oproep opnemen. We hebben ook externe telefonie. Dus je kan ons ook... Wij bellen ook met een 085 nummer soms naar elkaar. En die worden ook allemaal automatisch opgenomen. Dus er zijn eigenlijk bijna geen dingen die niet in dit systeem terechtkomen.
Jos: Ja. Ja. Ja. Rinkel hebben jullie, geloof ik.
Jankees: Ja, wij gebruiken.
Jos: Ja. En ook die kun je met die API koppelen, denk ik.
Jankees: Exact. Ja.
Jos: Mooi?
Jankees: En dat wordt dus allemaal bij ons verzameld. En dat komt in het loket uit. Dat is iets wat ik zelf ook heb gevibecode. Ik ben eigenlijk de enige gebruiker van deze tools. Samen met die andere jongen die ons helpt. Die kijkt hij ook naar. Maar dit is eigenlijk onze backlog tool die we hebben. Ik ga hem even laten zien. Dit is poort 4250. Ik heb heel even voor deze demo een versie van het loket gemaakt. Met allemaal demodata. Zodat we niet helemaal afgeleid raken van alle data die er is. Dus wij nemen dingen op. En een opname. Die wordt dus... Ik heb een cronjob staan. Die kijkt naar al die gesprekken. Dat doe ik volgens mij elk uur. En die probeert het. Al die transcripts probeert hij dingen te halen die moeten gebeuren. Dus stel, Paul en ik bellen met elkaar. En hij heeft het over... Goh, ik zou toch zo graag willen dat dit en dat in het feature... In de product gebeurt.
Jankees: Dan is dus mijn agent die ziet dat automatisch.
Jos: Mooi?
Jankees: En die gaat dat dus hier als voorstel gaat hij dat laten zien. Dus een taak. Dit zijn geen echte taken. Maar hier zou dan bijvoorbeeld kunnen staan... Ik wil graag dat we ook in het Engels ons product kunnen gebruiken. En dat kan ik dan met één knop zo. Dan kan ik dat opnemen en dat gaat dan naar de inbox toe. En de inbox... Daar komen dus dingen uit die uit gesprekken komen. Als ik te snel ga, moet je het zeggen. Maar ook vanuit Slack. Want wij werken eigenlijk met Slack. Wij hebben een speciaal kanaal gemaakt. Dat heet Product Features. En daar kan iedereen eigenlijk in het bedrijf... Kan daar In één regel kan even zeggen wat hij nodig heeft. Kunnen we nog een beetje een gesprek over hebben. En die worden dan door mij gemarkeerd als... Oké, dit is een feature die naar het loket moet. En die komen dus hier in mijn inbox terecht. Dus hier aan de rechterkant... Zie je de Slack thread. Dus dit is de vraag die gesteld is. Dan zie je ook nog dat er na een gesprek over gevoerd is.
Jankees: En mijn systeem gaat dus proberen... Om met alle... Met inclusief de software die we al gemaakt hebben. De hele source code. Gaat hij proberen om hier een user story van te maken. En hij gaat kijken naar de backlog. Wat er dus al aan duplicaten is. Dus hier ziet hij van... Dit en dit en dit raakt het. Hij heeft codeonderzoek gedaan. Hij heeft hij dit gevonden. En dan gaat hij een concept issue maken. Die kan je ook meteen hier bewerken als je wil. Ik kan nog de prioriteit. Is dat een P1? Ik kan nog zeggen in welk milestone dit valt. Of het boven of onder aan de backlog moet. Davy is die andere ontwikkelaar. Of het iets is wat hij kan doen. Dat wordt allemaal ingeschat door ons. Door het LLM. En Die maakt ook een PRD. Dat is eigenlijk een soort van andere manier van schrijven van zijn story. En wat ik dan ook nog wel grappig vind. Dat heb ik ook toegevoegd. Als hij nou vragen heeft over dit hele ding. Dan heeft hij hieronder eigenlijk nog de mogelijkheid om vragen te stellen die hij kan beantwoorden.
Jankees: Je mag de klant zelf kolommen koppelen. Als hij een ander formaat nodig heeft. Dan kan je je antwoordtype opslaan. En dan kan hij nog een keer opnieuw dat item omzetten naar een issue.
Jos: Mooi?
Jankees: En dit heb ik gedaan met de skill grill-with-docs. Ik weet niet of je die kent. Die skill die gebruik je hier eigenlijk onder water om dit op te stellen. En je kan hier ook nog onder zeggen van oké nee het is eigenlijk een hele andere aanpak. Je moet dit of dat gebruiken. En dan kun je zeggen verwerk antwoorden. En dan gaat hij helemaal opnieuw die lus door. En dan komt er dus een bijgewerkt item. En onderaan zit de grote knop. Direct aanmaken zoals voorgesteld. En dan komt hij in ons gewone GitHub board komt hij dan bij te staan. En dat is eigenlijk één stap in het proces.
Jos: Wauw. In jullie GitHub-bord maak dus GitHub-issues aan die dan worden opgepakt door je agent, of niet?
Jankees: Ja dat is. Ja daar komen we dadelijk.
Jos: Oké. Haha.
Jankees: Ja dus dit is eigenlijk. Hoe kom je nou van idee tot een issue. En ik probeer bewust nog zoveel mogelijk software van old school tools te gebruiken. Net zoals GitHub issues. Eigenlijk is dat niet nodig. Ik zou daar ook iets voor kunnen vibecoden. Maar ik vind het wel prettig dat als er systemen stuk zijn op enig moment. Dat je dan alsnog gewoon op de ouderwetse manier verder kan gaan. En dat je onze hele product development zit eigenlijk gewoon in GitHub. Dus stel dit zou ik weggooien.
Jos: Ja.
Jankees: Dan zou ik dat ook weer kunnen vervangen door iets anders.
Jos: Ja, precies.
Jankees: Ik vind dat wel lekker. Ik ben niet helemaal afhankelijk van dit ding. Even kijken wat zit hier nou meer in. Ja wat ook interessant is. En dan schakel ik even naar het tabje met wijsheden. Paul en ik hebben allerlei gesprekken. MT gesprekken. Roadmap gesprekken. En ook daar kijkt onze AI agent naar. En die probeert dan een roadmap op te stellen. Dus stel ik heb Paul in de lijn. En die zegt van oh ja dit najaar gaan we 100 sales doen. Dus we moeten dit en dit moeten we echt gaan verbeteren. Dan zou dat kunnen zijn dat hier een nieuw kaartje bij komt met een roadmap. Die moet ik wel zelf goedkeuren. Die komen niet automatisch erin. Maar hiermee kan ik eigenlijk een roadmap opbouwen. Die op echt high level zeg maar tegen een agent kan zeggen wat er moet gebeuren. En dan heb je regels. Dus bijvoorbeeld eerst afmaken wat er onder handen is. Dat betekent dat je eerst work in progress gaat doen.
Jankees: En dan pas nieuwe items gaat doen. Dus issues waar al een PR voor zijn. Die zullen nu altijd bovenaan komen. Bugs met klant impact gaan voor nieuwe features. Dat zijn eigenlijk hele logische dingen. Maar dat geeft wel de agent net wat meer houvast om een backlog op volgorde te zetten.
Jos: Wat je zegt over dat je het zelf goed moet keuren Want ik vind het, ik denk dat het heel belangrijk is dat je daar uiteindelijk op bepaalde Dat je goed de momenten kiest en dat valt mij ook op Van waar ben ik degene die een knoop moet doorhakken En laat ik het niet over aan mijn agent die het heel makkelijk, heel slim Zo voor me zou kunnen doen als ik het toelaat
Jankees: Ja. Ja. Ja precies. Dit is hoe dat er dan uitziet. Dus ik ga nu dus naar die inbox. Deze software is trouwens niet te krijgen. Dit is alleen voor mij zelf intern.
Jos: Oké
Jankees: Maar dit kan je vrij makkelijk zelf ook vibecoden als je dit wil. Ik heb dus hier een wijsheden knopje. En dan zie je dus in dit voorbeeld dat er een meeting is geweest waar iemand, Paul heeft dus geroepen in de backlog planning. Wat een klant elke maand vraagt weegt zwaarder dan wat een klant één keer hard roept. Nou ja dat is blijkbaar een wijsheid wat dan ooit is gekomen. Die kan ik dan goedkeuren. Die komt dan hier bij wijsheden te staan. En dat is dan het volgende ding wat ik ga laten zien. We hebben dan gewoon een backlog. Die zet je in volgorde. En hoe je die in volgorde zet, dat heeft eigenlijk hiermee te maken. Dit zit helemaal boven in het prompt van de backlog. Dit is mijn backlog tool. Dat vind je trouwens van het design.
Jos: Ja ik ga het is Heel grappig maar Ik ben juist en zelf ook een development tool aan het maken Waar ik je graag buiten deze meeting even om In wel even de relatie Maar het is een beetje, het lijkt op dit Dus
Jankees: Oh ja. Ik wilde juist iets heel weirds en heel funky's maken. Dat het niet eruit zag als iets van klant.
Jos: Ja
Jankees: En het is ook alleen voor mij. Dus ik vond het al wel grappig als het gewoon een heel rare tool was. Dit is de backlog.
Jos: Ja
Jankees: Het voorbeeld backlog. Dit is niet het echte backlog. Onze echte backlog die heeft 140 items of zo. En als ik bezig ben met de backlog. Dan vind ik het fijn op een bepaalde manier dingen te kunnen markeren. En hier zie je bijvoorbeeld een item wat naar links of naar rechts gaat.
Jos: Ja Ja
Jankees: Het is misschien heel raar. Maar ik vind het gewoon leuk dat je zo op een manier. Kan zeggen van oh hier tot hier ben ik geweest. Of ik kan met van die stickertjes. Kan ik Oh hier heeft Paul twee keer om gevraagd. Dan pak ik twee keer zijn hoofd erop.
Jos: Oh leuk
Jankees: Of dit is iets wat een agent kan doen. Dit ding is ook nog helemaal multi-user. Dus net met Figma. Als je met twee mensen deze pagina zou openen. Dan zie je ook elkaars cursor. Deze open in een private browsing hiernaast. Dan werkt het natuurlijk net niet. Je kan met meerdere mensen zien. En dan zie je elkaars cursor. Heel leuk. Wat je hier kan doen is je kan sync GitHub. Daarmee haal je eigenlijk de volgorde op. Zoals die nu op de backlog staat in GitHub. Dus als mensen daar nog met de hand dingen hebben verschoven. Omdat ze ergens mee begonnen zijn. Kan je die binnenhalen. Je kan maak voorstel doen. Deze demo kan ik daar volgens mij niet op klikken. Maar dan gaat hij een heel lang prompt met Fable doen. Waar alle wijsheden in komen. Waar alle items die ik goed heb gekeurd. De inbox in komen en de backlog.
Jankees: En die gaat hij dan helemaal op volgorde zetten. En dan kan je zelfs per item. Dan kan je zien waarom die op een bepaalde plek is gekomen. En dan zie je hier vooraan een pijltje. Met Of die omhoog of omlaag is gegaan. Ten opzichte van de vorige keer. Net zoals zeg maar een hitlijst. En dan. Als je daar dan tevreden mee bent. Dan kan je nog steeds. Hier kan je nog steeds met de hand. De volgorde veranderen wat je wil. En dan kan je sync doen naar GitHub. En dan wordt hij op die manier. In die volgorde. Op GitHub gezet. Leuk.
Jos: Mooi
Jankees: En dat is eigenlijk wat het loket doet voor ons.
Jos: Mooi Dit zijn Ik denk dat dit Ja Het vraagt misschien van iemand om dit te maken Dat zal Ik denk dat Dat moet je ook niet zeker niet tegen laten houden in deze tijd Want dat gaat je op de mid lange termijn helpen Om je eigen draai te halen geven aan een stuk software ontwikkeling En dat denk ik denk vooral Wat ik echt wel mega interessant vind is die hele meetings Meetings die die opnemen Ik neem heel veel op met Granola Voor mezelf Gesprekken, al die dingen Maar die moet ik zelf aanklikken En die synk ik wel naar een soort database toe Elke dag Automatisch Met een Met een cronjob En daarmee haal ik Die gebruik ik als mijn context ook voor Claude Maar het is puur alleen voor mijzelf
Jankees: Ja en wij doen dus. Iedereen doet dit bij ons in het bedrijf. En daardoor kan ik dus ook heel makkelijk zeggen. Van, Wat heeft Paul gisteren met Denise besproken over het product. Of heeft Paul nog met collega's gesproken over dingen die misschien invloed hebben op de backlog. Dat zijn vragen die ik gewoon in mijn agent kan stellen.
Jos: Ja
Jankees: En dan gaat hij gewoon naar mijn transcripts kijken. En dan gaat hij daar mee aan de slag. Het is natuurlijk wel. Je zou kunnen zeggen van oké. Dan zou er ook allerlei privé informatie in kunnen komen. En daar hebben we wel over nagedacht. Je kan namelijk calls kan je markeren als privé. En dan komen ze nooit in dit soort systemen terecht.
Jos: Nee
Jankees: Maar daar moet je wel aan denken. Dus dat is wel iets waar je over na moet denken.
Jos: Kan het ook met terugwerkende kracht Als je er al in staat Dat dat gebeurt
Jankees: Ja. Ja. Juist. Ja. Dat kan. Ja. En natuurlijk als je in een Google Meet zit. Dan kan je ook gewoon Fireflies eruit kikken. Als je iets moet zeggen wat niet in de opname moet komen.
Jos: Ja Precies Ja
Jankees: En af en toe is dat ook nodig als je iets wil bespreken wat over AVG gaat of over personen. Dan wil je dat niet in de opnames hebben.
Jos: Ja Nee Precies Maar ik denk wel een enorme Ik denk dat dit een oplossing is Waar heel veel mensen mee worstelen Dat je Omdat alles zoveel sneller gaat Dat je communicatie die je langs elkaar heen doet Een remote Of Of gewoon met de snelheid Waar je tegenwoordig kunt werken Dat je altijd alles Eigenlijk gewoon opslaat En als een logboek bijhoudt Ja Mooi ja, ik ben wel,
Jankees: Denk jij dat dit in onze organisatie is dit al vanaf het begin zo is geweest? Maar om zoiets in te voeren bij een bedrijf, zou dat nog tot heel veel weerstand leiden, denk je?
Jos: Ja op dit moment wel Ja Sowieso Meeting Meeting Ik merk het nog steeds bij meetings Waar een Zo'n bot bij komt kijken Dat mensen altijd een beetje Argwarend zijn van Dat dat gebeurt
Jankees: Ik ben natuurlijk zelf de oprichter van dit bedrijf. Dus ik kijk met een bepaalde bril naar het bedrijf.
Jos: Ja
Jankees: En dat is natuurlijk heel anders dan iemand die ergens in dienst is. Ja, dan kijk je gewoon anders naar zoiets.
Jos: Jullie hebben nu Iemand aangenomen Recentelijk Weet ik ja. Is dat dan ook iets wat je bespreekt Bij de sollicitatiegesprekken Dat jullie zo werken En van Hé Dat is wel gewoon Het is denk ik Niet eens een vraag Of ze daar mee akkoord gaan Maar meer zo van Ja Je moet er mee akkoord gaan Om bij ons te werken Denk ik
Jankees: Ja, dit is zeker iets wat we al besproken hebben vanaf het begin. En dat hebben we ook... Ja, dit is iets wat meteen al naar voren komt, want we nemen gewoon alles op. Zelfs de sollicitaties hebben we opgenomen.
Jos: Ja Ja Dus dan Er is het gelijk al een ingang Om erover te hebben van Ja dit is hoe wij werken Ik denk dat wij daar Kan ik misschien alleen voor Nederland spreken Ik denk dat wij in Nederland Soms nog heel voorzichtig in zijn En misschien een beetje Heel erg gesteld zijn Op onze privacy Maar dat de voordelen Ervan ook wel kunnen afwegen Dat het gewoon vraagt Om een stukje bewustwording Meer
Jankees: Ja, en ik snap ook echt wel de enge kant van dit hoor. Dat al je gesprekken opgenomen worden en dat dit... Dat het voor heel veel mensen spannend is. Maar ik zie wel dat voor ons, voor het bedrijf is dit echt het beste om nu te doen.
Jos: Ja
Jankees: Persoonlijk is het wel raar dat al die opnames er zijn. En dat je daar alles wat je zegt kan je terugvinden. Laatst had ik een keer iets met Paul afgesproken. En ik kon gewoon naar mijn agent vragen, hoe hebben we het nou precies afgesproken in die meeting? En hij kon dat gewoon terugzoeken en hij kon ook gewoon een mp3'tje maken. Precies van die zin waarin het afgesproken werd. Dat is natuurlijk wel... Ja, daar moet je wel bewust van zijn dat dat gebeurt. Maar ook heel krachtig.
Jos: Het is in je gezichtsveld Het is in je face Om het zo maar te zeggen Ineens Maar het gebeurt natuurlijk al Over allerlei plekken Ja Ik denk dat dit Vanuit een Vanuit gewoon Een stukje bedrijfsvoering Ik denk dat het ontzettend mooi Iets is om In ieder geval te zorgen Dat alles wat je bespreekt Niet van tafel verdwijnt Maar gewoon Terug te vinden is En dat je dat Eigenlijk in een patroon zet Ook al ben je klein Om snel Gewoon De juiste dingen te doen Ja Dat maakt Waarom jullie ook zo lekker gaan Denk ik
Jankees: En dit is natuurlijk extra makkelijk als je op afstand werkt. Want dan zijn al je meetings al in een context waar je het makkelijk kan opnemen. Ik heb natuurlijk ook in het verleden veel op kantoor gewerkt. En dan is het natuurlijk een stuk lastiger. Want dan heb je heel veel informele gesprekjes. Dan ga je niet zeggen, wacht ik zet even mijn meeting recorder aan en dan gaan we het opnemen. Dan is het wel. Dat zijn er wel wat lastigere omgevingen. Dus voor ons komt dit allemaal perfect. Ja, mooi. Even kijken. Dan is het volgende punt. Ja, bij ons is fullstack testen echt superbelangrijk. Ik praat af en toe met mensen, wat ik straks ook al zei, die dan allerlei microservices hebben. Of een heel ingewikkelde setup met mobiele apps die echt cruciaal zijn voor het draaien van de app. Daar hebben wij bewust voor gekozen om dat niet te doen. Dus ik maak alles in Ruby on Rails. Dat is een fullstack framework.
Jankees: Dus de frontend en de backend zit gewoon in één codebase. Helemaal monolithisch. Ik kan met één commando kan ik gewoon de hele stack laten draaien. En die is dan gewoon vanaf één poort op mijn computer te bekijken. Eén database. Echt super simpel.
Jos: Ja
Jankees: En dat ik dat gekozen heb. Ik zie nu dat dat mij echt de leverage geeft met AI. Omdat het voor de AI ook heel prettig is dat alles gewoon in één codebase zit. Want ik kan die alles tegelijk aanpassen. Dus dan kan die als je featurebouwt meteen ook de frontend erbij bouwen en testen. Ja, en ik heb dus onze coverage is 85%. Wat best wel hoog is. En in 37 seconden kan ik de hele test weer draaien. En dat laatste is heel belangrijk. Want agents willen dan heel graag de test draaien. Merk ik. En als dat dan in 37 seconden kan is dat echt super fijn. En dat zijn echt tests waar ook echt een browser bij te pas komt. Dat die echt door de flow heen gaat klikken. En ik heb ook tests gemaakt die gewoon het hele proces van A tot Z zeg maar in kaart brengen. Dus als een agent ergens een fout maakt. Dan zal die daar zelf heel snel achter komen.
Jos: Laat jij Laat jij jouw test Wel eens valideren Door een andere LLM
Jankees: Als ik feature development doe. Dan heb ik heel vaak dat ik op het einde nog een keer. Want ik maak dan vaak alles in Opus. Nu 5.5. En ik vraag dan vaak bijvoorbeeld aan Fable of aan Codex. Om het nog een keer te reviewen.
Jos: Ja
Jankees: Als het grotere dingen zijn die veel impact hebben. Ik wijs hem niet per se echt specifiek naar de tests.
Jos: Ja Ik heb dat toevallig gisteren nog Ik was Er was gewoon iets aan het bouwen En ik zag Eigenlijk dat mijn test Die liepen op naar Bijna 90 seconden Ik heb Bij mijn applicatie Heb ik misschien wel 8000 En ik denk Ja Volgens mij zijn sommige tests Ook gewoon ontstaan In het proces Om dan een bepaalde case To test Dus ik heb Ik doe hier heel veel met Claude Maar ik heb juist toen Mijn ChatGPT agent Gepakt Astro's Van ChatGPT 6 Van hey Analyseer dat eens even Hoeveel tests Zijn er nou echt Daadwerkelijk Nuttig Ja Ik kon daar 30% van Skippen En dan komt hij Met een hele analyse Kwam hier over Hoe ik dus Bepaalde zaken kon Kon wegsnijden En ik doe dat soms gewoon Als ik bepaalde dingen zie In mijn werk Waarvan ik denk Er zou misschien Een verbetering in kunnen zitten Dat ik altijd op mijn second opinion Vraag aan een In dit geval Vaak Codex Of Of gewoon een ChatGPT agent Van Analyseer dit even Kijk even of mijn Hypothese Klopt En dan heb je dus Een hele frisse Andere blik erop En dat Dat geeft soms best wel leuke inzichten
Jankees: Ja dat is wel interessant. Ik heb ook een keer zoiets gedaan. Anderhalve week of twee weken geleden. Toen was mijn test suite duurde anderhalve minuut. En ik vond dat eigenlijk te lang. Eigenlijk is het ook al heel kort. En toen heeft hij hem dus teruggekregen naar 37 seconden. En daar heeft hij volgens mij twee uur of zo op gewerkt. Met meerdere agents. En toen ging hij echt van. Ik draaide al een single thread. Draaide ik al mijn tests. En ik heb heel veel threads. Dus toen ging hij dat in één keer multi-thread maken. En de verdeling goed maken. En toen kwam hij ineens op. Volgens mij was het één derde van wat ik daarvoor had. Dus dat heeft echt heel veel winst. Om dat een keer inderdaad te vragen. Om dat te fixen.
Jos: Ja Look Oké
Jankees: Dit zijn we eigenlijk helemaal doorgegaan. Dus je hebt een Slack bericht. Gaat naar het loket. Dan gaat het naar een issue. En dan ga ik daar ook laten zien hoe ik dat dan ontwikkel. En dan test ik het en dan zet ik het live. Dan komen we eigenlijk op het. Oké. We hebben dus een issue. Die gaan we oppakken. Ik doe dit allemaal op mijn computer. In mijn hoofd gebeurt dit allemaal. Dus dit is gewoon eigenlijk hoe ik werk. Ik heb heel lang gewerkt met git worktrees. Gebruik jij dat ook?
Jos: Ja Maar eigenlijk pas sinds ik Met agents werk Ik kende het vroeger niet En dat
Jankees: Ja, nee precies. Dat geldt voor mij. Ik kende het wel, Maar ik gebruikte het niet. Omdat ik het te ingewikkeld vond. Claude is op een gegeven moment zelf inderdaad. Die dingen gaan gebruiken. Ik zag toevallig vandaag ook weer.
Jos: Ja
Jankees: Dat hij vanzelf een worktree gaat aanmaken. En hier zie je eigenlijk een diagram. Van hoe dat dan eruit ziet. Bij een worktree kan je dus bijvoorbeeld drie worktrees hebben. Claude draait dan in die drie worktrees. Drie verschillende Claude-sessies. Dat is goed. En dan daaronder zie je de server. Die heet bij mij bin/dev. Die draait op poort 3000. Nou, die worktree 2 die kan niet op dezelfde poort draaien. Dus die moet je dan op poort 3001 draaien. En die andere moet je op poort 3002 draaien. Dus dat die niet met elkaar conflicteren. Dat moet je al onthouden. Van oké, deze worktree zit op deze poort. Je kan maar één branch in één worktree tegelijk actief zijn. Dus je kan niet in worktree 2 even terug gaan naar main. Want daar zit waarschijnlijk je main checkout op. Dat waren allemaal dingen waar ik continu tegenaan liep. En dat vond ik heel erg irritant. En ik vind het ook gewoon lekker dat Claude gewoon die hele database gewoon kan ruineren.
Jankees: Dus die kan gewoon de hele database weggooien. Dat mag hij prima doen. Ik draai altijd in Bypass Permissions Mode. En ik vind ook gewoon dat hij, Hij moet gewoon vrij spel hebben om dingen te doen. Maar als je dus meerdere worktrees hebt die allemaal naar dezelfde database kijken. Maar Dan kunnen er echt dingen misgaan. En Dan kan in één keer worktree 1 kan worktree 2 stuk maken. Waardoor je feature development eigenlijk stilstaat. En dat is heel erg irritant. Poorten, Redis, Postgres en allemaal dingen. Credentials die allemaal gedeeld worden tussen die worktrees. En dit is wat ik zie wat de meeste mensen doen. Want dit is ook wat Claude doet standaard. Dit is ook wat Cursor doet. Die maakt gewoon worktrees aan met gedeeld resources. Daar ben ik ook mee begonnen. Maar ik heb nu een, vind ik, een veel fijnere manier gevonden. Alleen daar heb je wel een hele dikke computer voor nodig. Op mijn vorige slide heb ik dit ding gekocht recent.
Jankees: Framework Desktop, die staat hier op mijn bureau. 128 gig shared memory. Dus ik kan ook modellen lokaal draaien. Maar waar ik het vooral voor gebruik is om VM's te draaien. En dat ga ik nu laten zien. En die VM's die zijn compleet gescheiden. Dus die kunnen een eigen database hebben. En als die database in VM1 corrupt raakt of weggegooid wordt. Dat heeft gewoon nul invloed op die andere. Je kan die VM's bijvoorbeeld hibernate. Dus die kan je gewoon even uitzetten. Als je er niks mee wil doen. En dan kan je ze later gewoon weer opstarten en dan gaan ze weer verder. En die worktrees. Ik merkte ook dat het heel veel rommel achterliet op mijn computer. Dan heb ik allemaal rare worktrees en checkouts staan. En ik weet eigenlijk al niet meer precies wat het is. En die VM's die kan je gewoon in één keer weggooien. Ik wilde dit op mijn vorige computer doen. Alleen toen had ik gewoon te weinig memory. Toen ging er gingen van allerlei dingen crashen op het moment dat ik twee VM's had. Maar dat is met deze computer gelukkig niet meer het geval.
Jankees: Even kijken. Dus ik heb deze computer gekocht. Met 16 cores en 32 threads. En wat ik nu kan doen. Ik heb een skill gemaakt die een VM kan aanmaken. Ik wil dat nu even laten zien. Ik heb een voorbeeldissue gemaakt. Dus wat ik nu kan zeggen is fix issue 2167. In een worktree. In een worktree. Dus dat is een skill die ik gemaakt heb.
Jos: Ja?
Jankees: Die gaat nu dat issue opzoeken. Die gaat bekijken waar het over gaat. En dan gaat hij een VM aanmaken. Dan hoop ik dat dat gaat lukken. Dat duurt een paar minuutjes. Die VM. Dat is niet een Docker-container. Waar niks indraait. Nee. Maar ik heb er echt voor gekozen. Dat is gewoon een complete Linux box. Dus ik kan. Ik kan ik je daar eigenlijk laten zien. Ik kan gewoon connecten naar die box toe. Ik kan daar een browser openen. Ik kan daar 1Password installeren. Ik kan daar een simulator installeren. Ik kan daar gewoon alles doen wat ik wil. En ik kan via SSH. Vanaf mijn lokale computer. Kan ik naar die machine toe gaan. En daar kan ik dus ook gewoon. Dat is dus het vette ook aan Omarchy. Ik kan daar gewoon tegen Claude zeggen. Ga met je muis. Echt gewoon met je muis. Er doorheen klikken. En maak een filmpje van. Hoe dat werkt. Dus als ik. Als Claude voor mij. Een pull request maakt. Dan maakt hij ook altijd. Een filmpje. Of een screenshot. Met een pijl. Van hoe het eruit ziet. En dat kan hij doen. Omdat ik dit in een volledige.
Jankees: Linux box draai. Die echt een GUI heeft.
Jos: Wauw. Je weet wel dat heel veel mensen hier die benieuwd zijn.
Jankees: Wacht.
Jos: Heel veel mensen die benieuwd zijn hoe jullie werken.
Jankees: Ik doe het.
Jos: Dat ze hier afhaken. Dat snap je wel denk ik. Ja Ik snap heel goed waar je vandaan komt en dat je dit wil doen. Want die worktrees, ik herken wat je zegt. Het laat rommel achter. Het heeft shared resources. Als er één van je resources iets loopt dan ben je eigenlijk, sta je stil. Dus hiermee, ja. Wauw, het zet mij wel, het inspireert me enorm.
Jankees: Ja. Dit is Toen ik dit voor de eerste keer. Aan de praat had. Was het voor mij ook wel. Een beetje mindblowing. Dat Ik dacht van holy shit, dit is echt een hele andere manier van er naar kijken. Ik heb trouwens net een nieuwe thread even gestart. Ik typte per ongeluk worktree in plaats van workspace. En toen begon hij gewoon een worktree aan te maken, dat wilde ik natuurlijk niet.
Jos: Oh.
Jankees: Ik wilde een workspace hebben. Dat is mijn skill. Nu is hij dus op de achtergrond die VM aan het inrichten. En ik heb ooit een base install gemaakt van Omarchy. En die is gewoon helemaal kant en klaar. Er is al alles geïnstalleerd. Er zitten mijn eigen dotfiles in, al mijn instellingen. En hij begint elke keer met dat base image. Dus hij hoeft ook niet Omarchy te downloaden. Nee, dat heeft hij één keer gedaan. En daar bovenop, op die laag gaat hij dan eigenlijk verder door de code uit te checken. En daar verder te gaan. En wat ik dus ook gemaakt heb in Omarchy is een eigen plugin. Waarmee ik al mijn VM's kan zien. Dus hier zie ik nu een VM. Dat is die VM die ik net gestart heb. Dat is 2167. Pas titel aan. Daar gaat dat issue over. En als ik dus hier op klik. Dit is de VM die ik aangemaakt heb. Dus dit is de computer waar nu deze Claude-sessie eigenlijk naartoe connect.
Jankees: En dit is gewoon echt een volledige VM. Je kan hier gewoon zeggen: Chrome. En dan gaat hij gewoon een Chrome-browser opstarten. Dus dit kan Claude ook. Ik doe dat nu met mijn muis en mijn toetsenbord. Maar Claude kan dat ook gewoon voor je doen.
Jos: Ja, ja.
Jankees: Dat is echt heel erg krachtig om te kunnen doen.
Jos: Yeah.
Jankees: Ten opzichte van dit in een Docker-containertje draaien. Oké, nu is hij klaar. Nu zegt hij de workspace draait. En wat ik dan doe is ik op die server. Ja, nu wordt het eigenlijk heel dieptechnisch. Dat draait herdr. Herdr is net zoiets als tmux. En ik draai lokaal herdr. En die twee kunnen dan met elkaar connecten. Dus ik heb hier aan de linkerkant zie ik alle workspaces die ik heb. En daar komt nu dus die nieuwe VM bij te staan. Daar klik ik nu op en nu zit ik eigenlijk in die VM. Dus nu zit ik naar Claude Code te kijken in die VM. En daar is hij nu al met die changes bezig die ik graag wil. Ik heb dit helemaal zelf gecustomized. Hier bovenaan zie je het GitHub-issue waar hij mee begonnen is.
Jos: Ja?
Jankees: En hieronder zie je dus Claude nu draaien. Kijk, die is nu al de CI aan het draaien. Want hij is al klaar met aanpassingen. En dit was het prompt waarmee hij begon. Lees dit issue. Dus dat nummer wat ik intypte en maak het af. Review de code en wacht erna op de volgende opdracht. Dat is eigenlijk mijn start prompt als ik hem een issue meegeef. Nou, dat heeft hij gedaan. Dit heeft hij nou gemaakt. Nu is de CI aan het runnen. In deze sessie heb ik ook nog een tabje waar je de server kan bekijken. Ik kan ook naar Git kijken. Dit heb ik allemaal zeg maar één keer over nagedacht. En bij elke issue die ik nu ga fixen, krijg ik dit automatisch gratis erbij.
Jos: Ja, mooi.
Jankees: Dus daar heb ik niks voor te doen. Mooi. En dan heb je nog het moeilijke. Ja, dit is allemaal super technisch. Dus ik hoop dat je dat kan volgen.
Jos: Ja, hoor.
Jankees: Het lastige is, dit draait in een server in die VM. En eigenlijk wil je dit ook lokaal in je browser even kunnen testen. Van wat doet dit nou? Daar heb ik dus een skill voor gemaakt. En die kan ik in die VM draaien. Dan stuurt hij vanuit die VM een signaaltje naar mijn hoofdmachine. Ook weer via SSH. Daar heeft hij een eigen key voor. En dan zal je daar ook zien dat hij... Hij is nu dus de CI aan het runnen. Wacht, die ga ik even onderbreken, Dan gaat hij dus deze pagina openen in mijn lokale browser. Zie je?
Jos: Ja?
Jankees: Dus de poort op die VM staat open. Dat is gewoon een poort 3000. Elke VM heeft gewoon een poort 3000. Dit is het IP-adres van die VM. Wat hij ook doet in die skill is hij maakt een user aan. Hij vraagt zo'n access token aan. En je bent dus meteen ingelogd ook. Dus dat slaat hij ook nog eens over. Normaal zou je altijd op de inlogpagina uitkomen. Maar ik heb hier die skill staan. Maak een logincode en gebruik die. En redirect daarna naar de juiste pagina toe. Dus nu ben ik meteen op de pagina waar ik moet zijn.
Jos: Ja, maar...
Jankees: En dit heeft hij nou toegevoegd in die skill. Dus dat is Goedemiddag. Dat stond hier eerst niet.
Jos: Maar dit is toch...
Jankees: Nu heb
Jos: Dat is mooi met skills, hè. Dat je daar zoveel... Daar zit zoveel power in. En dat... Ik merk in mijn team bijvoorbeeld enorm dat mensen dat soms nog wel eens vergeten. Dat je gewoon een skill kan maken om dingen te doen. En dat is de basis. Maar wel... Krachtig. Oh ja, mooi. Aziatisch.
Jankees: Ik gezegd, maak het Japans. En nu heb ik het auto-reload.
Jos: Ja.
Jankees: Ik hoef niks te doen. Ik zeg gewoon in die Claude Console. Zeg ik Maak het Japans. En ik kijk gewoon naar mijn browser. En ik zie het gewoon veranderen. Dit is echt... En als ik er dan weer klaar mee ben. Dan ga ik gewoon naar mijn eigen lokale systeem. En dan zeg ik... Oké, het was een test. Gooi de workspace maar weer weg. En dan gaat hij dus gewoon die workspace... Gaat hij hem gewoon verwijderen. Dan gaat hij de disk die erbij hoort. Dan gaat hij weggooien. En dan ben ik gewoon weer... Wat gaat hij nu doen? Kijk, hij kijkt ook nog of er uncommitted changes waren. En als je dan normaal... Als je niet zegt dat het een test is... Dan Zegt hij van... Weet je zeker dat je het wil verwijderen? En nu is dus... Kan ik dit ding refresh en nu is hij gewoon weg. Helemaal weg. Alles opgeruimd.
Jos: Ja. En zo kun je dus echt aan meerdere dingen tegelijk werken.
Jankees: Ja, precies. Dit is dus... Nu kan ik dus echt makkelijk op drie, vier, vijf dingen tegelijk itereren. Omdat ik gewoon... Omdat het helemaal van elkaar gescheiden is. Ik kan dingen even laten liggen. Ik kan ergens meer verder gaan. Dit is echt... Dit maakt het inderdaad dan... Dat je in één keer aan heel veel dingen tegelijk kan werken. Ik heb hier nog een lijstje gemaakt van... Wat doet dat? Wat doet die skill nou? Dus die maakt een verse VM. Die maakt een branch en een worktree in die VM. Die draait de setup. Dus die installeert alle gems die je nodig hebt. Die zet de databases klaar. Start de server. Start Claude. Claude die leest het issue. Die gaat het bouwen. En die opent dan je browser al ingelogd. En als je klaar bent dan kan je hem er weggooien.
Jos: Ja.
Jankees: Dat zit allemaal in die skill.
Jos: En hier heb jij hier ook WBSO voor aangevraagd om dit te bouwen, of niet?
Jankees: Nee, helaas niet. Had ik wel kunnen doen, ja.
Jos: Nee. Ja, want dit is wel zo'n mooi voorbeeld. Mooi.
Jankees: En dat was eigenlijk de demo van wat ik wilde laten zien.
Jos: Jeetje, ik ben impressed. Ik vind de manier al hoe jullie met die meetings omgaan. Het is... Aan de ene kant zijn het hele vanzelfsprekende dingen. Hoe jullie met meetings omgaan. Hoe je dat opslaat. Als je daar... Omdat je klein bent met z'n allen doet. Maar vooral... Ik worstel ook met die worktrees. Dus hoe jullie dan daarmee... Hoe je dat eigenlijk hebt opgelost. Het is niet zomaar voor elk bedrijf meteen weggelegd. Aan de andere kant...
Jankees: Ik denk dat het wel... Ja, je kan niet... Volgens mij moet je gewoon hierin investeren om hier te komen. En Ik denk... Er zijn altijd stappen te maken om hier te komen, volgens mij.
Jos: Ja.
Jankees: En voor ons is het makkelijk omdat we klein zijn.
Jos: Want dit...
Jankees: Maar voor grote bedrijven kan dit net zo goed een manier zijn om te werken.
Jos: Alles... Ik denk dat je... Het gek is hè. Als ik kijk naar mijn laatste tien jaar. Heel veel bedrijven zijn een soort van... Als ze on-premise waren weggegaan naar de Claude. Met hun service. Maar eigenlijk zie je er dus van. Ga terug on-premise. Zorg dat je lokaal je werk kunt runnen.
Jankees: De iteratiespeed is gewoon heel belangrijk. En op het moment... Ik had een half jaar geleden... Draaide ik ook alle GitHub Actions bij GitHub. Maar dan zit je dus gewoon... Als ik dit nu ga draaien bij GitHub, dat duurt gewoon acht minuten. En als je...
Jos: Ja.
Jankees: Als je agent na elke stap acht minuten moet wachten... Dat maakt heel veel uit. En het kost ook nog eens heel veel geld. Want die minuten moet je gewoon betalen bij GitHub. Dus daarom heb ik dus die dure computer gekocht. En daarmee kan ik gewoon in dertig seconden die test draaien. Ja, dat maakt gewoon heel veel uit.
Jos: Hoe... Wij zitten op 3000 build minuten bij GitHub. En daar zaten wij halverwege een maand al op. Deze maand.
Jankees: Ja. Ja, dat gaat hard.
Jos: Inclusief mensen... Terwijl er mensen op vakantie zijn. Dus je zit... Ik denk dat zo'n investering is een apparaat. Het is gewoon een optelsom. Dat... Al deel je met twee mensen. In je netwerk. Ergens. Moet je wel op kantoor zijn. Maar... Het zijn wel... Ik vind het... Ik vind het al iets waar ik... Waar ik even een balletje op ga gooien van. Nee. Zou dat misschien ons helpen?
Jankees: En wat ik dus ook doe is...
Jos: Ja.
Jankees: Als ik lokaal de CI gerund heb en gecommit... Dan doe ik een GitHub signoff. Of een git signoff is dat. En ik heb in mijn GitHub Actions ingesteld... Als er een signoff is... Dan kan je alleen maar doen als je de hele CI hebt gerund. Dan hoef je niet nog een keer de GitHub Actions te runnen. Dus alles wat ik eigenlijk vanuit die agents push... Dat hoeft al niet meer in die pull request getest te worden.
Jos: Nee.
Jankees: Als ik... De main branch doe ik wel altijd testen. Want ik wil gewoon dat dat 100% zeker nog een keer op een losse machine is getest. Maar al die pull requests die test ik dus niet. En daardoor kom ik eigenlijk ook nooit in mijn build minutes nu.
Jos: Nee.
Jankees: Terwijl ik eerst ook altijd het probleem had met die build minutes.
Jos: Precies.
Jankees: Die had ik al in een week had ik die al verbrand.
Jos: Ja. Ik hoorde jou toen... Wat was het? Begin dit jaar al. Of nee. Eind vorig jaar al over. Dat je soms gewoon... Met vijf, zes dingen tegelijkertijd bezig was. Dus dan...
Jankees: Ja.
Jos: Loop je daar gewoon tegenaan.
Jankees: Ja. In de praktijk ben ik denk ik met drie, vier dingen tegelijk bezig. Dat is een beetje wat ik nu kan hooghouden. En de volgende stap die ik heel graag zou maken is dat het... Ik start nu nog elke keer vanuit mijn hoofd. Agent start ik het volgende ding.
Jos: Ja.
Jankees: En waar ik naartoe wil is eigenlijk dat dingen ook vanzelf gestart gaan worden. Of misschien op een interval. Dus dat er bijvoorbeeld elke nacht... Dat hij kijkt naar de logs van de server. En dat hij dan daar dingen mee gaat doen. Voor mij is dat nu het volgende stapje eigenlijk van het hele proces wat ik wil gaan automatiseren.
Jos: Loopjes bouwen hè. Dat doe jij ook hè. Gewoon loopjes maken. Ik... Wat ik doe met mijn... Wij hebben ook GitHub issues. Ik maak een soort... Ik maak een issue. En daar hang ik dingen die ik op wil pakken in een subissue op. En dan laat ik daar doorheen loopen. Dus ik laat hem eerst lezen of het helder is. En dat hij het kan accepteren. En dan gewoon stuk voor stuk oppakken. Maar dan doe ik dan met issues van... Tien tot twintig stuks tegelijkertijd. En dan laat ik het oppakken. Voor alles een PR maken. Die laat ik door Codex controleren. Vijf tot twintig keer afhankelijk van de belangrijkheid. Rondes. En dan zet hij hem klaar. Voor mij. Om het uiteindelijk dat laatste zetje te geven.
Jankees: En hoe review jij dan nog die code? Ga je dan in GitHub nog nalezen? Of hoe doe je dat?
Jos: Soms wel. Ik doe heel veel testen. Gewoon echt wel. Gewoon testen. Werkt het? Doet het goed? Ik review alleen de... Belang. Ik kies mijn PR's uit die ik daadwerkelijk zelfs nog review. Maar ik doe heel veel met... Echt testen. Als een tester. Van hoe werkt het? Gaat het goed? Wat zit daarachter? Security audits. Die ik dan laat doen met... Met... Met ChatGPT. Van ik had ik zelfs zo dat... Zelfs ChatGPT ingreep. Omdat ik mijn security audit een beetje te ver in het database wilde laten... Rommelen. Het is meer dat ik... Naast mijn klant ook gewoon... Heel veel de OpenAI laat... Oppakken door... Daar een ander beeld op te geven. En... Bij elke vorm van twijfel... In de GitHub issue... Mijn naam taggen van... Hé, jij moet hier naar kijken om die en die reden.
Jos: En daar heb ik... Gewoon wat grenzen in ingesteld. Door middel van... Lessen of door middel van wat ik gewoon... Uit mijn ervaring weet dat ik... Waar ik... Zelf wil ingrijpen.
Jankees: Ja. Ik had er vanmorgen nog met iemand over. Volgens mij is hetgene waar wij nu nog ons onderscheiden van agents... Dat is niet meer programmeren. Want zo'n agent kan nu beter programmeren dan ik kan. En ook sneller. Dus dat heeft eigenlijk geen zin meer. Daarom programmeer ik eigenlijk ook niet meer. Voor mijn gevoel kan ik daar niks meer bijdragen. Maar waar ik nog wel iets kan bijdragen is dat ik de domeinkennis heb van het hele bedrijf. Van wat het product moet doen. Hoe een klant hiernaar kijkt. En dit zijn ook allemaal dingen die volgens mij uiteindelijk een agent wel kan begrijpen. Maar op dit moment vind ik het wel belangrijk dat ik nog een keer in de browser er doorheen klik of iets logisch is. Dus het kan wel voldoen aan het issue. Maar is het ook logisch wat er gedaan is? Of is het begrijpelijk voor de klant?
Jos: Ja.
Jankees: Dat heb ik nu ook nog niet echt helemaal ondervangen. Dat ik het zonder te kijken zou durven te mergen. De meeste dingen. Ik wil het niet meer.
Jos: Nee, maar dat is... Dat is... Dat is ook wat ik veel doe. Mijn meeste tijd gaat zitten in het... Daadwerkelijk testen... Stukje... Net zoals met Flash vroeger een beetje. Dat je eigenlijk gewoon door gaat lopen klikken. En dan eigenlijk je code maakt. Dan gaat die compilen. Dan moet je wachten. En dan kun je... Daarna gaan kijken van wat het doet. Soms voelt het... Sommige testsessies voor mij voelen op die manier zo. En vooral als het met frontend gaat. Maar ik ben zeker iemand dat... Een issue is voor mij pas afgerond als ik het zelf heb getest. En daar zit op dit moment de bottleneck. Maar ik denk dat dat voorlopig ook wel blijft. Want die domeinkennis krijg je alleen door... Ik denk dat je die systeem krijgt op z'n vroeg... Op z'n snelste op een manier zoals jullie nu al omgaan met gesprekken. Heel veel content en context geven door middel van... Gesprekken en dat soort zaken.
Jankees: Ja. Wat ook dan dus heel belangrijk is. Is dat je in zo'n VM. Dat die daar een hele mooie test setup kan maken. En dat doet die soms ook vanzelf al. Maar dat je een goede seed hebt. Dus dat je al een testaccount hebt. Met een testbedrijf. En een goede set gebruikers. En de juiste data. Dus als je er doorheen klikt. Dat het ook echt ergens op slaat.
Jos: Ja.
Jankees: Wat ik niet heb laten zien. Maar wat ik ook af en toe doe. Is ik heb een. Die skill die ik gemaakt heb. Die kan ook productiedata downloaden. En die kan die dan ook in die VM inproppen. Dat doe ik niet zo vaak.
Jos: Ja.
Jankees: En hij anonimiseert ook de userdata. Maar daarmee kan je ook door de echte data even heen klikken. En dan heb je net nog iets beter beeld van. Hoe een bepaalde aanpassing er voor iedereen uitziet.
Jos: Ja. Ja. Ik denk dat we het wel eens zijn dat dat iets is wat je moet blijven doen. Je kunt je PS op de daam heel veel dingen laten controleren door een machine. Maar uiteindelijk wil je... Bij jezelf heb je die verantwoordelijkheid om... Ook echt groen licht te geven.
Jankees: Ja. Ik weet niet of dit altijd blijft. Maar op dit moment is dat zeker. Zeker het geval.
Jos: Wetgeving technisch in Nederland wel hè? Europa.
Jankees: Dat je verantwoordelijk bent voor wat je doet. Of.
Jos: Ja. Dus.
Jankees: Ik ben benieuwd. Misschien wordt wetgeving nog veranderd ooit.
Jos: Nee, maar dankjewel man. Leuk.
Jankees: Ja. Graag gedaan. Het was leuk om even te laten zien.


