{"id":9838,"date":"2025-11-11T13:28:50","date_gmt":"2025-11-11T12:28:50","guid":{"rendered":"https:\/\/qdraw.nl\/blog\/?p=9838"},"modified":"2025-11-11T13:28:50","modified_gmt":"2025-11-11T12:28:50","slug":"techorama-2025","status":"publish","type":"post","link":"https:\/\/qdraw.nl\/blog\/technologie\/techorama-2025\/","title":{"rendered":"Techorama (2025)"},"content":{"rendered":"<p>Op Techorama 2025 werden inzichten gedeeld over actuele thema\u2019s binnen de IT en softwareontwikkeling. Deze blog is<br \/>\ngeschreven voor IT professionals. In dit blog bespreken we enkele hoogtepunten.<\/p>\n<p>In deze blog geef ik een samenvatting van de verschillende sessies:<\/p>\n<ul>\n<li><a href=\"#the-past-present-and-future-of-ai-for-application-developers-steve-sanderson\">The Past, Present, and Future of AI for Application Developers \u2014 Steve Sanderson<\/a><\/li>\n<li><a href=\"#agents-of-change-building-ai-agents-that-work-and-think-for-us-jeff-prosise\">Agents of Change: Building AI Agents that Work (and Think) for Us &#8211; Jeff Prosise<\/a><\/li>\n<li><a href=\"#understanding-model-context-protocol-mcp-roelant-dieben\">Understanding Model Context Protocol (MCP) \u2014 Roelant Dieben<\/a><\/li>\n<li><a href=\"#var-ai-referees-and-the-future-of-code-reviews-amber-vanderburg\">VAR, AI Referees, and the Future of Code Reviews &#8211; Amber Vanderburg<\/a><\/li>\n<li><a href=\"#the-next-decade-of-software-development-richard-campbell\">The Next Decade of Software Development &#8211; Richard Campbell<\/a><\/li>\n<li><a href=\"#relate-reflect-respond-alice-meredith\">Relate. Reflect. Respond. &#8211; Alice Meredith<\/a><\/li>\n<li><a href=\"#what-s-new-in-c-13-14-and-beyond-bart-de-smet\">What\u2019s new in C# 13, 14, and beyond &#8211; Bart de Smet<\/a><\/li>\n<li><a href=\"#practical-tips-for-keeping-your-c-code-base-clean-dennis-doomen\">Practical tips for keeping your C# code base clean &#8211; Dennis Doomen<\/a><\/li>\n<li><a href=\"#debugging-like-a-coach-fixing-team-bugs-before-they-crash-the-game-amber-vanderburg\">Debugging Like a Coach: Fixing Team Bugs Before They Crash the Game \u2014 Amber Vanderburg<\/a><\/li>\n<li><a href=\"#react-the-most-common-state-mistakes-in-2025-cory-house\">React: The Most Common State Mistakes in 2025 \u2014 Cory House<\/a><\/li>\n<li><a href=\"#fortifying-your-workflows-battle-tested-security-strategies-for-hardening-github-actions-josh-johanning\">Fortifying your Workflows: Battle-Tested Security Strategies for Hardening GitHub Actions \u2013 Josh Johanning<\/a><\/li>\n<li><a href=\"#trusted-respected-heard-alice-meredith\">Trusted. Respected. Heard. &#8211; Alice Meredith<\/a><\/li>\n<li><a href=\"#lessons-from-the-fast-lane-robert-doornbos\">Lessons from the Fast Lane &#8211; Robert Doornbos<\/a><\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_082925_d_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"the-past-present-and-future-of-ai-for-application-developers-steve-sanderson\">The Past, Present, and Future of AI for Application Developers \u2014 Steve Sanderson<\/h2>\n<p>Steve Sanderson begon zijn sessie met een simpele constatering: <em>\u201cAI makes work better.\u201d<\/em> En dat is nauwelijks overdreven. Twee jaar geleden gebruikte nog vrijwel niemand AI tijdens het ontwikkelen, nu ligt dat gebruik al rond de vijftig procent. De vraag is niet langer <em>of<\/em> we AI gaan gebruiken, maar <em>hoe<\/em> we ermee beginnen.<br \/>\nOm die vraag te beantwoorden, nam Steve het publiek mee op een reis door de tijd \u2014 terug naar het begin van het begrip \u201ckunstmatige intelligentie\u201d.<\/p>\n<h3 id=\"van-turing-tot-eliza\">Van Turing tot Eliza<\/h3>\n<p>In 1950 stelde Alan Turing zijn beroemde vraag: <em>\u201cCan machines think?\u201d<\/em> Hij bedacht de zogenaamde <em>imitation game<\/em>, later bekend geworden als de Turingtest \u2014 een manier om te bepalen of een machine menselijk genoeg kan converseren.<br \/>\nIn de jaren zestig ontstonden de eerste chatbots. Steve toonde live een klassieker: Eliza , een programma dat met simpele stringvervanging reageerde op wat je zei. Als je iets intypte, herhaalde Eliza het gewoon in de vorm van een vraag. Het werkte niet echt, maar het was een fascinerende illusie. Steve lachte: <em>\u201cPeople process it as intelligence \u2014 but it\u2019s just string replacement.\u201d<\/em><\/p>\n<h3 id=\"de-fundamenten-van-voorspellende-tekst\">De fundamenten van voorspellende tekst<\/h3>\n<p>Daarna ging hij nog verder terug. In 1913 beschreef Andrey Markov de kans dat een volgende letter of woord afhangt van de vorige \u2014 de basis voor wat we nu <em>Markov chains<\/em> noemen.<br \/>\nEn in 1948 legde Claude Shannon met zijn informatietheorie de basis voor moderne taalmodellen. Hij liet zien hoe je op basis van letterfrequenties een tekst kunt laten \u201cgokken\u201d wat erna komt.<\/p>\n<blockquote><p>\n\u201cPro tip,\u201d grapte Steve. \u201cEverything is legitimate for AI.\u201d<br \/>\nEn inderdaad: zelfs iets eenvoudigs als een letterrooster kan de kiem zijn van een taalmodel.\n<\/p><\/blockquote>\n<h3 id=\"de-doorbraak-transformers\">De doorbraak: Transformers<\/h3>\n<p>Pas in 2017 kwam de echte revolutie: de Transformer-architectuur. Die maakte het mogelijk om context op veel grotere schaal te begrijpen. Sindsdien is de groei van AI-modellen explosief.<br \/>\nSteve toonde een overzicht van bekende modellen \u2014 van GPT-1 met 117 miljoen parameters tot GPT-4 , waarvan naar schatting 1,7 biljoen parameters onder de motorkap zitten. Daar tegenover staan open modellen als LLaMA en DeepSeek R1 , die ook snel aan terrein winnen.<\/p>\n<h3 id=\"hoe-een-taalmodel-leert\">Hoe een taalmodel leert<\/h3>\n<p>Om te laten zien hoe AI leert, trainde Steve live een kleine versie van GPT-2.<br \/>\nNa \u00e9\u00e9n iteratie was de output pure chaos.<br \/>\nNa honderd iteraties begon het model taalpatronen te herkennen.<br \/>\nNa vijfhonderd iteraties produceerde het zinnen die grammaticaal klopten.<\/p>\n<blockquote><p>\n\u201cIt\u2019s just predicting the next token,\u201d zei Steve.<br \/>\n\u201cChat completion is simply token prediction shaped into something we want to hear.\u201d\n<\/p><\/blockquote>\n<h3 id=\"function-calling-en-echte-intelligentie\">Function calling en echte intelligentie<\/h3>\n<p>Maar moderne AI gaat verder dan tekstvoorspelling. Met function calling kan een model nu echte methodes aanroepen of data uit de echte wereld ophalen.<br \/>\nZo ontstaat een brug tussen tekstbegrip en praktische actie.<br \/>\nHij liet zien hoe dat werkt in toepassingen als:<\/p>\n<ul>\n<li>Chat-interfaces<\/li>\n<li>RAG (Retrieval-Augmented Generation)<\/li>\n<li>Virtuele assistenten<\/li>\n<\/ul>\n<h3 id=\"c-in-actie\">C# in actie<\/h3>\n<p>Vervolgens stapte hij over naar de praktijk: AI integreren in .NET.<br \/>\nMet Microsoft.Extensions.AI en IChatClient demonstreerde hij hoe je een AI-model eenvoudig laat samenvatten, vertalen of classificeren.<br \/>\nEen voorbeeld met een vastgoedapplicatie liet zien hoe een AI automatisch eigenschappen uit een beschrijving kon extraheren en in JSON kon teruggeven.<\/p>\n<h3 id=\"vision-en-reasoning\">Vision en reasoning<\/h3>\n<p>Steve liet ook multimodale toepassingen zien \u2014 modellen die niet alleen tekst, maar ook beelden begrijpen.<br \/>\nMet GPT-4o-mini en lokale modellen via Hugging Face (een site waar veel AI modellen op staan) demonstreerde hij beeldclassificatie, zelfs draaiend in WebAssembly.<br \/>\nDaarna ging het over <em>reasoning models<\/em>: AI die niet alleen voorspelt, maar nadenkt \u2014 patronen herkent, context begrijpt en keuzes maakt.<br \/>\nHij liet praktische voorbeelden zien:<\/p>\n<ul>\n<li>Formulieren automatisch invullen op basis van clipboarddata<\/li>\n<li>Slimme autocomplete<\/li>\n<li>Semantische zoekfuncties<\/li>\n<li>Spraakinterfaces, zoals in een auto-advertentie met voice-input<\/li>\n<\/ul>\n<h3>Tot slot<\/h3>\n<p>Aan het einde van zijn sessie benadrukte Steve dat de toekomst van AI niet alleen draait om grotere modellen, maar om <em>betere<\/em> modellen \u2014 systemen die begrijpen wat ze doen.<br \/>\nAI wordt niet meer alleen een tool die code aanvult of tekst genereert, maar een integraal onderdeel van hoe we software bouwen. De lijn tussen mens en machine vervaagt en voor ontwikkelaars ligt daar niet een bedreiging, maar een kans: om slimmer, sneller en creatiever te bouwen dan ooit tevoren.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_083835_d_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"agents-of-change-building-ai-agents-that-work-and-think-for-us-jeff-prosise\">Agents of Change: Building AI Agents that Work (and Think) for Us &#8211; Jeff Prosise<\/h2>\n<p>Jeff Prosise stapte het podium op met een energieke glimlach en de belofte van <em>\u201clots of demos.\u201d<\/em> Hij hield woord. Het volgende uur stond in het teken van een nieuwe golf binnen AI: autonome agents \u2014 systemen die niet alleen reageren, maar ook samenwerken, plannen en handelen.<\/p>\n<blockquote><p>\n\u201cThink of them as microservices for AI,\u201d zei Jeff.<br \/>\n\u201cEach agent does one thing extraordinarily well. Together, they can solve problems far more complex than any single model could.\u201d\n<\/p><\/blockquote>\n<h3 id=\"wat-zijn-ai-agents-eigenlijk-\">Wat zijn AI-agents eigenlijk?<\/h3>\n<p>Een AI-agent is in de basis een wrapper rondom een LLM (Large Language Model). Maar in plaats van simpelweg tekst te genereren, krijgt de agent autonomie en tools om specifieke taken uit te voeren: data ophalen, bestanden doorzoeken, berekeningen uitvoeren of zelfs API\u2019s aanroepen.<br \/>\nJeff legde het uit als een soort bouwteam: jij levert de bouwstenen, AI zorgt voor de workflow en het framework biedt de infrastructuur voor communicatie tussen de agents.<\/p>\n<h3 id=\"agentic-frameworks-de-bouwstenen-van-deze-nieuwe-golf\">Agentic frameworks: de bouwstenen van deze nieuwe golf<\/h3>\n<p>Hij liet vier populaire frameworks zien die deze manier van werken mogelijk maken:<\/p>\n<ul>\n<li>Agents SDK \/ AutoGen \u2013 Een open-source framework van Microsoft voor het co\u00f6rdineren van meerdere agents. Ondersteunt RAG (Retrieval-Augmented Generation), verschillende conversatiepatronen en werkt met Python en .NET.<\/li>\n<li>CrewAI \u2013 Een Python-framework waarin groepen (\u201ccrews\u201d) van agents samenwerken. Rijke ondersteuning voor geheugen en toolgebruik.<\/li>\n<li>Agno \u2013 Een open-source, LLM-agnostisch framework dat toolgebruik, persistentie en RAG ondersteunt, met een ingebouwde <em>playground<\/em> om workflows te testen.<\/li>\n<li>OpenAI\u2019s Agents SDK \u2013 Een meer Python-first benadering met ondersteuning voor geheugen, audio, tool use en web search.<\/li>\n<\/ul>\n<h3 id=\"de-praktijk-agents-die-denken-plannen-en-samenwerken\">De praktijk: agents die denken, plannen en samenwerken<\/h3>\n<p>Om te laten zien wat dat betekent, bouwde Jeff live een prototype.<br \/>\nOp het scherm verscheen een fictieve vacature voor een CEO. Een agent analyseerde cv\u2019s, beoordeelde kandidaten en gaf scores tussen 1 en 10 \u2014 allemaal in natuurlijke taal.<\/p>\n<blockquote><p>\n\u201cOne agent reads the resumes, another compares them to the job description, a third composes the response,\u201d legde hij uit.<br \/>\n\u201cThey pass information dynamically \u2014 one by one \u2014 like a team.\u201d\n<\/p><\/blockquote>\n<p>De workflow verscheen als een soort chatinterface waarin agents met elkaar communiceerden. Jeff vroeg de AI zelfs om een <em>rejection letter in the style of Dr. Seuss<\/em> \u2014 en het werkte.<\/p>\n<h3 id=\"hoe-werkt-dat-technisch-\">Hoe werkt dat technisch?<\/h3>\n<p>Achter de schermen gebeurt er veel.<br \/>\nLLM\u2019s zijn stateless, dus een agent-framework moet zelf geheugen bijhouden. Jeff liet zien hoe dat werkt met een eenvoudige in-memory database of met SQLite of MongoDB.<br \/>\nHij demonstreerde Agno, waarin agents eenvoudig worden gedefinieerd met een paar regels Python-code.<br \/>\nEen agent heeft:<\/p>\n<ul>\n<li>een instructieprompt,<\/li>\n<li>een session ID,<\/li>\n<li>en een streaming-output om tussentijdse resultaten te tonen.<\/li>\n<\/ul>\n<p>Agno bevat ingebouwde tools voor o.a. samenvatten, rekenen, het ophalen van data (zoals via yfinance) en zelfs het genereren van afbeeldingen. Alles via <em>function calling<\/em> \u2014 waarbij de LLM een JSON-beschrijving van de gewenste functie opstelt, die vervolgens echt wordt uitgevoerd.<\/p>\n<h3 id=\"mcp-de-nieuwe-standaard-voor-agentcommunicatie\">MCP \u2013 de nieuwe standaard voor agentcommunicatie<\/h3>\n<p>Daarna ging het over MCP (Model Context Protocol), een nieuwe standaard die LLM\u2019s in staat stelt om functies en API\u2019s te importeren alsof het lokale tools zijn.<br \/>\nBedrijven zijn druk bezig hun diensten via MCP beschikbaar te maken \u2014 van PayPal tot Salesforce.<br \/>\nDe voordelen:<\/p>\n<ul>\n<li>gestandaardiseerde communicatie tussen agents;<\/li>\n<li>eenvoudige authenticatie (OAuth, tokens environment variables);<\/li>\n<li>ondersteuning voor streaming via HTTP.<\/li>\n<\/ul>\n<p>Agno heeft zijn eigen MCP-server en ondersteunt multi-agent orchestration met vector databases en deelbare context.<\/p>\n<h3 id=\"multi-agent-samenwerking-in-actie\">Multi-agent samenwerking in actie<\/h3>\n<p>Tot slot liet Jeff een indrukwekkende demo zien van meerdere agents die samenwerkten aan een data-analyse.<br \/>\nEen Database Agent haalde gegevens op, een Quant Agent verwerkte ze en een Visualization Agent genereerde de grafiek \u2014 alles binnen een teamstructuur, aangestuurd door een Team Lead Agent.<br \/>\nIn Python definieerde hij een <code>Team<\/code>-klasse met een <code>members<\/code>-property. Door <code>share_member_interactions=True<\/code> te zetten, konden de agents onderling informatie delen. Het resultaat verscheen als een live gegenereerde plot op het scherm.<\/p>\n<h4 id=\"de-toekomst-van-agentic-ai\">De toekomst van agentic AI<\/h4>\n<p>Jeff sloot af met een vooruitblik:<br \/>\nAI-agents zullen binnenkort samenwerken zoals menselijke teams dat doen \u2014 met rollen, taken en context. De ontwikkelaar definieert het speelveld, maar de agents bepalen de uitvoering.<\/p>\n<blockquote><p>\n\u201cWe\u2019re entering the era of AI orchestration,\u201d zei hij.<br \/>\n\u201cWhere you don\u2019t just build models \u2014 you build teams.\u201d\n<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_102217_d_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"understanding-model-context-protocol-mcp-roelant-dieben\">Understanding Model Context Protocol (MCP) \u2014 Roelant Dieben<\/h2>\n<p>De sessie begon rustig, met een simpele titel op het scherm: <em>\u201cUnderstanding MCP.\u201d<\/em> Maar al snel werd duidelijk dat dit niet zomaar een technische uitleg zou worden \u2014 dit was een kijkje in wat velen de nieuwe ruggengraat van AI-integratie noemen.<\/p>\n<h3 id=\"de-opkomst-van-mcp\">De opkomst van MCP<\/h3>\n<p>Roelant trapte af met een glimlach: <em>\u201cMCP is nog geen jaar oud, maar het zorgt nu al voor flink wat buzz.\u201d<\/em><br \/>\nZijn agenda was overzichtelijk:<\/p>\n<ol>\n<li>Introductie<\/li>\n<li>Wat is MCP en waarom de ophef<\/li>\n<li>De fundamenten<\/li>\n<li>Zelf een MCP-server bouwen<\/li>\n<li>Belangrijkste inzichten<\/li>\n<\/ol>\n<p>Hij grapte over de USB-analogie \u2014 \u201cI hate this analogy, it had nine connectors\u201d \u2014 maar gebruikte het toch om te illustreren wat MCP wil zijn: \u00e9\u00e9n universele standaard voor hoe taalmodellen met externe systemen praten.<\/p>\n<h3 id=\"waarom-mcp-nodig-is\">Waarom MCP nodig is<\/h3>\n<p>LLM\u2019s, legde Roelant uit, <em>kennen jouw wereld niet.<\/em> Ze hebben geen toegang tot je documenten, API\u2019s of databases. Ze genereren tekst, maar zonder context weten ze niet wat relevant of actueel is.<\/p>\n<blockquote><p>\n\u201cContext is everything to the model,\u201d zei hij.<br \/>\n\u201cGood context makes agents smarter \u2014 and safer.\u201d\n<\/p><\/blockquote>\n<p>MCP (Model Context Protocol) is ontworpen om dat probleem op te lossen. Het combineert memory, state en access \u2014 zodat een model kan werken met externe informatie op een veilige, gestandaardiseerde manier.<\/p>\n<h3 id=\"wat-is-mcp-\">Wat is MCP?<\/h3>\n<p>MCP werd ge\u00efntroduceerd in november 2024 en is een open-source standaard die sterk doet denken aan bestaande protocollen als REST, LSP (Language Server Protocol) en JSON-RPC. Het is flexibel, webgebaseerd en bedoeld om de interactie tussen LLM\u2019s, applicaties en tools te standaardiseren.<\/p>\n<h3 id=\"demo-mcp-in-actie\">Demo: MCP in actie<\/h3>\n<p>Tijdens de demo opende hij Visual Studio Code en liet hij zien hoe GitHub Copilot, via MCP, kon communiceren met externe services.<br \/>\nHij vroeg: <em>\u201cAre there new papers on Hugging Face?\u201d<\/em> Copilot stuurde de vraag via een MCP server , die op zijn beurt de informatie ophaalde. Geen custom plugin meer nodig, geen API-sleutels overal verstopt \u2014 gewoon \u00e9\u00e9n gestandaardiseerde interface. <\/p>\n<blockquote><p>\n\u201cEvery LLM used to need its own interface,\u201d zei Roelant. \u201cMCP replaces all of that.\u201d\n<\/p><\/blockquote>\n<p>Hij toonde een GitHub MCP registry , waar al honderden servers beschikbaar zijn \u2014 van Playwright tot Hugging Face.<\/p>\n<h3 id=\"hoe-mcp-werkt\">Hoe MCP werkt<\/h3>\n<p>MCP draait om drie kerncomponenten:<\/p>\n<ul>\n<li>Tools \u2013 functies of API-calls die een model kan gebruiken.<\/li>\n<li>Resources \u2013 leesbare datasets, bestanden of endpoints.<\/li>\n<li>Prompts \u2013 vooraf gedefinieerde templates voor AI-interacties.<\/li>\n<\/ul>\n<p>Een MCP client roept tools aan of vult prompts in, terwijl een MCP server die tools en bronnen beschikbaar stelt.<br \/>\nDe communicatie verloopt via JSON-RPC , met endpoints zoals <code>\/tools\/list<\/code> en <code>\/tools\/invoke<\/code>.<br \/>\nRoelant liet met de MCP Explorer zien hoe je de beschikbare tools kunt inspecteren, tokens kunt toevoegen en direct met servers kunt praten.<\/p>\n<h3 id=\"lokale-vs-externe-mcp-communicatie\">Lokale vs. externe MCP communicatie<\/h3>\n<p>Hij onderscheidde twee typen verbindingen:<\/p>\n<ul>\n<li>STDIO \u2013 lokaal, bidirectioneel en met lage latency (bijvoorbeeld binnen je eigen machine of editor).<\/li>\n<li>Streamable HTTP \u2013 voor externe, netwerkgebaseerde communicatie met authenticatie en streaming-ondersteuning.<\/li>\n<\/ul>\n<p>STDIO is snel en betrouwbaar voor lokale agents; HTTP is ideaal voor cloudgebaseerde of remote toepassingen.<\/p>\n<h3 id=\"pok-mon-een-verrassende-analogie\">Pok\u00e9mon: een verrassende analogie<\/h3>\n<p>De eerste slide was al in Pokemon stijl.<\/p>\n<blockquote><p>\n\u201cIt will make sense later,\u201d had hij aan het begin gezegd \u2014 en dat deed het.\n<\/p><\/blockquote>\n<p>Hij legde de analogie uit:<\/p>\n<ul>\n<li>Pok\u00e9dex \u2192 MCP Registry<\/li>\n<li>Pok\u00e9mon \u2192 MCP Servers<\/li>\n<li>Pok\u00e9mon Skills \u2192 Tools<\/li>\n<li>Pok\u00e9mon Cards \u2192 Resources<\/li>\n<li>Pok\u00e9ball \u2192 Client<\/li>\n<li>Trainer \u2192 Host<\/li>\n<li>Battle \u2192 Task<\/li>\n<\/ul>\n<p>Een speelse, maar effectieve manier om te laten zien hoe MCP een ecosysteem vormt waarin clients, servers en tools samenwerken.<\/p>\n<h3 id=\"beveiliging-en-authenticatie\">Beveiliging en authenticatie<\/h3>\n<p>Omdat MCP toegang kan krijgen tot gevoelige data, is veiligheid cruciaal.<br \/>\nHet protocol gebruikt OAuth 2.1 en OpenID Connect , met nadruk op \u201cleast privilege\u201d en tokenvalidatie.<br \/>\nRoelant legde uit dat OAuth 2.1 inmiddels veiliger en consistenter is dan zijn voorganger en dat Microsoft werkt aan Entra Agent ID als mogelijke uitbreiding voor <em>agentic identity management.<\/em><\/p>\n<blockquote><p>\n\u201cMCP is only as secure as you make it,\u201d zei hij. \u201cKeep it updated, and follow best practices.\u201d\n<\/p><\/blockquote>\n<h3 id=\"zelf-een-mcp-server-bouwen\">Zelf een MCP-server bouwen<\/h3>\n<p>Tot slot liet hij zien hoe eenvoudig het is om een eigen MCP-server te bouwen.<br \/>\nIn Visual Studio voegde hij via NuGet het <code>ModelContextProtocol<\/code>-pakket toe.<br \/>\nMet slechts zes regels code registreerde hij een HTTP-client naar de Pok\u00e9API \u2014 en maakte zo een simpele, werkende MCP-server met een eigen tool.<\/p>\n<blockquote><p>\n\u201cJust HTTP,\u201d benadrukte hij. \u201cNo magic.\u201d\n<\/p><\/blockquote>\n<h3 id=\"key-takeaways\">Key takeaways<\/h3>\n<ul>\n<li>MCP maakt AI \u00e9cht contextbewust.<\/li>\n<li>Het standaardiseert de manier waarop LLM\u2019s tools, data en geheugen gebruiken.<\/li>\n<li>Het is open, uitbreidbaar en al breed geadopteerd.<\/li>\n<li>Beveiliging is ge\u00efntegreerd, maar blijft je eigen verantwoordelijkheid.<\/li>\n<li>Context engineering \u2014 het bewust ontwerpen van de informatie die je AI krijgt \u2014 wordt een nieuw specialisme.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_114241_d_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"var-ai-referees-and-the-future-of-code-reviews-amber-vanderburg\">VAR, AI Referees, and the Future of Code Reviews &#8211; Amber Vanderburg<\/h2>\n<p>Amber opent met een voetbalclip \u2014 een bal die n\u00e9t over de doellijn gaat. De zaal reageert meteen: herkenning, frustratie, discussie. Ze glimlacht: <em>\u201cOutrage in football. What do we do in situations like this?\u201d<\/em><\/p>\n<p>Amber is voormalig sportcoach en nu actief in tech leadership. Ze neemt het publiek mee door de geschiedenis van technologie in de sport \u2014 en wat we daarvan kunnen leren als softwareontwikkelaars.<\/p>\n<p>In 1731 verscheen de eerste stopwatch. Daarna kwam de elektronische klok, de \u2018photo finish\u2019 en automatische scorebepaling bij bowlen. In 1995 deed video-refereeing zijn intrede en in 2001 kwam AI de sport binnen via cricket \u2014 het beroemde <em>Hawk-Eye<\/em> systeem dat met zes tot tien camera\u2019s de balbeweging volgt.<\/p>\n<p>De technologie verbeterde de kijkervaring , maar bracht ook vragen over eerlijkheid en vertrouwen. Tennis volgde in 2006 met <em>real call video assistance<\/em>. In 2010 zagen we het bekende WK-moment tussen Engeland en Duitsland: een doelpunt dat niet werd toegekend. Twee jaar later voerde de FIFA doeltechnologie in en in 2018 werden videoreferees officieel gebruikt tijdens het WK. Volgens FIFA lag de nauwkeurigheid toen op 99,3%.<\/p>\n<p>In 2022 kwam daar semi-automatische buitenspeltechnologie bij: twaalf camera\u2019s, twintig datapunten per speler. Amber stelt de vraag: <em>\u201cDo we even need human referees anymore?\u201d<\/em><\/p>\n<p>Maar: zonder context is er geen vertrouwen. Het publiek accepteert een menselijke fout nog eerder dan een kil technisch besluit van een systeem.<br \/>\nDaarna maakt Amber de overstap naar software: de toekomst van code reviews.<\/p>\n<p>Ze laat een reeks beelden zien van gebeurtenissen waar technologie \u201ctechnisch correct\u201d handelde, maar menselijk gezien faalde \u2014 van persoonlijke tragedies tot Dieselgate bij Volkswagen. Een \u201cdefeat device\u201d liet auto\u2019s anders presteren tijdens tests, waardoor ze voldeden aan regels, maar de werkelijkheid maskeerden.<br \/>\nDe les: <em>context en intentie doen ertoe.<\/em><\/p>\n<p>Amber benadrukt dat goede code reviews \u2014 net als goede arbitrage \u2014 niet alleen gaan over correctheid , maar over kritisch denken , empathie en communicatie.<br \/>\nZe zegt: \u201cThe questions you ask reveal your values.\u201d<\/p>\n<p>Ze illustreert dit met voorbeelden uit het onderwijs en uit het dagelijks leven.<\/p>\n<p>Wie bij een auto-ongeluk eerst vraagt \u201choe erg is de schade?\u201d in plaats van \u201cben je ok\u00e9?\u201d, laat zien welke waarde prioriteit krijgt.<br \/>\nHetzelfde geldt bij code reviews: de vragen die we stellen sturen het gedrag van een team.<\/p>\n<p>Amber vertelt over haar ervaring in India, waar ze een voetbalacademie leidde. De spelers waren taakgericht: ze wachtten op instructies en feedback, zonder het grotere spel te zien. Ze leerden een vaardigheid, maar misten context en creativiteit.<br \/>\nNa jaren training begreep ze dat haar taak niet was om hen n\u00f3g beter te laten uitvoeren, maar om hen te leren denken in systemen \u2014 de <em>bigger picture<\/em> te zien.<br \/>\nTot slot maakt ze de sprong naar AI in coaching en code reviews.<\/p>\n<p>AI kan ons helpen, maar zonder context mist het systeem menselijkheid. Ze toont beelden van vertrouwen en samenwerking en stelt de vraag:<br \/>\n<em>\u201cHow are you building trust \u2014 with your team, your tools, your AI?\u201d<\/em><br \/>\nVertrouwen, zegt ze, bestaat uit competence, character en communication.<br \/>\nJe kunt iemand vertrouwen met een geheim, maar niet met je auto \u2014 omdat vertrouwen domeinspecifiek is.<\/p>\n<p>Goede code reviews, net als goede scheidsrechters, vragen om datzelfde evenwicht tussen correctheid en context.<br \/>\nHet is niet genoeg dat iets werkt \u2014 het moet kloppen binnen de waarden van het team en de gebruikers.<\/p>\n<p>Amber eindigt met een persoonlijke anekdote: een jonge speler die \u201cpass!\u201d riep, maar niet wist waarom. Pas toen ze samen de bedoeling achter de actie begrepen, ontstond er echt spelinzicht.<br \/>\n\u201cReviewing code,\u201d zegt ze, \u201cisn\u2019t about shouting instructions \u2014 it\u2019s about helping others see the field.\u201d<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_134853_d_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"the-next-decade-of-software-development-richard-campbell\">The Next Decade of Software Development &#8211; Richard Campbell<\/h2>\n<p>Richard Campbell, bekend van <em>DotNetRocks<\/em> en <em>RunAs Radio<\/em> (samen goed voor bijna tweeduizend afleveringen), nam het publiek mee op een reis door de tijd \u2014 van de begindagen van de cloud tot aan de toekomst van softwareontwikkeling in het komend decennium.<\/p>\n<h3 id=\"het-einde-van-moore-s-law\">Het einde van Moore\u2019s Law<\/h3>\n<p>Richard dook vervolgens de geschiedenis van hardware in: van Fairchild Semiconductor in 1960 tot Intel\u2019s vroege RAM-chips. Moore\u2019s Law \u2014 de observatie dat het aantal transistors op een chip ongeveer elke twee jaar verdubbelt \u2014 heeft decennialang onze vooruitgang gedragen. Maar, zei hij: <em>\u201cWe\u2019re at the end of that curve.\u201d<\/em><br \/>\nDe afstanden tussen transistors worden nu gemeten in nanometers en zelfs picometers. Chips worden 3D en fabrikanten als Intel en TSMC werken aan 2nm-processors. Ondertussen komen ARM-processors op in de cloud, terwijl Apple\u2019s M5-chips met 16 cores en neurale netwerken krachtige lokale AI-taken draaien.<br \/>\nZijn punt: hardwareontwikkeling verandert niet alleen in tempo, maar ook in karakter.<br \/>\nDe toekomst ligt in specialisatie \u2014 quantum, neuromorfisch, edge \u2014 in plaats van simpelweg sneller en kleiner.<\/p>\n<h3 id=\"de-evolutie-van-software\">De evolutie van software<\/h3>\n<p>Richard liet een lijst van talen en tools zien die developers de afgelopen decennia hebben gebruikt: Python, Java, C#, JavaScript, Swift, Go, Kotlin, Rust, TypeScript.<br \/>\n\u201cNone of them are perfect,\u201d zei hij. \u201cThey\u2019re just the current answers.\u201d<br \/>\nHij besprak de verschuiving van client naar cloud, van Windows naar Linux en van traditionele apps naar browsers en PWAs.<br \/>\n\u201c.NET is 20 years old,\u201d herinnerde hij het publiek, \u201cand .NET 10 is around the corner.\u201d<br \/>\nEr volgde een snelle tour door de wereld van low-code tools \u2014 Power BI, Power Apps, Power Automate, Power Virtual Agents \u2014 en de manier waarop ze traditionele ontwikkelcycli versnellen. Toch, benadrukte hij, blijft de kern hetzelfde: <em>\u201cGood software is still about solving real problems.\u201d<\/em><\/p>\n<h3 id=\"ai-het-slechtste-goed-bedachte-woord\">AI: het slechtste goed bedachte woord<\/h3>\n<p>Richard noemde \u201cAI\u201d het slechtste marketingwoord ooit.<br \/>\nHij lachte: <em>\u201cIf it doesn\u2019t work, we call it AI. Once it works, we rename it.\u201d<\/em><br \/>\nHij verwees naar HAL 9000 uit <em>2001: A Space Odyssey<\/em>, naar de angst voor machines die ons vervangen \u2014 en naar de ironie dat moderne AI vooral ons werk makkelijker maakt.<br \/>\nHij beschreef de opkomst van OpenAI, Google Brain, de ruzies over financiering en de samenwerking tussen Microsoft en OpenAI die leidde tot ChatGPT en GitHub Copilot.<br \/>\nToch waarschuwde hij: <em>\u201cCopilot is your copilot \u2014 but if the plane crashes, it\u2019s still your fault.\u201d<\/em><br \/>\nAI kan code genereren, workflows versnellen en documentatie doorspitten, maar het neemt geen verantwoordelijkheid over.<\/p>\n<h3 id=\"technologiehypes-en-wat-blijft\">Technologiehypes en wat blijft<\/h3>\n<p>Op het scherm verscheen de Gartner Hype Cycle. Richard vergeleek de huidige AI-golf met de dotcom-bubbel van de jaren negentig.<br \/>\nToen ook kwam er een stortvloed aan investeringen en hoewel veel bedrijven verdwenen, bleef de infrastructuur: de netwerken, servers, browsers en standaarden waarop het internet vandaag nog steeds draait.<br \/>\n\u201cBubbles come and go,\u201d zei hij, \u201cbut the foundations remain.\u201d<br \/>\nHij noemde zeven grote bedrijven die nu de wereld van AI en cloud domineren en sprak over de groeiende energiebehoefte van datacenters, de verschuiving van banen en het ontstaan van nieuwe rollen rondom AI-veiligheid, ethiek en auditing.<\/p>\n<h3 id=\"verder-dan-generatieve-ai\">Verder dan generatieve AI<\/h3>\n<p>Richard ging daarna dieper in op generatieve AI buiten tekst en code. Hij noemde <em>AlphaFold 3<\/em> \u2014 dat eiwitstructuren voorspelt \u2014 als voorbeeld van AI die wetenschappelijke vooruitgang versnelt.<br \/>\nHij sprak over batterijen waarvan we nog niet precies begrijpen waarom ze werken, over landbouw waar sensoren en drones bemesting optimaliseren en over de manier waarop machine learning ons helpt zulke complexe systemen te modelleren.<br \/>\nHij benadrukte dat innovatie niet altijd zichtbaar is. \u201cPhones haven\u2019t changed much,\u201d zei hij, \u201cbut what happens <em>behind<\/em> the glass is revolutionary.\u201d<br \/>\nHij noemde Apple Vision Pro en Meta\u2019s nieuwe brillen als stappen in de richting van \u201csee-through computing\u201d \u2014 maar gaf toe dat we de echte killer use-case voor kenniswerkers nog moeten vinden.<\/p>\n<h3 id=\"quantum-en-de-grenzen-van-kennis\">Quantum en de grenzen van kennis<\/h3>\n<p>Tot slot nam Richard het publiek mee naar de wereld van quantum computing.<br \/>\nHij sprak over IBM\u2019s <em>Quantum Eagle<\/em>, Microsoft\u2019s <em>Majorana<\/em>-processor en de bizarre omstandigheden waarin deze machines functioneren \u2014 gekoeld met helium, zwevend in vacu\u00fcm, trillingsvrij tot op atomaire schaal.<br \/>\nHij vergeleek de huidige fase van quantum computing met de begindagen van de transistor.<br \/>\n\u201cBack then,\u201d zei hij, \u201cwe didn\u2019t even know what digital meant yet. Now we\u2019re staring at the next revolution \u2014 and just like then, the unreliable will eventually make the reliable.\u201d<br \/>\nHij eindigde met een optimistische blik:<\/p>\n<blockquote><p>\n\u201cWe\u2019re in the big time now. We get to make the future.\u201d\n<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_143132_d_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"relate-reflect-respond-alice-meredith\">Relate. Reflect. Respond. &#8211; Alice Meredith<\/h2>\n<p>Alice Meredith, met dertig jaar ervaring in leiderschap en verandermanagement, bracht in haar sessie een frisse, menselijke kijk op werk, communicatie en verandering. Haar carri\u00e8re begon ooit bij Blockbuster Video , daarna werkte ze in HR-leiderschap bij Best Buy en ging daarna trainingen geven bij Pluralsight, waar ze inmiddels meer dan dertig leiderschapscursussen ontwikkelde. Haar missie: mensen helpen de <em>menselijke kant van werk<\/em> te beheersen \u2014 om niet alleen functioneel aanwezig te zijn, maar ook echt verbinding te maken, te reflecteren en bewust te reageren.<\/p>\n<blockquote><p>\n\u201cSoft skills aren\u2019t soft,\u201d zei ze. \u201cThey\u2019re the hard stuff that makes the hard skills matter.\u201d\n<\/p><\/blockquote>\n<h3 id=\"de-menselijke-kant-van-werk\">De menselijke kant van werk<\/h3>\n<p>Om effectiever te zijn in ons werk, moeten we eerst begrijpen hoe we zelf \u2018geprogrammeerd\u2019 zijn \u2014 ons menselijk besturingssysteem , zoals zij het noemde: een verzameling van levenservaringen, overtuigingen en automatische patronen die we soms zelf hebben gekozen, maar vaak gewoon hebben overgenomen.<br \/>\nWe draaien allemaal met een eigen set \u2018apps\u2019: persoonlijkheidstypologie\u00ebn zoals DISC, MBTI, Big Five enneagram en Gallup Strengths. Geen enkele is perfect, maar samen geven ze inzicht in onze <em>kern<\/em>.<br \/>\nVolgens Alice bestaat die kern uit vier fundamentele drijfveren:<\/p>\n<ul>\n<li>Macht (Power) &#8211; Ze hebben de wens om dingen te laten gebeuren.<\/li>\n<li>Loyaliteit (Loyalty) &#8211; Gedreven door loyaliteit, relaties en waarden.<\/li>\n<li>Plezier (Fun) Gedreven door plezier. Hebben veel energie.<\/li>\n<li>Vrede (Peace) &#8211; Cre\u00ebren rust, stabiliteit en veiligheid.<\/li>\n<\/ul>\n<p>Ze vergeleek onze sterke kanten met een huis met een balkon en een kelder:<\/p>\n<blockquote><p>\n\u201cOp het balkon schitteren je kwaliteiten; in de kelder schieten ze door en worden ze je valkuil.\u201d\n<\/p><\/blockquote>\n<p>Het doel is om jezelf in realtime te herkennen en terug naar het balkon te bewegen \u2014 naar balans.<\/p>\n<h3 id=\"relate-de-kracht-van-echt-zien\">Relate: de kracht van echt zien<\/h3>\n<p>In het deel <em>Relate<\/em> vertelde ze een verhaal over een 14-jarige jongen die ze ooit ontmoette aan het strand van Venice Beach. Hij deed stunts op zijn skateboard, terwijl dat daar eigenlijk niet mocht. Toen ze hem aankeek en simpelweg zei: <em>\u201cI see you\u201d<\/em>, veranderde zijn houding compleet.<\/p>\n<blockquote><p>\n\u201cBeing seen makes people feel they matter.\u201d\n<\/p><\/blockquote>\n<p>In organisaties werkt het net zo. Mensen willen zich gezien en gehoord voelen. Kleine gebaren kunnen daar groot verschil in maken.<br \/>\nZe gaf een voorbeeld van haar tijd bij Best Buy, waar ze een interne HR-e-mail herschreef die aanvankelijk formeel en afstandelijk was. In twintig seconden maakte ze de boodschap warmer, persoonlijker, menselijker \u2014 <em>\u201cYou matter\u201d<\/em> in plaats van <em>\u201cYou must.\u201d<\/em><\/p>\n<h3 id=\"reflect-het-bouwen-van-verbindingen\">Reflect: het bouwen van verbindingen<\/h3>\n<p>Alice moedigde leiders aan om \u201cconnection bombs\u201d te planten \u2014 spontane, menselijke interacties op de werkvloer die relaties versterken. Ze vertelde hoe ze ooit, tijdens een lunchwandeling, een toevallige ontmoeting had over een Journey-concert. Dat leidde tot een halfuur gesprek, nieuwe inzichten en een langdurige samenwerking.<\/p>\n<blockquote><p>\n\u201cEvery small conversation expands your network and builds trust.\u201d\n<\/p><\/blockquote>\n<p>Verbinding ontstaat niet in vergaderingen of KPI\u2019s, maar in de <em>tussenruimte<\/em> \u2014 de momenten waarin mensen zichzelf mogen zijn.<\/p>\n<h3 id=\"respond-omgaan-met-conflicten-en-verandering\">Respond: omgaan met conflicten en verandering<\/h3>\n<p>Het derde onderdeel draaide om responsiviteit \u2014 hoe we reageren in situaties van spanning of feedback.<br \/>\nAlice haalde het Thomas-Kilmann-conflictmodel aan, met vijf stijlen:<\/p>\n<ul>\n<li>Competing (win-verlies)<\/li>\n<li>Avoiding (verlies-verlies)<\/li>\n<li>Accommodating (verlies-winst)<\/li>\n<li>Compromising (klein win-klein verlies)<\/li>\n<li>Collaborating (win-win)<\/li>\n<\/ul>\n<p>Ze benadrukte dat conflictstijlen niet statisch zijn: we kunnen leren om flexibel te schakelen, afhankelijk van de context.<\/p>\n<h3 id=\"rommelig-einde\">Rommelig einde<\/h3>\n<p>Zo eindigde de sessie zonder duidelijke conclusie met veel persoonlijke anektotes.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_163206_d_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"what-s-new-in-c-13-14-and-beyond-bart-de-smet\">What\u2019s new in C# 13, 14, and beyond &#8211; Bart de Smet<\/h2>\n<p>Bart de Smet, Principal Software Engineer bij Microsoft en bekend gezichten binnen de .NET-community, nam het publiek mee in een snelle maar diepgaande tour door de nieuwste features van C# 13 , de aankomende verbeteringen in C# 14 en zelfs een voorproefje van wat daarna nog in de pijplijn zit.<br \/>\nZoals altijd deed hij dat met zijn kenmerkende combinatie van precisie, snelheid en diepgang.<\/p>\n<h3 id=\"params-reimagined\">Params reimagined<\/h3>\n<p>C# 13 breidt de bekende <code>params<\/code>-functionaliteit eindelijk uit. Waar <code>params<\/code> sinds de begintijd alleen arrays accepteerde, kunnen ze nu ook werken met andere collection types \u2014 denk aan <code>IEnumerable&lt;T&gt;<\/code>, <code>IList&lt;T&gt;<\/code>, <code>ImmutableArray&lt;T&gt;<\/code>, of zelfs custom types die <code>IEnumerable<\/code> implementeren.<\/p>\n<h3 id=\"locking-eenvoudiger-en-veiliger\">Locking: eenvoudiger en veiliger<\/h3>\n<p>Een van de meest zichtbare verbeteringen is de nieuwe <code>lock<\/code> syntax. In plaats van expliciet te werken met <code>Monitor.Enter<\/code> en <code>Monitor.Exit<\/code>, introduceert C# 13 een veiligere, moderne variant<\/p>\n<h3 id=\"escape-sequences-een-kleine-maar-fijne-update\">Escape sequences: een kleine maar fijne update<\/h3>\n<p>Console-API\u2019s ondersteunen nu de Unicode escape <code>\\e<\/code> (in plaats van het oude <code>\\x1B<\/code>), wat code leesbaarder maakt bij het werken met ANSI-color output of terminal-besturing.<\/p>\n<blockquote><p>\nKleine verbeteringen, groot gemak \u2014 \u201cless hexadecimal guessing,\u201d aldus Bart.\n<\/p><\/blockquote>\n<h3 id=\"ref-en-unsafe-in-iterators\">Ref en unsafe in iterators<\/h3>\n<p>Een meer geavanceerde toevoeging: iterators (<code>yield return<\/code>) kunnen nu werken met <code>ref<\/code> en <code>unsafe<\/code> contexten , zonder onnodige heap-allocaties.<br \/>\nHierdoor worden iterators effici\u00ebnter bij performancekritische code, bijvoorbeeld bij <code>Span&lt;T&gt;<\/code>-operaties.<br \/>\n<code>ref struct<\/code> types blijven wel beperkt tot de stack \u2014 ze kunnen dus niet naar de heap of interfaces worden gecast \u2014 maar dankzij nieuwe compilerondersteuning kun je ze nu combineren met <code>IDisposable<\/code> via het <code>allow ref structs<\/code>-attribuut.<\/p>\n<h3 id=\"partial-members-en-de-field-keyword\">Partial members en de <code>field<\/code> keyword<\/h3>\n<p>C# 13 breidt partial classes verder uit met partial members \u2014 niet alleen methodes, maar ook indexers, properties en constructors kunnen nu als <em>partial<\/em> worden gedefinieerd. De nieuwe <code>field<\/code> keyword maakt het bovendien eenvoudiger om in properties expliciet naar het backing field te verwijzen: Een elegante oplossing voor wie vaak boilerplate in properties moest schrijven.<\/p>\n<h3 id=\"overload-resolution-attributes\">Overload resolution attributes<\/h3>\n<p>Een subtiele maar belangrijke verandering: C# 13 introduceert een nieuw <code>[OverloadResolutionPriority]<\/code> attribuut, waarmee library-ontwikkelaars de prioriteit van overloads kunnen sturen \u2014 zonder binary-breaking changes. Vooral nuttig bij API\u2019s die <code>ReadOnlySpan&lt;T&gt;<\/code> ondersteunen.<\/p>\n<h3 id=\"c-14-de-volgende-stap\">C# 14 \u2013 de volgende stap<\/h3>\n<h3 id=\"extension-members\">Extension members<\/h3>\n<p>De grootste verandering die eraan komt, zijn extension members \u2014 niet alleen methodes, maar ook properties, indexers en zelfs operators kunnen worden uitgebreid.<br \/>\nDat betekent dat je bijvoorbeeld dit kunt doen:<\/p>\n<pre><code class=\"lang-csharp\">extension StringExtensions <span class=\"hljs-keyword\">on<\/span> <span class=\"hljs-keyword\">string<\/span>\r\n{\r\n    <span class=\"hljs-keyword\">int<\/span> WordCount =&gt; <span class=\"hljs-keyword\">this<\/span>.Split(<span class=\"hljs-string\">' '<\/span>).Length;\r\n}\r\n<\/code><\/pre>\n<p>De feature wordt nog verder uitgewerkt, maar de potentie is groot \u2014 zeker voor domeinspecifieke API\u2019s.<\/p>\n<h3 id=\"user-defined-compound-assignment\">User-defined compound assignment<\/h3>\n<p>C# 14 introduceert ook custom compound assignments zoals <code>+=<\/code> of <code>++<\/code> in structs. Zo kun je zelf bepalen hoe samengestelde bewerkingen zich gedragen \u2014 een krachtig hulpmiddel voor bijvoorbeeld numerieke types of matrixklassen.<\/p>\n<h3 id=\"null-conditional-assignment\">Null-conditional assignment<\/h3>\n<p>De welbekende <code>?.<\/code> operator krijgt een zusje: de null-conditional assignment.<br \/>\nWaar je vroeger alleen kon lezen met <code>?.<\/code>, kun je nu ook veilig toewijzen:<\/p>\n<pre><code class=\"lang-csharp\">person?.<span class=\"hljs-built_in\">Address<\/span> ??= new <span class=\"hljs-built_in\">Address<\/span>();\r\n<\/code><\/pre>\n<h3 id=\"beyond-de-horizon-van-c\">Beyond: de horizon van C<\/h3>\n<p>Tot slot gaf Bart een vooruitblik op toekomstige concepten \u2014 zoals unbound generic names, lambda-parameters met modifiers en verdere uitbreiding van partial members.<br \/>\nDe focus blijft volgens hem op type safety, performance en expressiviteit \u2014 drie pijlers waar C# al twintig jaar om bekendstaat.<\/p>\n<blockquote><p>\n\u201cWe\u2019re not done evolving,\u201d sloot Bart af. \u201cC# keeps growing with the developers who use it.\u201d\n<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_175745_d_1_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"practical-tips-for-keeping-your-c-code-base-clean-dennis-doomen\">Practical tips for keeping your C# code base clean &#8211; Dennis Doomen<\/h2>\n<p>Dennis Doomen \u2014 bekend van zijn <em>Fluent Assertions<\/em>-library en zijn expertise in clean architecture \u2014 deelde in deze sessie zijn meest beproefde adviezen voor het onderhouden van een gezonde, schaalbare en begrijpelijke C#-codebase.<br \/>\nZijn boodschap was duidelijk: <em>\u201cClean code isn\u2019t about writing less code \u2014 it\u2019s about writing code that everyone wants to work with.\u201d<\/em><\/p>\n<h3 id=\"keep-it-simple-fight-unnecessary-complexity\">Keep it simple: fight unnecessary complexity<\/h3>\n<p>Hij begon met een observatie over hoe veel teams onnodig complexe architecturen cre\u00ebren. Niet elke toepassing heeft microservices nodig, benadrukte hij:<\/p>\n<blockquote><p>\n\u201cIf you don\u2019t need independent scaling, merge those microservices back into a modular monolith.\u201d\n<\/p><\/blockquote>\n<p>Het is volgens hem beter om eerst te kijken <em>waar<\/em> je daadwerkelijk moet schalen \u2014 en pas daarna de architectuur daarop aan te passen. Microservices zijn een middel, geen doel.<br \/>\nDe Gartner Hype Cycle kwam voorbij: technologie\u00ebn worden vaak te vroeg geadopteerd. Dennis moedigde aan om pragmatisch te blijven \u2014 eenvoud boven hype.<\/p>\n<h3 id=\"organiseer-de-codebase-logisch\">Organiseer de codebase logisch<\/h3>\n<p>Een terugkerend thema: structuur.<br \/>\nDe mapstructuur van je project moet de architectuur weerspiegelen, niet de technologie. Geen \u201cControllers\u201d-, \u201cServices\u201d- en \u201cRepositories\u201d-mappen, maar verticale slices zoals <em>Orders<\/em>, <em>Payments<\/em>, <em>Users<\/em>.<\/p>\n<blockquote><p>\n\u201cThe folder structure should explain your architecture at a glance.\u201d\n<\/p><\/blockquote>\n<p>Daarnaast: hou concrete implementaties intern (<code>internal<\/code>) en exposeer alleen interfaces waar nodig. Door conventie en tooling kun je afdwingen dat interne onderdelen niet per ongeluk publiek worden.<\/p>\n<h3 id=\"gebruik-tooling-om-consistent-te-blijven\">Gebruik tooling om consistent te blijven<\/h3>\n<p>Automatisering is essentieel om kwaliteit te bewaken. Dennis liet zien hoe EditorConfig , Prettier en .NET analyzers kunnen helpen bij consistente formatting en statische code-analyse.<br \/>\nOok JetBrains Inspect, SonarQube en Roslyn analyzers noemde hij als hulpmiddelen om vroegtijdig problemen te detecteren.<\/p>\n<blockquote><p>\n\u201cLet tools do the boring work so you can focus on design.\u201d\n<\/p><\/blockquote>\n<p>Zelfs AI kan hierbij helpen \u2014 hij noemde Copilot en Sonnet als voorbeelden van assistenten die <em>mee kunnen denken<\/em> bij refactoring, zolang je hun output nog steeds als je eigen code beschouwt.<\/p>\n<h3 id=\"document-the-why-not-the-how-\">Document the <em>why<\/em>, not the <em>how<\/em><\/h3>\n<p>Veel documentatie schiet tekort omdat ze uitlegt <em>wat<\/em> de code doet, niet <em>waarom<\/em> ze zo is opgebouwd.<br \/>\nDennis pleitte voor korte, doelgerichte commentaren die context toevoegen:<\/p>\n<blockquote><p>\n\u201cExplain the purpose, not the procedure.\u201d\n<\/p><\/blockquote>\n<p>Gebruik beschrijvende titels en laat de code zelf het werk doen. Tools zoals GhostDoc kunnen helpen bij basisdocumentatie, maar het echte werk zit in de intentie.<\/p>\n<h3 id=\"slimme-commit-en-branchstrategie-n\">Slimme commit- en branchstrategie\u00ebn<\/h3>\n<p>Versiebeheer is volgens hem een onderschat onderdeel van clean code.<br \/>\nKies \u00e9\u00e9n bekende branchstrategie \u2014 zoals GitHub Flow of GitFlow \u2014 en houd je eraan.<br \/>\nBelangrijker nog:<\/p>\n<ul>\n<li>Splits refactoring commits van functionele wijzigingen.<\/li>\n<li>Houd PR\u2019s klein en gericht.<\/li>\n<li>Gebruik fix-up commits en interactive rebases om je geschiedenis schoon te houden.<\/li>\n<\/ul>\n<blockquote><p>\n\u201cA clean commit history is a clean story of your code.\u201d\n<\/p><\/blockquote>\n<p>Hij toonde voorbeelden in GitKraken hoe kleine, goed getitelde commits het reviewproces aanzienlijk verbeteren.<\/p>\n<h3 id=\"reduce-dependencies-and-coupling\">Reduce dependencies and coupling<\/h3>\n<p>Een schoon systeem is een los systeem.<br \/>\nGebruik Central Package Management om versies te beheren en afhankelijkheden te minimaliseren.<br \/>\nWanneer code herbruikbaar moet zijn, publiceer het als een NuGet-pakket in plaats van losse binaries.<br \/>\nVerder:<\/p>\n<ul>\n<li>Vermijd <em>mocks of mocks<\/em> door interfaces bewust te ontwerpen.<\/li>\n<li>Gebruik <em>adapters<\/em> om afhankelijkheden te isoleren.<\/li>\n<li>Overweeg een omgekeerde afhankelijkheidsrichting wanneer een module te veel weet van een ander.<\/li>\n<\/ul>\n<blockquote><p>\n\u201cEvery dependency is a liability \u2014 treat it like one.\u201d\n<\/p><\/blockquote>\n<h3 id=\"dupliceer-liever-dan-te-vroeg-te-abstraheren\">Dupliceer liever dan te vroeg te abstraheren<\/h3>\n<p>Een opvallend advies dat vaak tot discussie leidt:<\/p>\n<blockquote><p>\n\u201cDuplicate before you abstract.\u201d\n<\/p><\/blockquote>\n<p>Dennis legde uit dat je pas moet abstraheren wanneer je dezelfde code minstens drie keer nodig hebt.<br \/>\nTe vroege generieke oplossingen leiden tot onnodige complexiteit en onbegrijpelijke code.<\/p>\n<blockquote><p>\n\u201cIf it\u2019s too complicated to reuse, maybe it\u2019s not worth reusing.\u201d\n<\/p><\/blockquote>\n<p>Hij verwees naar het principe van de \u201cRule of Three\u201d en de <em>YAGNI<\/em>-filosofie (<em>You Ain\u2019t Gonna Need It<\/em>).<\/p>\n<h3 id=\"refactoring-and-scouting-rule\">Refactoring and scouting rule<\/h3>\n<p>Refactoring hoort een natuurlijke gewoonte te zijn, geen project op zich.<br \/>\nKleine verbeteringen mogen continu gebeuren, mits goed afgescheiden in commits.<br \/>\nDennis sloot af met het \u201cScouting Rule\u201d-principe:<\/p>\n<blockquote><p>\n\u201cAlways leave the code cleaner than you found it.\u201d\n<\/p><\/blockquote>\n<h3 id=\"samenvattend\">Samenvattend<\/h3>\n<p>De sessie was een praktische gids vol nuchtere adviezen:<\/p>\n<ul>\n<li>Gebruik minder patronen en meer gezond verstand.<\/li>\n<li>Automatiseer consistentie.<\/li>\n<li>Schoon commitgedrag is net zo belangrijk als schone code.<\/li>\n<li>En abstraheer pas als het \u00e9cht nodig is.<\/li>\n<\/ul>\n<p>Of zoals Dennis het zelf zei:<\/p>\n<blockquote><p>\n\u201cClean code isn\u2019t a style \u2014 it\u2019s a culture. Build it, live it, and your future self will thank you.\u201d\n<\/p><\/blockquote>\n<h3 id=\"building-the-ultimate-safety-net-with-integration-tests-jimmy-bogard\">Building the Ultimate Safety Net with Integration Tests \u2014 Jimmy Bogard<\/h3>\n<p>Het was best druk toen Jimmy Bogard begon aan zijn talk. Z&#39;n presentatie was: <em>demo-heavy<\/em>, geen theoretisch verhaal. Hij startte met een herkenbaar beeld \u2014 een project zonder tests, tot de eerste bug opdook. En dan de pijnlijke realiteit: hoe later je een bug ontdekt, hoe duurder het wordt. Toch blijven veel teams hangen bij unit tests of, erger nog, helemaal geen automatische tests.<br \/>\nBogard haalde de <em>testing pyramid<\/em> erbij om dat punt te illustreren. Unit tests zijn snel en goedkoop, maar vaak te ver verwijderd van het echte proces. UI-tests zijn daarentegen traag en breekbaar. Integration tests \u2014 die het geheel samenbrengen \u2014 zijn trager dan unit tests, maar leveren w\u00e9l de meeste waarde op, juist omdat ze de echte componenten gebruiken.<br \/>\nHij liet een eenvoudig voorbeeld zien met een applicatie die queries uitvoert, business-logica afhandelt en data opslaat. In de praktijk zijn de meeste systemen complexer: veel interacties met de database, mocks die verouderen en test suites die vooral vertrouwen vernietigen in plaats van opbouwen. Zijn boodschap was duidelijk: \u201cMocks can lie. Integration tests don\u2019t.\u201d<br \/>\nUnit tests kunnen je een vals gevoel van veiligheid geven. Ze zijn vaak te sterk gekoppeld aan implementatiedetails, breken bij refactoring en vangen zelden echte regressies. Bogard pleitte ervoor om minder te \u201cmocken\u201d en meer te testen met echte afhankelijkheden \u2014 zonder externe tools, tenzij het echt niet anders kan.<br \/>\nDaarna kwam de live demo. Hij gebruikte een <em>Microsoft.AspNetCore.Mvc.Testing library<\/em> en <em>WebApplicationFactory<\/em> met xUnit. Een simpele HTTP-client maakte in-process calls naar de applicatie, controleerde responses en voerde assertions uit. De test draaide in slechts 282 ms \u2014 volledig end-to-end, zonder mocks.<br \/>\nDe volgende stap: integratie met een echte database. Met <em>FastEndpoints<\/em> en <em>Testcontainers<\/em> liet hij zien hoe je PostgreSQL in Docker kunt starten voor elke test, onafhankelijk en schoon. Database-seeding, migraties en configuratie gebeurden automatisch. Door in-memory configuraties te gebruiken in plaats van appsettings.json, bleven de tests licht en flexibel.<br \/>\nHij liet zien hoe belangrijk het is om logs direct in de testoutput te tonen, zodat fouten beter traceerbaar zijn. Daarna ging hij verder met meer geavanceerde scenario\u2019s: authenticatie en externe API-calls. In plaats van auth uit te schakelen, introduceerde hij een <em>TestJWT provider<\/em> voor gecontroleerde tokens. Voor externe API\u2019s gebruikte hij <em>fakes<\/em> \u2014 eenvoudige singleton-klassen die de complexiteit laag houden maar de logica realistisch nabootsen.<br \/>\nZelfs Razor Pages kwamen voorbij: een test die de HTML-output controleert om te verifi\u00ebren dat de juiste data wordt weergegeven. De kern van zijn verhaal bleef overeind: test het systeem zoals het echt draait.<br \/>\nAan het einde sloot hij af met een duidelijke boodschap:<\/p>\n<blockquote><p>\n<em>\u201cStop aiming for the testing diamond \u2014 embrace integration tests. They\u2019re slower, yes, but they give you confidence that your system actually works.\u201d<\/em>\n<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_084824_d_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"debugging-like-a-coach-fixing-team-bugs-before-they-crash-the-game-amber-vanderburg\">Debugging Like a Coach: Fixing Team Bugs Before They Crash the Game \u2014 Amber Vanderburg<\/h2>\n<p>Amber Vanderburg opende haar sessie niet met code, maar met mensen. Haar stelling: de moeilijkste bugs in een organisatie zitten niet in de software \u2014 ze zitten in de teams. En zoals elke goede coach weet, los je die niet op met een snelle fix, maar met dialoog, reflectie en vertrouwen.<br \/>\nZe gebruikte het beeld van <em>debugging teams like code<\/em>: analyseren, begrijpen, verbeteren. Haar structuur was eenvoudig maar krachtig: Fix. Improve. New. Niet alles hoeft direct opgelost, maar elk gesprek kan leiden tot verbetering.<br \/>\nDe kern van haar verhaal kwam voort uit <em>The Five Dysfunctions of a Team<\/em> van Patrick Lencioni \u2014 met vertrouwen als absolute basis. Zonder vertrouwen beweegt niets. Ze gaf een grappig voorbeeld: <em>\u201cIf I say I trust Amber to be late, that\u2019s not trust \u2014 that\u2019s experience.\u201d<\/em> Vertrouwen gaat over voorspelbaarheid, openheid en het nakomen van beloften.<br \/>\nIn internationale of silo-gedreven teams is dat vaak een uitdaging. E\u00e9n persoon met vertrouwenissues kan al frictie veroorzaken. Amber liet zien hoe je dat kunt \u201cmappen\u201d: wie vertrouwt wie en waar stokt de samenwerking? Ze verwees naar het boek <em>The Speed of Trust<\/em> \u2014 hoe meer vertrouwen, hoe sneller teams leren en presteren.<br \/>\nDaarna introduceerde ze het What\u2013Why\u2013Alternative\u2013Follow-up-model voor gesprekken. Richt je niet op wat iemand fout deed, maar <em>waarom<\/em> dat gedrag ontstaat, wat het effect is en welke alternatieven beter werken. Cruciaal: plan altijd een follow-up. Zonder consistentie vervliegt verandering.<br \/>\nWanneer iets niet werkt, zei ze, <em>flip the script.<\/em> Stel andere vragen. Vraag niet: \u201cWaarom ben je niet meer als Henry?\u201d, maar: \u201cHelp me begrijpen waarom je deze keuze maakt.\u201d Goede vragen nodigen uit tot reflectie \u2014 slechte vragen sluiten de deur.<br \/>\nAmber benadrukte ook de <em>fear of conflict<\/em> \u2014 een klassieke valkuil. Teams die conflicten vermijden, verliezen innovatie. Ze benoemde verschillende reacties: ontkennen, klagen, of de schuld bij een ander leggen. Maar echte groei vraagt <em>candor<\/em> \u2014 openheid met empathie. \u201cSpeak with courage, but also with care.\u201d<br \/>\nZe liet zien hoe je gesprekken kunt \u201cdebuggen\u201d: kijk naar je sociale scripts. Als iemand zegt: \u201cI\u2019m fine,\u201d vraag door. Misschien betekent dat eigenlijk: \u201cI don\u2019t feel supported.\u201d Combineer de persoonlijke behoefte met de praktische noodzaak.<br \/>\nEen belangrijk punt ging over de kracht van pauze. <em>\u201cDon\u2019t erase the empathy statement. Wait for it.\u201d<\/em> Een korte stilte van twee seconden na \u201cI understand you\u201d maakt ruimte voor echtheid. Ze noemde dit de <em>power in pause<\/em>.<br \/>\nIn het tweede deel ging ze dieper in op leiderschap. \u201cWhat would a good developer do? What would a good leader do?\u201d \u2014 dat zijn de vragen die teams zichzelf dagelijks moeten stellen. Vermijd generieke vragen; luister om te begrijpen, niet om te antwoorden.<br \/>\nZe sprak ook over <em>process trust<\/em>: het verschil tussen frustratie en overweldiging. Teams die vier processen gebruiken voor \u00e9\u00e9n verandering verliezen vertrouwen. Combineer feiten met gevoelens, want beide sturen gedrag.<br \/>\nTenslotte: flipping the script op teamniveau. Mensen met sterke meningen die niet durven spreken, teams die politiek zijn geworden \u2014 je kunt ze helpen door ruimte te maken, bijvoorbeeld via anonieme feedback of timeboxed discussies.<br \/>\nAmber sloot af met een persoonlijk inzicht: grote teams werken alleen als mensen zichzelf overstijgen. <em>\u201cThe greatest teams are made of people who build something bigger than themselves.\u201d<\/em><\/p>\n<h2 id=\"react-the-most-common-state-mistakes-in-2025-cory-house\">React: The Most Common State Mistakes in 2025 \u2014 Cory House<\/h2>\n<p>Cory House begon zijn sessie met een quote van schrijver William Gibson: <em>\u201cThe future is already here \u2014 it\u2019s just not evenly distributed.\u201d<\/em> Dat gold volgens hem ook voor React. Terwijl sommige teams al met React 19, Server Components en lokale databases werken, worstelen anderen nog met dezelfde stateproblemen als in 2015.<br \/>\nZijn talk was een reis door tien jaar React-state management \u2014 van de eerste <code>componentDidMount()<\/code> tot de nieuwste server features \u2014 met \u00e9\u00e9n duidelijke boodschap: de meeste fouten komen niet door de tools, maar door verkeerde keuzes in waar je state beheert.<\/p>\n<h4 id=\"van-componentdidmount-tot-react-query\">Van componentDidMount tot React Query<\/h4>\n<p>Cory liet zien hoe data fetching in React zich heeft ontwikkeld.<\/p>\n<ul>\n<li>2014: Alles gebeurde in <code>componentDidMount()<\/code>.<\/li>\n<li>2019: Met hooks verplaatsten we logica naar <code>useEffect()<\/code>, maar daarmee kwamen ook veel nieuwe problemen: over-fetching, dubbele requests en te veel boilerplate.<\/li>\n<li>2020: Custom hooks brachten herbruikbaarheid \u2014 <code>useFetch<\/code>, <code>useUser<\/code> enz. \u2014 maar nog steeds was er veel code nodig.<\/li>\n<li>2021: Enter <em>React Query<\/em> (nu TanStack Query). Een derde van de projecten gebruikt het inmiddels. Het introduceerde <em>query keys<\/em>, caching en <em>mutations<\/em> \u2014 allemaal gericht op minder boilerplate en betere performance.<\/li>\n<\/ul>\n<p>Hij legde het principe <em>stale-while-revalidate<\/em> uit: data wordt eerst uit cache getoond en daarna ververst \u2014 een balans tussen snelheid en actualiteit.<\/p>\n<h3 id=\"react-verandert-de-regels\">React verandert de regels<\/h3>\n<p>Vanaf React 18 en 19 werd de manier waarop we state en data beheren opnieuw uitgevonden:<\/p>\n<ul>\n<li>2022: <code>useErrorBoundary<\/code> \u2014 fouten worden automatisch afgehandeld.<\/li>\n<li>2023: <code>useSuspense<\/code> voor data fetching \u2014 minder handmatige <code>loading<\/code>&#8211; en <code>error<\/code>states nodig.<\/li>\n<li>2024: <em>React Server Components<\/em> \u2014 server-side rendering zonder extra fetch-calls aan de clientkant. Data wordt gestreamd als HTML en libraries als Moment.js blijven op de server.<\/li>\n<\/ul>\n<p>Cory\u2019s advies: <em>\u201cTry it when you can \u2014 it\u2019s not the future, it\u2019s already usable.\u201d<\/em><\/p>\n<h3 id=\"2025-en-verder-local-first-apps\">2025 en verder: Local-first apps<\/h3>\n<p>De nieuwste trend volgens hem is local-first computing. Met tools als <em>TanStack DB<\/em> draait je database deels in de browser, in een aparte thread. Daardoor blijft je app bruikbaar bij trage of wegvallende verbindingen.<br \/>\n<em>\u201cEvery app is a conflict resolution problem,\u201d<\/em> zei Cory \u2014 en lokale databases lossen dat op door synchronisatie en caching slim te combineren.<\/p>\n<h3 id=\"de-30-manieren-om-state-te-beheren\">De 30 manieren om state te beheren<\/h3>\n<p>Cory toonde een dia met de titel: <em>\u201cThere are 30 ways to handle state in React.\u201d<\/em><br \/>\nDat klinkt als een grap, maar het punt was serieus: er zijn v\u00e9\u00e9l lagen van state en de meeste fouten ontstaan doordat ze door elkaar worden gehaald.<br \/>\nHij onderscheidde onder andere:<\/p>\n<ul>\n<li>URL state: zoals filters of sortering \u2014 deelbaar via link.<\/li>\n<li>Web storage: <code>localStorage<\/code>, <code>sessionStorage<\/code>, of <code>IndexedDB<\/code>.<\/li>\n<li>Local state: enkel binnen een component.<\/li>\n<li>Lifted state: gedeeld tussen componenten via een common parent.<\/li>\n<li>Derived state: berekende waarden, zoals <code>fullName<\/code> uit <code>firstName<\/code> + <code>lastName<\/code>.<\/li>\n<li>Refs: handig voor undo-functionaliteit of imperatieve logica.<\/li>\n<li>Context: voor globale settings zoals taal of dark mode.<\/li>\n<li>Remote state: data van een server, vaak met React Query of SWR.<\/li>\n<\/ul>\n<p>Zijn advies: <em>\u201cPick the lowest level that works. Don\u2019t lift state unless you have to.\u201d<\/em><\/p>\n<h3 id=\"veelgemaakte-fouten\">Veelgemaakte fouten<\/h3>\n<p>Een paar veelvoorkomende problemen die hij noemde:<\/p>\n<ul>\n<li>Prop drilling: data die te diep doorgegeven wordt.<\/li>\n<li>Derived state in useState: dubbele bronnen van waarheid.<\/li>\n<li>Niet valideren van API-data: gebruik tools als Zod voor runtime-validatie.<\/li>\n<li>Overmatig global state management: niet alles hoort in Redux, Context of Zustand.<\/li>\n<\/ul>\n<h3 id=\"react-19-en-de-toekomst\">React 19 en de toekomst<\/h3>\n<p>Tot slot gaf Cory een vooruitblik op React 19 en wat hij \u201c<em>the good enough mindset<\/em>\u201d noemde:<br \/>\ngebruik de nieuwste tools waar ze waarde toevoegen, maar vermijd shiny-object-syndroom.<br \/>\nReact 19 introduceert o.a. <em>Action State<\/em> voor formulieren \u2014 een manier om pending states, optimistic UI\u2019s en fouten af te handelen zonder extra libraries.<br \/>\nZijn voorbeeld: bij het verzenden van een formulier kun je direct een <em>optimistic update<\/em> tonen \u2014 alsof de actie geslaagd is \u2014 en pas terugrollen als er een fout optreedt. <em>\u201cGreat UX assumes success, but gracefully handles failure.\u201d<\/em><\/p>\n<h3 id=\"conclusie\">Conclusie<\/h3>\n<p>Cory sloot af met de boodschap dat state management in React minder gaat om syntax en meer om mentaal model.<br \/>\nBegrijp w\u00e1\u00e1r je state hoort, hoe je het deelt en hoe je het valideert \u2014 dan maakt het niet uit of je Redux, React Query of een simpele hook gebruikt.<br \/>\nOf zoals hij het samenvatte:<\/p>\n<blockquote><p>\n\u201cManaging state is like managing people \u2014 if you keep it local when you can, everything runs smoother.\u201d\n<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_134448_img_8341_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"fortifying-your-workflows-battle-tested-security-strategies-for-hardening-github-actions-josh-johanning\">Fortifying your Workflows: Battle-Tested Security Strategies for Hardening GitHub Actions \u2013 Josh Johanning<\/h2>\n<p>Josh opende met een simpele maar ontnuchterende constatering: CI\/CD workflows zijn nu een van de favoriete aanvalsvectors van kwaadwillenden \u2014 en GitHub Actions staat middenin het strijdtoneel. Zijn sessie was praktisch, direct en zat vol voorbeelden uit echte incidenten en best practices die je morgen kunt invoeren.<\/p>\n<h3 id=\"waarom-github-actions-hardenen-versterken-\">Waarom GitHub Actions hardenen \/ versterken?<\/h3>\n<p>Met meer dan 29.000 open-source Actions in de marketplace en workflows die arbitrary code uitvoeren, ontstaan er veel risico\u2019s: onbedoelde privilege-escalatie, gelekte secrets, of build-servers die als springplank gebruikt worden voor grotere aanvallen. Josh verwees naar bekende supply-chain incidents, waaronder:<\/p>\n<ul>\n<li>tj-actions\/changed-files (2025) \u2013 gehackte Action via malicious commit en re-tagging, die secrets stal via <code>pull_request_target<\/code>.<\/li>\n<li>Nx \u201cs1ngularity\u201d Attack (2025) \u2013 npm-token lek leidde tot besmette packages die crypto-wallets stalen.<\/li>\n<li>Shai-Hulud Worm (2025) \u2013 zelfreplicerend npm-worm die GitHub en npm tokens misbruikte.<\/li>\n<li>SolarWinds (2020) \u2013 buildserver-compromis met gesigneerde malware.<\/li>\n<\/ul>\n<p>De zwakste schakel is niet je code, maar je supply chain. Vertrouwen en automatisering verhogen risico\u2019s \u2014 en met AI-promptinjection komen daar nieuwe dreigingen bij.<\/p>\n<h3 id=\"begin-met-minimale-rechten-permissions-tokens\">Begin met minimale rechten: permissions &amp; tokens<\/h3>\n<p>Vanaf februari 2023 heeft GitHub de default repository-permissies verlaagd naar <em>read-only<\/em> voor nieuwe orgs en enterprises, maar oudere repos behouden nog steeds <em>read\/write<\/em>!<br \/>\nJosh benadrukte dat je permissies per job moet specificeren, niet op workflow-niveau, zodat alleen noodzakelijke stappen schrijfrechten krijgen.<\/p>\n<h4 id=\"secrets-en-authenticatie\">Secrets en authenticatie<\/h4>\n<p>Er zijn drie strategie\u00ebn:<\/p>\n<ol>\n<li>GitHub secrets store \u2013 makkelijk, maar minder schaalbaar.<\/li>\n<li>Extern (Azure Key Vault \/ HashiCorp Vault) \u2013 veiliger en beter auditbaar via OIDC (OpenID Connect).<\/li>\n<li>Hybride aanpak \u2013 centrale Vault als bron, met geautomatiseerde sync naar repo-secrets.<\/li>\n<\/ol>\n<p>Belangrijke tips:<\/p>\n<ul>\n<li>Gebruik geen gestructureerde data (zoals JSON) als secret.<\/li>\n<li>Mask dynamisch aangemaakte secrets in logs.<\/li>\n<li>Automatiseer rotatie en gebruik least-privilege credentials.<\/li>\n<\/ul>\n<h4 id=\"oidc-in-plaats-van-long-lived-tokens\">OIDC in plaats van long-lived tokens<\/h4>\n<p>Met OIDC kan je cloudtoegang regelen zonder tokens op te slaan of te roteren \u2014 authenticatie wordt door het externe platform afgehandeld.<br \/>\nJosh demonstreerde dit met Azure AD federated credentials en liet zien hoe je zelfs kunt afdwingen dat alleen goedgekeurde reusable workflows toegang krijgen tot productieomgevingen.<br \/>\nOok npm schakelt over: klassieke long-lived tokens zijn uitgefaseerd, standaard expiratietijd is teruggebracht naar 7 dagen.<br \/>\nGebruik OIDC + 2FA voor npm-publicaties om supply-chain risico\u2019s te verkleinen.<\/p>\n<h3 id=\"bouwketen-integriteit-tags-shas-en-signing\">Bouwketen integriteit: tags, SHAs en signing<\/h3>\n<p>GitHub Actions worden meestal gepubliceerd via Git-tags \u2014 en tags zijn mutable. Daardoor kon de <code>tj-actions\/changed-files<\/code> hack duizenden repositories treffen.<br \/>\nJosh benadrukte:<\/p>\n<ul>\n<li>Pin altijd op commit SHA.<\/li>\n<li>Gebruik <code>dependabot.yml<\/code> om automatisch updates te blijven ontvangen.<\/li>\n<\/ul>\n<p>Sinds augustus 2025 kun je zelfs SHA-pinning afdwingen als enterprise policy.<\/p>\n<h4 id=\"immutable-releases\">Immutable releases<\/h4>\n<p>In private preview (aug 2025) introduceerde GitHub Immutable Releases, waarmee assets, tags en attestaties cryptografisch worden vastgezet.<\/p>\n<ul>\n<li>Immutable assets kunnen niet meer aangepast of verwijderd worden.<\/li>\n<li>Tags zijn beschermd tegen force pushes.<\/li>\n<li>Releases worden automatisch ondertekend (attestation signing).<\/li>\n<\/ul>\n<p>Josh toonde live dat force pushing of tag deletion wordt geblokkeerd zodra immutable releases aanstaan.<\/p>\n<h3 id=\"script-injection-oss-beveiliging\">Script injection &amp; OSS-beveiliging<\/h3>\n<p>Net als bij SQL-injectie geldt: gebruikersinput is onbetrouwbaar. Issue-titels, branch-namen of comments kunnen misbruikt worden in inline scripts.<br \/>\nMitigaties:<\/p>\n<ul>\n<li>Gebruik Actions met input-parameters in plaats van inline <code>run:<\/code> scripts.<\/li>\n<li>Zet userinput eerst in environment-variabelen (<code>env:<\/code>).<\/li>\n<li>Beperk token-permissies strikt.<\/li>\n<\/ul>\n<h4 id=\"algemene-aanbevelingen\">Algemene aanbevelingen<\/h4>\n<ul>\n<li>Gebruik CODEOWNERS of rulesets voor workflowwijzigingen.<\/li>\n<li>Zet OpenSSF Scorecard Action in om supply-chain hygiene te meten.<\/li>\n<li>Vermijd <code>pull_request_target<\/code> \u2014 vooral in publieke repos.<\/li>\n<li>Stel een allow-list in van goedgekeurde Actions (liefst \u201cas code\u201d met automatische validatie).<\/li>\n<li>Gebruik aparte workflows voor PR-validatie versus productie-CD.<\/li>\n<\/ul>\n<h3 id=\"scan-vroeg-scan-vaak-codeql-dependabot-secret-scanning\">Scan vroeg, scan vaak: CodeQL, Dependabot, Secret scanning<\/h3>\n<p>Josh liet zien hoe CodeQL + Copilot Autofix kwetsbaarheden automatisch detecteren \u00e9n suggesties geven, zoals:<\/p>\n<ul>\n<li>Ontbrekende <code>permissions<\/code>-blokken.<\/li>\n<li>Ongepinde tags.<\/li>\n<li>Kwetsbare versies van Actions.<\/li>\n<li>Script injection via gebruikersinput.<\/li>\n<\/ul>\n<p>CodeQL is gratis voor openbare repos en je kunt security findings organiseren via security campaigns \u2014 waarbij Copilot Autofix automatisch patches voorstelt.<br \/>\nDependabot Security Alerts is ook gratis en detecteert kwetsbare Actions via de GitHub Advisory Database.<\/p>\n<h3 id=\"attestations-bewijs-van-herkomst\">Attestations: bewijs van herkomst<\/h3>\n<p>Attestations zijn het moderne alternatief voor traditionele code signing.<br \/>\nZe registreren cryptografisch waar en door wie een artefact is gebouwd en worden automatisch vastgelegd in GitHub Actions via OIDC-signing.<br \/>\nZo kan downstream-softwareverificatie plaatsvinden zonder extra tooling.<\/p>\n<h3 id=\"beheer-zelf-gehoste-runners-verstandig\">Beheer zelf-gehoste runners verstandig<\/h3>\n<p>Josh benadrukte opnieuw het SolarWinds-voorbeeld: treat build servers as production.<br \/>\nGebruik GitHub-hosted runners als veilige default \u2014 die zijn:<\/p>\n<ul>\n<li>Ephemeral (nieuw image per job)<\/li>\n<li>Network-isolated<\/li>\n<li>Volledig vernietigd na afloop van de job<\/li>\n<\/ul>\n<p>Voor self-hosted runners:<\/p>\n<ul>\n<li>Gebruik Actions Runner Controller (ARC) of Terraform-templates om ephemeral gedrag na te bootsen.<\/li>\n<li>Scheid build- en release-runners.<\/li>\n<li>Geef nooit productie-netwerktoegang.<\/li>\n<li>Disable repo-level runners om exfiltratie te voorkomen.<\/li>\n<li>Cache enkel tools, geen gevoelige data.<\/li>\n<\/ul>\n<h3 id=\"praktische-checklist\">Praktische checklist<\/h3>\n<ul>\n<li>Zet default repository permissions op minimaal (read-only).<\/li>\n<li>Pin alle 3rd-party Actions op commit SHA.<\/li>\n<li>Gebruik OIDC in plaats van long-lived secrets.<\/li>\n<li>Forceer commit signing en gebruik immutable releases.<\/li>\n<li>Automatiseer scans (CodeQL, Dependabot, secret scanning).<\/li>\n<li>Houd een Actions allow-list bij.<\/li>\n<li>Scheid workflows voor PR\u2019s en releases.<\/li>\n<li>Beperk en isoleer self-hosted runners.<\/li>\n<li>Automatiseer tokenrotatie.<\/li>\n<\/ul>\n<h3>Tot slot<\/h3>\n<p>Josh sloot af met een realistische maar optimistische boodschap:<\/p>\n<blockquote><p>\n\u201cDe dreiging is re\u00ebel, maar de meeste mitigaties zijn laagdrempelig. Met een paar aanpassingen aan permissies, secrets en scans kun je je CI\/CD-pijplijn aanzienlijk weerbaarder maken.\u201d\n<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_145427_img_8394_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"trusted-respected-heard-alice-meredith\">Trusted. Respected. Heard. &#8211; Alice Meredith<\/h2>\n<p>Alice begon haar sessie met een glimlach en een waarschuwing: \u201cInvloed begint niet bij je functietitel, maar bij je gedrag.\u201d Ze maakt Pluralsight traningen en reist de wereld rond met haar <em>Human Firewall Tour<\/em> \u2014 waarin ze mensen leert om sterk, eerlijk en empathisch te communiceren binnen organisaties.<\/p>\n<h3 id=\"de-essentie-invloed-is-gedrag-niet-positie\">De essentie: invloed is gedrag, niet positie<\/h3>\n<p>Alice stelde een simpele vraag:<\/p>\n<blockquote><p>\n\u201cWie heeft hier invloed?\u201d<br \/>\nIedereen keek naar de leidinggevenden \u2014 maar volgens haar hebben ook juniors, stagiairs en specialisten invloed. Niet omdat ze macht hebben, maar omdat ze vertrouwen, respect en geloofwaardigheid opbouwen door hun gedrag.\n<\/p><\/blockquote>\n<p>Ze gebruikte het model <em>A-B-C+<\/em>:<\/p>\n<ul>\n<li>Authority \u2013 formele macht,<\/li>\n<li>Behaviour \u2013 hoe je handelt,<\/li>\n<li>Consequences \u2013 de resultaten die je gedrag oplevert,<\/li>\n<\/ul>\n<p>Invloed is dus geen status, maar een reeks keuzes die je dagelijks maakt.<\/p>\n<h3 id=\"word-een-persoon-van-eer-honor-\">Word een persoon van eer (honor)<\/h3>\n<p>Echte invloed begint bij integriteit.<\/p>\n<blockquote><p>\n\u201cE\u00e9n oneervolle actie kan jaren van vertrouwen vernietigen.\u201d\n<\/p><\/blockquote>\n<p>Alice deelde haar persoonlijke \u201cHonor Code\u201d \u2014 vijf gedragingen die het fundament vormen voor geloofwaardigheid:<\/p>\n<ol>\n<li>Speak the truth , zelfs als het ongemakkelijk is.<\/li>\n<li>Act with follow-through \u2013 laat je daden overeenkomen met je woorden.<\/li>\n<li>Avoid gossip , want roddel ondermijnt vertrouwen.<\/li>\n<li>Give credit , want het verheffen van anderen vergroot je eigen invloed.<\/li>\n<li>Stand firm , blijf trouw aan je waarden, ook onder druk.<\/li>\n<\/ol>\n<p>Ze vertelde over teams die uit elkaar vielen door kleine, herhaalde overtredingen van deze ongeschreven regels \u2014 en over hoe herstel begint bij eerlijkheid.<\/p>\n<h3 id=\"bouw-diep-vertrouwen-ga-van-shallow-naar-deep-water-\">Bouw diep vertrouwen \u2013 ga van \u201cshallow\u201d naar \u201cdeep water\u201d<\/h3>\n<p>De meeste werkrelaties blijven aan de oppervlakte: vriendelijk, maar oppervlakkig.<\/p>\n<blockquote><p>\n\u201cShallow water feels safe. Deep water feels risky. But that\u2019s where real connection lives.\u201d\n<\/p><\/blockquote>\n<p>Echte invloed vraagt om kwetsbaarheid. Alice moedigde het publiek aan om de eerste stap te zetten:<br \/>\n\u2013 deel je fouten,<br \/>\n\u2013 vraag actief naar ervaringen van anderen,<br \/>\n\u2013 en wees nieuwsgierig in plaats van oordeelend.<br \/>\nZe gebruikte de metafoor van het <em>private pool vs open ocean<\/em>:<\/p>\n<ul>\n<li>In je private pool voel je je comfortabel met bekenden.<\/li>\n<li>In de open oceaan ontmoet je nieuwe mensen, idee\u00ebn, perspectieven \u2014 daar groeit invloed.<\/li>\n<\/ul>\n<p>Tijdens rondetafels en meetings, zei ze, moeten we bewust \u201cdeep water\u201d betreden:<br \/>\nanderen uitnodigen die anders denken, niet alleen wie we al vertrouwen.<\/p>\n<h3 id=\"emotionele-intelligentie-is-belangrijker-dan-cv-s\">Emotionele intelligentie is belangrijker dan cv\u2019s<\/h3>\n<p>Alice verwees naar onderzoek bij CEO\u2019s: bij sollicitaties draait het zelden om technische skills, maar om emotionele intelligentie.<br \/>\nWie zichzelf \u00e9n anderen begrijpt, be\u00efnvloedt effectiever.<br \/>\nZe onderscheidde:<\/p>\n<ul>\n<li>Private awareness \u2013 weten wat er in jou omgaat.<\/li>\n<li>Public awareness \u2013 bewust zijn van wat anderen zien en voelen.<\/li>\n<\/ul>\n<p>Wanneer die twee in balans zijn, word je betrouwbaar \u00e9n menselijk.<br \/>\nEen voorbeeld: iemand die na een stressvol gesprek zegt <em>\u201cGeef me even tijd om te ontladen\u201d<\/em> toont bewustzijn \u2014 en voorkomt dat emoties onbedoeld richting anderen overslaan.<\/p>\n<h3 id=\"inclusie-als-moreel-kompas\">Inclusie als moreel kompas<\/h3>\n<blockquote><p>\n\u201cBe the one.\u201d<br \/>\nDe ene persoon die groet in de lift.<br \/>\nDie zegt: <em>\u201cH\u00e9 Tom, ik heb je al een tijdje niet gehoord.\u201d<\/em><br \/>\nDie een stil persoon uitnodigt om iets te delen.\n<\/p><\/blockquote>\n<p>In een drukke corporate wereld waarin mensen vaak \u201cte druk\u201d zijn voor echte verbinding, is bewust inclusief gedrag revolutionair.<br \/>\nAlice noemde inclusie \u201cthe reset button for humanity\u201d.<br \/>\nZe moedigde aan om actief uit je bubbel te stappen: praat met mensen die anders denken, andere rollen of achtergronden hebben.<\/p>\n<h3 id=\"feedback-en-herframing\">Feedback en herframing<\/h3>\n<p>Het laatste stuk ging het over feedbackcultuur. Negatieve feedback roept vaak defensie op \u2014 maar door reframing kun je dezelfde boodschap constructiever brengen.<br \/>\nIn plaats van: <em>\u201cJe luistert nooit\u201d<\/em>, zeg: <\/p>\n<blockquote><p>\n\u201cIk merk dat ik moeite heb om mijn punt te maken. Kunnen we even stilstaan bij hoe we dit gesprek voeren?\u201d\n<\/p><\/blockquote>\n<p>Ze noemde dit <em>\u201cFlipping the script\u201d<\/em> \u2014 de vaardigheid om feedback te geven met empathie, waardoor de ander open blijft.<\/p>\n<h3 id=\"kernboodschap\">Kernboodschap<\/h3>\n<p>Echte invloed begint niet bij positie , maar bij eer, vertrouwen, authenticiteit en inclusie.<\/p>\n<blockquote><p>\n\u201cYou don\u2019t need a title to lead.<br \/>\nYou just need the courage to be trusted, respected, and heard.\u201d\n<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_160911_d_1_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2 id=\"lessons-from-the-fast-lane-robert-doornbos\">Lessons from the Fast Lane &#8211; Robert Doornbos<\/h2>\n<p>De closing keynote van de conferentie werd gegeven door niemand minder dan Robert Doornbos , oud-Formule 1-coureur en tegenwoordig analist en ondernemer. Zijn verhaal was niet zomaar een verzameling anekdotes uit de racewereld \u2014 het was een kijkje achter de schermen van een hypercompetitieve sport waarin samenwerking, data en innovatie het verschil maken tussen winnen en uitvallen.<\/p>\n<h3 id=\"f1-is-de-ultieme-teamsport\">F1 is de ultieme teamsport<\/h3>\n<p>Hoewel veel mensen Formule 1 zien als een individuele sport, benadrukte Doornbos dat een F1-team draait op teamwork.<br \/>\nEen modern Red Bull-team bestaat uit ruim 600 mensen , waarvan 120 meereizen naar de 24 races per jaar \u2014 verspreid over de hele wereld, goed voor meer dan 1500 reiskilometers per seizoen.<\/p>\n<blockquote><p>\n\u201cEen coureur staat op het podium, maar zonder het team is hij nergens.\u201d\n<\/p><\/blockquote>\n<p>Van de monteurs tot de data-analisten, iedereen werkt synchroon samen om \u00e9\u00e9n doel te bereiken: de snelste zijn. Elke fractie van een seconde telt.<\/p>\n<h3 id=\"innovatie-en-data-het-hart-van-de-snelheid\">Innovatie en data: het hart van de snelheid<\/h3>\n<p>Formule 1 is net zo goed technologie als sport. Elke auto is uitgerust met meer dan 300 sensoren die continu data verzamelen: temperatuur, bandenslijtage, brandstofverbruik, aerodynamica enzovoort.<br \/>\nDie data stroomt naar gigantische IT-hubs op het circuit \u00e9n naar het hoofdkwartier van het team. De communicatie moet realtime zijn, want elke vertraging in dataverkeer kan miljoenen kosten.<\/p>\n<blockquote><p>\n\u201cHet is een partnerschap van data. Zonder meten geen winnen.\u201d\n<\/p><\/blockquote>\n<h3 id=\"simulaties-en-windtunnels\">Simulaties en windtunnels<\/h3>\n<p>Hij vertelde hoe belangrijk simulaties tegenwoordig zijn in F1. Coureurs rijden duizenden virtuele kilometers per week in een simulator van 12 miljoen euro \u2014 maar, voegde hij met een glimlach toe, \u201cje kunt het gevoel van G-krachten nooit simuleren.\u201d<br \/>\nOok windtunnels spelen nog steeds een sleutelrol.<br \/>\nAl sinds de jaren dertig wordt aerodynamica getest in windtunnels \u2014 eerst voor vliegtuigen, later voor racewagens.<\/p>\n<blockquote><p>\n\u201cWaar vliegtuigen lift cre\u00ebren, cre\u00ebren wij downforce \u2014 genoeg om een auto ondersteboven tegen het plafond te laten rijden.\u201d\n<\/p><\/blockquote>\n<h3 id=\"de-kunst-van-de-pitstop\">De kunst van de pitstop<\/h3>\n<p>Doornbos noemde de pitstop het perfecte voorbeeld van menselijke effici\u00ebntie onder extreme druk.<br \/>\nEen compleet bandenwissel \u2014 door een team van twintig mensen \u2014 gebeurt in gemiddeld 1,8 seconden.<\/p>\n<blockquote><p>\n\u201cDat is pure choreografie. Elk teamlid weet exact wat zijn taak is, geen twijfel, geen ego, alleen perfectie.\u201d\n<\/p><\/blockquote>\n<p>Hij gebruikte het als metafoor voor organisaties:<\/p>\n<blockquote><p>\n\u201cIn een goed team weet iedereen zijn rol en vertrouwt men elkaar blind. Dat is hoe je onder druk presteert.\u201d\n<\/p><\/blockquote>\n<h3 id=\"de-toekomst-elektrificatie-en-veiligheid\">De toekomst: elektrificatie en veiligheid<\/h3>\n<p>Formule 1 is constant in beweging. Waar vroeger de V10- en V8-motoren domineerden, zijn moderne wagens hybride power units: een samenspel van verbrandingsmotor en elektrische systemen.<br \/>\nOok veiligheid is enorm verbeterd \u2014 dankzij jarenlange innovaties die later hun weg vinden naar gewone wegauto\u2019s.<\/p>\n<blockquote><p>\n\u201cAlles wat we in F1 leren over veiligheid, vindt uiteindelijk z\u2019n weg naar de straat.\u201d\n<\/p><\/blockquote>\n<h3 id=\"lessen-uit-de-racebaan\">Lessen uit de racebaan<\/h3>\n<p>Doornbos sloot af met een krachtige boodschap die net zo goed geldt voor technologie, business en persoonlijke groei:<\/p>\n<blockquote><p>\n\u201cAls alles onder controle lijkt, ga je niet snel genoeg.\u201d\n<\/p><\/blockquote>\n<p>Hij bedoelde daarmee dat echte vooruitgang ontstaat aan de rand van comfort \u2014 waar risico, lef en teamwork samenkomen.<br \/>\nFouten horen erbij, maar zonder ambitie, experiment en durf komt niemand op pole position.<\/p>\n<h3 id=\"takeaways-uit-de-fast-lane\">Takeaways uit de Fast Lane<\/h3>\n<ol>\n<li>Data is pas waardevol als je er actie op onderneemt.<\/li>\n<li>Snelheid komt van vertrouwen, niet van chaos.<\/li>\n<li>Simuleren is goed, maar echte ervaring blijft onmisbaar.<\/li>\n<li>Perfectie is teamwork \u2013 niet ego.<\/li>\n<li>Durf gas te geven, ook als je het nog niet volledig onder controle hebt.<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_180558_d_1_e_kl.jpg\" alt=\"Techorama\" loading=\"lazy\" width=\"500\" height=\"333\" \/><\/p>\n<h2>Conclusie \u2014 Techorama 2025<\/h2>\n<p>Techorama 2025 bewees opnieuw waarom het een van de meest toonaangevende techconferenties van de Benelux is.<br \/>\nDrie dagen lang stond innovatie centraal: van diepgaande sessies over AI-integratie en cloud-native architecturen tot inspirerende keynotes over leiderschap, creativiteit en de toekomst van softwareontwikkeling.<\/p>\n<p>Wat vooral opviel, was de balans tussen technologie en menselijkheid. Sprekers benadrukten niet alleen de kracht van nieuwe tools en frameworks, maar ook het belang van samenwerking, ethiek en een gezonde techcultuur. De rode draad? Technologie ontwikkelt zich razendsnel, maar de kern blijft: mensen die met passie bouwen, leren en delen.<\/p>\n<p>Of je nu kwam voor de nieuwste inzichten in .NET, DevOps, data, of design systems \u2014 Techorama 2025 bood iets voor iedereen. En terwijl we naar huis gingen met volle notitieboeken en nog vollere hoofden, bleef \u00e9\u00e9n gedachte hangen: de toekomst van technologie is niet iets dat ons overkomt, maar iets wat we samen vormgeven.<\/p>\n<p>Tot volgend jaar \u2014 waar we elkaar opnieuw uitdagen, inspireren en verbinden.<\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_082925_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Techorama | foto 1\"\n\t           data-gps=\"52.086631,5.104692\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_082925_d_e_kl.jpg\" alt=\"Techorama\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMElEQVR4AWNZ2JJ2\/\/79M88FXrx4waKrq8sJBCrKv3\/\/Zrl1V2z3novXPr7k5&#x2B;cHAIwLE4URmh4wAAAAAElFTkSuQmCC\" title=\"Techorama | foto 1\" \n\t\t\t\t     alt=\"Techorama (2025) ; Techorama ; Techorama, welkom\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_083835_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - The past, present, and future of AI for application developers - Steve Sanderson | foto 2\"\n\t           data-gps=\"52.085994,5.107\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_083835_d_e_kl.jpg\" alt=\"The past, present, and future of AI for application developers - Steve Sanderson\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAANElEQVR4AQXCsQ0AIAgEwOSf7hdgBSpmcH6HUUNFQmHubGVKeud2t0WEuxsIwKq25CRn5gP9Ww02Vhy32QAAAABJRU5ErkJggg==\" title=\"The past, present, and future of AI for application developers - Steve Sanderson | foto 2\" \n\t\t\t\t     alt=\"Techorama (2025) ; The past, present, and future of AI for application developers - Steve Sanderson ; Techorama, The past, present, and future of AI for application developers, Steve Sanderson\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_102217_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Agents of Change: Building AI Agents that Work (and Think) for Us - Jeff Prosise | foto 3\"\n\t           data-gps=\"52.081078,5.105811\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_102217_d_e_kl.jpg\" alt=\"Agents of Change: Building AI Agents that Work (and Think) for Us - Jeff Prosise\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMUlEQVR4AWOR4WZgZ2f4&#x2B;Zvj379\/LLa2ZmpqakwsghcvXmT59\/\/Hy1ePWdl\/vH7zDAAa7RJQeW7KGAAAAABJRU5ErkJggg==\" title=\"Agents of Change: Building AI Agents that Work (and Think) for Us - Jeff Prosise | foto 3\" \n\t\t\t\t     alt=\"Techorama (2025) ; Agents of Change: Building AI Agents that Work (and Think) for Us - Jeff Prosise ; Techorama, Agents of Change, Building AI Agents that Work (and Think) for Us, Jeff Prosise\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_114241_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Understanding Model Context Protocol (MCP) - Roelant Dieben | foto 4\"\n\t           data-gps=\"52.084106,5.108086\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_114241_d_e_kl.jpg\" alt=\"Understanding Model Context Protocol (MCP) - Roelant Dieben\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMElEQVR4AWMJ8XV2c3Pbs\/tQYGAgi4ODw8&#x2B;fP9XV1dnY2Fi4vl3dtm0bFyfvq2ubACCAD6oIzaCzAAAAAElFTkSuQmCC\" title=\"Understanding Model Context Protocol (MCP) - Roelant Dieben | foto 4\" \n\t\t\t\t     alt=\"Techorama (2025) ; Understanding Model Context Protocol (MCP) - Roelant Dieben ; Techorama, Understanding Model Context Protocol (MCP), Roelant Dieben\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_125741_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Techorama | foto 5\"\n\t           data-gps=\"52.087592,5.1054\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_125741_d_e_kl.jpg\" alt=\"Techorama\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMElEQVR4AWORZpZUUlIK8En7\/v07Czc3t4uLi4ODAwMDA4skLyv778\/bVy7\/&#x2B;fMnAMkaDVD\/0VJHAAAAAElFTkSuQmCC\" title=\"Techorama | foto 5\" \n\t\t\t\t     alt=\"Techorama (2025) ; Techorama ; Techorama, gang, kinopolis\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_134853_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - VAR, AI Referees, and the Future of Code Reviews - Amber Vanderburg | foto 6\"\n\t           data-gps=\"52.085006,5.106706\" data-heightratio=\"0.666\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_134853_d_e_kl.jpg\" alt=\"VAR, AI Referees, and the Future of Code Reviews - Amber Vanderburg\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMElEQVR4AWMRYmeWlZUVVTQ3NDRk4eDgCAoKUjPykJaWZjFTZmb&#x2B;cGHPyovPnj0DAHZHCoYQZCd5AAAAAElFTkSuQmCC\" title=\"VAR, AI Referees, and the Future of Code Reviews - Amber Vanderburg | foto 6\" \n\t\t\t\t     alt=\"Techorama (2025) ; VAR, AI Referees, and the Future of Code Reviews - Amber Vanderburg ; Techorama, VAR, AI Referees, and the Future of Code Reviews, Amber Vanderburg\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_143132_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - The Next Decade of Software Development - Richard Campbell | foto 7\"\n\t           data-gps=\"52.085164,5.105581\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_143132_d_e_kl.jpg\" alt=\"The Next Decade of Software Development - Richard Campbell\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMUlEQVR4AWPJi3P\/\/v376zd\/2tvbWXR1dT98&#x2B;CAnz3n27FkWTnaOq4&#x2B;f\/Gfg&#x2B;\/r5EwCiCxUMQ3jHTQAAAABJRU5ErkJggg==\" title=\"The Next Decade of Software Development - Richard Campbell | foto 7\" \n\t\t\t\t     alt=\"Techorama (2025) ; The Next Decade of Software Development - Richard Campbell ; Techorama, The Next Decade of Software Development, Richard Campbell\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_163206_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Relate. Reflect. Respond. Practical tools to navigate feedback, bias, and human connection at work. - Alice Meredith | foto 8\"\n\t           data-gps=\"52.086711,5.103625\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_163206_d_e_kl.jpg\" alt=\"Relate. Reflect. Respond. Practical tools to navigate feedback, bias, and human connection at work. - Alice Meredith\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMUlEQVR4AWMxF2NnZGT8xmb5\/ft3Fl9fX2Fh4R8c1s&#x2B;fP2d58tf2wrU3D98yff0qAAAaXBIIpeM9hgAAAABJRU5ErkJggg==\" title=\"Relate. Reflect. Respond. Practical tools to navigate feedback, bias, and human connection at work. - Alice Meredith | foto 8\" \n\t\t\t\t     alt=\"Techorama (2025) ; Relate. Reflect. Respond. Practical tools to navigate feedback, bias, and human connection at work. - Alice Meredith ; Techorama, Relate, Reflect, Respond, Practical tools to navigate feedback, bias, and human connection at work, Alice Meredith\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251028_175745_d_1_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - What&#x27;s new in C# 13, 14, and beyond? - Bart de Smet | foto 9\"\n\t           data-gps=\"52.085361,5.105658\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251028_175745_d_1_e_kl.jpg\" alt=\"What&#x27;s new in C# 13, 14, and beyond? - Bart de Smet\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMElEQVR4AWMx0TdjZWV9&#x2B;fTxhw8fWIyMjHh4eD6\/V3v79i3Lowtz5eXlJYT4pWWYAToKDt5SKUQIAAAAAElFTkSuQmCC\" title=\"What&#x27;s new in C# 13, 14, and beyond? - Bart de Smet | foto 9\" \n\t\t\t\t     alt=\"Techorama (2025) ; What&#x27;s new in C# 13, 14, and beyond? - Bart de Smet ; Techorama, What&#x27;s new in C# 13, 14, and beyond, Bart de Smet\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251029_083328_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Techorama | foto 10\"\n\t           data-gps=\"52.086678,5.104428\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_083328_d_e_kl.jpg\" alt=\"Techorama\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMUlEQVR4AWMxlVYRFxd\/xBX5&#x2B;\/dvFgcHhw8fPjz9wvzr1y&#x2B;WbyzOd15du\/1Fm5OTEwBfCRNETGR6TAAAAABJRU5ErkJggg==\" title=\"Techorama | foto 10\" \n\t\t\t\t     alt=\"Techorama (2025) ; Techorama ; Techorama, Kinepolis\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251029_084824_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Practical tips for keeping your C# code base clean - Dennis Doomen | foto 11\"\n\t           data-gps=\"52.082222,5.10495\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_084824_d_e_kl.jpg\" alt=\"Practical tips for keeping your C# code base clean - Dennis Doomen\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMUlEQVR4AWPJiPFxcnL68unrrl27WJiZmTdu3Mj4n4mVlZXl778\/P35&#x2B;5&#x2B;HiERISAgBREhBQ2DtdzQAAAABJRU5ErkJggg==\" title=\"Practical tips for keeping your C# code base clean - Dennis Doomen | foto 11\" \n\t\t\t\t     alt=\"Techorama (2025) ; Practical tips for keeping your C# code base clean - Dennis Doomen ; Techorama, Practical tips for keeping your C# code base clean, Dennis Doomen\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251029_095924_d_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Building the Ultimate Safety Net with Integration Tests - Jimmy&#xA0;Bogard | foto 12\"\n\t           data-gps=\"52.085853,5.103489\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_095924_d_e_kl.jpg\" alt=\"Building the Ultimate Safety Net with Integration Tests - Jimmy&#xA0;Bogard\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAALklEQVR4AWOxMzPm5uZWVteUlJRk0dTUZGZmfvLkCZBk&#x2B;fvv&#x2B;&#x2B;8\/\/6SkRXl42QGquwsdfB6j6QAAAABJRU5ErkJggg==\" title=\"Building the Ultimate Safety Net with Integration Tests - Jimmy&#xA0;Bogard | foto 12\" \n\t\t\t\t     alt=\"Techorama (2025) ; Building the Ultimate Safety Net with Integration Tests - Jimmy&#xA0;Bogard ; Techorama, Building the Ultimate Safety Net with Integration Tests, Jimmy Bogard\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251029_134448_img_8341_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - React: The Most Common State Mistakes in 2025 - Cory House | foto 13\"\n\t           data-gps=\"52.082558,5.110422\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_134448_img_8341_e_kl.jpg\" alt=\"React: The Most Common State Mistakes in 2025 - Cory House\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMElEQVR4AWMxEi\/T1tZ&#x2B;8HD\/zbs3WXh5eXV1dUVEP3\/79o2Fn4H5wsEjbBxPtWXlASh&#x2B;Dskkvzz7AAAAAElFTkSuQmCC\" title=\"React: The Most Common State Mistakes in 2025 - Cory House | foto 13\" \n\t\t\t\t     alt=\"Techorama (2025) ; React: The Most Common State Mistakes in 2025 - Cory House ; React, The Most Common State Mistakes in 2025, Cory House, Techorama\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251029_145427_img_8394_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Fortifying your Workflows: Battle-Tested Security Strategies for Hardening GitHub Actions - Josh Johanning | foto 14\"\n\t           data-gps=\"52.086003,5.105022\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_145427_img_8394_e_kl.jpg\" alt=\"Fortifying your Workflows: Battle-Tested Security Strategies for Hardening GitHub Actions - Josh Johanning\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMUlEQVR4AWMJca\/59evX91ezfv\/&#x2B;zSIhIaGjo8Px&#x2B;&#x2B;vLly9Zbl&#x2B;RuHvtnaIoGxeXOgC0xhPcCz874wAAAABJRU5ErkJggg==\" title=\"Fortifying your Workflows: Battle-Tested Security Strategies for Hardening GitHub Actions - Josh Johanning | foto 14\" \n\t\t\t\t     alt=\"Techorama (2025) ; Fortifying your Workflows: Battle-Tested Security Strategies for Hardening GitHub Actions - Josh Johanning ; Fortifying your Workflows, Battle-Tested Security Strategies for Hardening GitHub Actions, Josh Johanning, Techorama\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251029_160911_d_1_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Trusted. Respected. Heard. How to Influence From Any Position - Alice Meredith | foto 15\"\n\t           data-gps=\"52.083256,5.111183\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_160911_d_1_e_kl.jpg\" alt=\"Trusted. Respected. Heard. How to Influence From Any Position - Alice Meredith\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMElEQVR4AWNRVXTh4uISl&#x2B;L88OEDi66urpqamoKy0Lt371jOX1r97KW47GN&#x2B;eXl5AORcDXU\/gsZMAAAAAElFTkSuQmCC\" title=\"Trusted. Respected. Heard. How to Influence From Any Position - Alice Meredith | foto 15\" \n\t\t\t\t     alt=\"Techorama (2025) ; Trusted. Respected. Heard. How to Influence From Any Position - Alice Meredith ; Techorama, Trusted, Respected, Heard, How to Influence From Any Position, Alice Meredith\" \/><br \/>\n\t        <\/a><br \/>\n<a href=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/1000\/20251029_180558_d_1_e_kl1k.jpg\" class=\"lightbox[blog]\"\n\t           title=\"Techorama (2025) - Lessons from the fast lane - Robert Doornbos | foto 16\"\n\t           data-gps=\"52.084308,5.105239\" data-heightratio=\"0.667\"><br \/>\n\t            <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/techorama-2025\/500\/20251029_180558_d_1_e_kl.jpg\" alt=\"Lessons from the fast lane - Robert Doornbos\" \/><\/noscript><br \/>\n\t\t\t\t<img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAMUlEQVR4AWNJSAj5&#x2B;\/fvs8fPPn\/&#x2B;zMLKyqqqqqqsoPzu3TuWr\/ePsQl8Z\/\/P8PXTSwCbsxTL3GwxPAAAAABJRU5ErkJggg==\" title=\"Lessons from the fast lane - Robert Doornbos | foto 16\" \n\t\t\t\t     alt=\"Techorama (2025) ; Lessons from the fast lane - Robert Doornbos ; Techorama, Lessons from the fast lane, Robert Doornbos\" \/><br \/>\n\t        <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"Op Techorama 2025 werden inzichten gedeeld over actuele thema\u2019s binnen de IT en softwareontwikkeling. Deze blog is geschreven voor IT professionals. In dit blog bespreken we enkele hoogtepunten. In deze blog geef ik een samenvatting van de verschillende sessies: The Past, Present, and Future of AI for Application Developers \u2014 Steve Sanderson Agents of Change:&#8230; <a class=\"view-article\" href=\"https:\/\/qdraw.nl\/blog\/technologie\/techorama-2025\/\">Bekijk artikel<\/a>","protected":false},"author":2,"featured_media":9839,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[624],"tags":[2841,2252,2761,2972,2598],"class_list":["post-9838","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologie","tag-net","tag-cms","tag-code","tag-conference","tag-utrecht"],"_links":{"self":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts\/9838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/comments?post=9838"}],"version-history":[{"count":3,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts\/9838\/revisions"}],"predecessor-version":[{"id":9842,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts\/9838\/revisions\/9842"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/media\/9839"}],"wp:attachment":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/media?parent=9838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/categories?post=9838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/tags?post=9838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}