Op Techorama 2024 werden inzichten gedeeld over actuele thema’s binnen de IT en softwareontwikkeling. Deze blog is
geschreven voor IT professionals. In dit blog bespreken we enkele hoogtepunten, waaronder Michaël Hompus’
performance-optimalisaties in C#, Steve Smith’s toepassing van Domain-Driven Design (DDD) om complexiteit te
verminderen, en Michael Kaufmann’s uitleg over cybersecurity en Zero Trust voor ontwikkelaars. Daarnaast belichtte Amber
Vanderburg het belang van teamdynamiek en besluitvorming. Van ethisch hacken tot geautomatiseerd testen, deze sessies
bieden waardevolle kennis voor softwareontwikkelaars die veilige, efficiënte en schaalbare systemen willen bouwen.
In deze blog geef ik een samenvatting van de verschillende sessies:

“Learn to Say ‘No!’ Without Being a Jerk” door Christina Aldan:
Deze sessie richt zich op het belang van het stellen van grenzen zonder onbeleefd over te komen. Het behandelt waarom
mensen moeite hebben om “nee” te zeggen, vaak door angsten zoals het missen van kansen (FOMO), oordeel van anderen,
of niet goed genoeg zijn.
Belangrijke punten:
- Grenzen stellen: Definieer tijd, fysieke, mentale en materiële grenzen om je eigen welzijn te waarborgen en
overbelasting te voorkomen. - Non-negotiable waarden: Leer wat je kernwaarden zijn en gebruik deze als basis om grenzen te stellen.
- Overcommitment vermijden: Zeg niet automatisch “ja” tegen alles, omdat dit kan leiden tot stress, burn-out, en
verminderde productiviteit. - Communicatie van grenzen: Er zijn manieren om vriendelijk en respectvol “nee” te zeggen, zoals het voorstellen
van alternatieven of het aangeven dat het niet in je agenda past.
Strategieën:
- Blokkeer tijd: Hou je aan je planning, inclusief pauzes.
- Onderzoek verplichtingsgevoelens: Vraag jezelf af of je “ja” zegt uit verplichting of omdat het echt nodig is.
- Maak van “ja” een weloverwogen keuze: Denk na over wat er nodig is om er volmondig “ja” op te zeggen.
- Oefen in het zeggen van nee: Door regelmatig te oefenen, wordt het makkelijker om grenzen te stellen.
- Beslis en wees duidelijk: Sta achter je besluit en blijf bij je nee.
Praktische tips: Gebruik specifieke zinnen om je grenzen duidelijk te maken zonder bot over te komen, zoals “Dit past
helaas niet in mijn agenda” of “Ik kan het nu niet, maar wellicht in de toekomst.”

“SIMD, Vectorization – What It Means and How to Do It in .NET” door Jiří Činčura:
Deze sessie bespreekt SIMD (Single Instruction Multiple Data) en vectorisatie in de context van .NET, waarbij de
focus ligt op prestatie-optimalisatie van CPU-gebaseerde verwerking. SIMD maakt het mogelijk om met één instructie
meerdere datapunten tegelijk te verwerken, wat vooral nuttig is voor wiskundige en wetenschappelijke toepassingen
die veel rekenkracht vereisen.
Belangrijke punten:
- SIMD en prestatieverbeteringen: SIMD kan worden gebruikt om CPU-prestaties te verbeteren door meerdere
datapunten tegelijkertijd te verwerken. - Vectorisatie: Moderne CPU’s hebben vector-units waarmee ze grotere hoeveelheden gegevens tegelijk kunnen
verwerken. - Simulatie en overhead: Hoewel SIMD snelheidswinst kan opleveren, introduceert het ook overhead, vooral bij
kleine datasets. - Visual Studio en benchmarking: Tools zoals Visual Studio helpen bij het meten en optimaliseren van
SIMD-implementaties.
Praktische toepassingen:
- SIMD is krachtig voor wetenschappelijke simulaties, fysische modellen, en geavanceerde wiskundige berekeningen.
Limitaties:
- SIMD werkt goed in sommige scenario’s, zoals CPU’s in Azure VM’s, maar biedt niet altijd voordelen in elke
omgeving. - Het stroomverbruik kan stijgen door intensieve vectorisatie, wat de CPU-prestaties beïnvloedt.

“EQ in Tech” door Amber Vanderburg
Deze sessie draait om het ontwikkelen van emotionele intelligentie (EQ) in de technologiesector en hoe dit invloed
heeft op samenwerking, leiderschap en persoonlijke groei.
Belangrijke punten:
- EQ als spier: Emotionele intelligentie is een vaardigheid die je kunt ontwikkelen, net zoals een spier.
- Waarden en zelfbewustzijn: Het begrijpen van je kernwaarden is cruciaal voor het reguleren van emoties.
- Zelfreflectie en zelfpraat: Positieve zelfpraat helpt bij het herstructureren van negatieve ervaringen en
emoties. - Empathisch luisteren: Actief luisteren met aandacht voor intentie en emotie is essentieel.
- Pauzeren voor inzicht: Pauzes tijdens gesprekken zijn krachtig en verminderen misverstanden.
Praktische strategieën:
- Zelfbewustzijn ontwikkelen: Herken je triggers en leer hoe je erop reageert.
- Grenzen stellen: Het is belangrijk om gezonde grenzen te stellen in relaties.
- Modelleer positieve EQ: Inspireer anderen door zelf een voorbeeld te zijn van goede EQ.
De sessie benadrukt dat het ontwikkelen van emotionele intelligentie niet alleen je werkprestaties verbetert, maar ook
een positieve invloed heeft op de samenwerking en de algehele sfeer binnen teams.

“Multitenancy in ASP.NET Core: Challenges and Approaches” door Marco De Sanctis
Deze sessie richt zich op de uitdagingen en benaderingen van het implementeren van multitenancy in ASP.NET Core, met
een focus op SaaS-platforms en het beheren van verschillende huurders.
Belangrijke uitdagingen:
- Data-isolatie: Het scheiden van gegevens tussen verschillende huurders is cruciaal.
- Kosten en complexiteit: Het beheren van meerdere databases of schema’s voor verschillende huurders kan
operationeel complex en kostbaar zijn. - Custom domains: Bedrijven kunnen hun eigen domeinen gebruiken voor toegang tot het platform.
- SSO (Single Sign-On): Bedrijven willen hun bestaande identiteitsproviders gebruiken om SSO te implementeren.
Oplossingen:
- Data-isolatiestrategieën:
- Gescheiden databases: Elke tenant heeft zijn eigen database, wat volledige isolatie biedt maar operationele
overhead veroorzaakt. - Gescheiden schema’s: Een enkele database met verschillende schema’s voor elke tenant, wat minder overhead
heeft dan aparte databases, maar nog steeds isolatie biedt. - Discriminatiekolommen: Een enkele database met een “company ID” om gegevens van verschillende huurders te
filteren. Dit kan worden gecombineerd met SQL Server’s Row-Level Security om toegang per tenant te regelen. - Enterprise SSO: Gebruik van identiteitsproviders zoals Azure AD B2C of Auth0 om SSO mogelijk te maken, waarbij
elke tenant zijn eigen login-stroom kan hebben. Configuraties zoals client ID, client secret, en metadata URL’s
worden beheerd voor elke tenant. - Domeinbeheer: Door DNS-zones en aangepaste domeinen in Azure App Services op te zetten, kan elk bedrijf een
eigen domein hebben waarmee het toegang krijgt tot het platform. - Toegang en beveiliging: Het gebruik van token-gebaseerde beveiliging (bijv. JWT-tokens verrijkt met claims)
zorgt ervoor dat de toegang goed wordt beheerd en kan worden aangepast voor specifieke tenants.
Deze sessie geeft inzicht in verschillende multitenancy-strategieën en hoe je ervoor kunt zorgen dat SaaS-platforms
schaalbaar en veilig blijven, terwijl ze voldoen aan de behoeften van verschillende bedrijven (tenants).

“Making the Web More Accessible for Everyone” door Jarne Van Aerde:
Jarne begon de sessie met een voorbeeld van zijn oma die moeite had met het lezen van kleinere tekst op websites, wat
het belang van toegankelijke webontwerpen benadrukte. Kleine verbeteringen kunnen een groot verschil maken voor
gebruikers met beperkingen.
Kernpunten van toegankelijkheid (A11y):
- Toegankelijkheid is nuttig voor iedereen, maar essentieel voor sommigen: Slechte toegang kan variëren van
tijdelijke situaties (zoals fel zonlicht op een scherm) tot permanente beperkingen (bijv. slechtziendheid). - Microsoft’s inclusieve ontwerpbenadering: Dit betekent dat ontwerp moet voorzien in een breed scala aan
gebruikersbehoeften, van visuele, auditieve, motorische en cognitieve beperkingen.
Regels en richtlijnen:
- WCAG 2.0 (Web Content Accessibility Guidelines): Deze richtlijnen helpen ontwikkelaars websites toegankelijker
te maken. Ze bestaan uit drie niveaus van naleving: A (essentieel), AA (gewenst) en AAA (optioneel). - Semantiek en ARIA (Accessible Rich Internet Applications): Semantisch correcte HTML-tags en ARIA-labels zijn
essentieel om extra context aan schermlezers te geven. Het gebruik van correcte elementen, zoals een
<button> in plaats van een <div>, kan de toegankelijkheid verbeteren.
Demo’s en implementatie:
- Voorbeelden van slechte semantiek: Het gebruik van onjuiste HTML-tags zoals een <div> voor een knop of
link kan navigatie en gebruik met schermlezers bemoeilijken. - ARIA-labels en -rollen: Deze helpen schermlezers om te begrijpen wat een element doet en geven extra context.
Bijvoorbeeld, een “volgende maand” knop in een datumkiezer kan aria-live-attributen gebruiken om veranderingen
aan te kondigen.
User Experience (UX):
- UX moet toegankelijk zijn voor iedereen: Visuele indicatoren zoals een focusstaat op interactieve elementen,
voldoende contrast, en het gebruik van de escape-toets om modals te sluiten zijn essentieel. - Visuele en toetsenbordnavigatie: Het is belangrijk om interactieve elementen goed zichtbaar te maken voor
mensen die alleen een toetsenbord gebruiken.
Testen en toekomst:
- Testen van toegankelijkheid: Handmatige tests met schermlezers (zoals JAWS, NVDA en VoiceOver) zijn belangrijk,
maar er zijn ook automatische tools zoals Lighthouse en Accessibility Insights die basisfouten opsporen. - Toekomst van toegankelijkheid: Hoewel AI kan helpen bij sommige taken zoals het genereren van
audio-beschrijvingen, kunnen complexe toegankelijkheidsproblemen nog niet volledig worden opgelost door AI.
Conclusie: Toegankelijkheid begint met kleine stappen, zoals semantiek verbeteren en contrast verhogen. Het vraagt om
voortdurende inspanning en testing om websites voor iedereen bruikbaar te maken.

“C# Language Internals – 25th Anniversary” door Bart De Smet:
Deze sessie besprak de interne ontwikkelingen en evoluties van de C#-taal gedurende de afgelopen 25 jaar. Bart De Smet
belichtte verschillende versies van C# en de nieuwe functies die elk heeft geïntroduceerd, evenals de uitdagingen en
oplossingen die deze verbeteringen met zich meebrachten.
Kernpunten van de sessie:
- Async Streams en State Machines:
- De sessie begon met een bespreking van async streams en asynchrone enumeratie, waarbij state machines een
cruciale rol spelen bij het verwerken van asynchrone methoden. - De rol van custom task builders en hoe deze helpen bij het efficiënt beheren van async workflows kwam ook
aan bod. Het concept van boxing (het omzetten van een value type naar een object) werd besproken, wat
prestaties kan beïnvloeden. - C# 9 en 10 Functies:
- C# 9:
- Covariant return types: Dit maakt het mogelijk om in een afgeleide klasse een sterkere return type te
gebruiken dan in de basis klasse, wat handig is voor complexere overerving. - Record types: Deze bieden een elegante manier om immutable types te creëren zonder veel boilerplate
code. Functies zoals automatische constructors, ToString, en Equals worden hierbij gratis meegeleverd. - C# 10:
- Async method builders en het gebruik van custom task builders werden verder toegelicht.
- C# 11 en 12 Functies:
- C# 11: Introduceerde het concept van required members, waarbij bepaalde eigenschappen verplicht moeten
worden ingesteld, wat nuttig kan zijn bij het afdwingen van consistentie in object-initialisatie. - C# 12: Besprak verbeteringen aan lambda-expressies, zoals het omkeren van return types en het ondersteunen
van meer flexibele aanroepen, die het werken met delegate types eenvoudiger maken.
De sessie gaf een goed overzicht van hoe de C#-taal zich heeft ontwikkeld, met focus op efficiëntie, flexibiliteit, en
leesbaarheid van code.

“A Season for Speed: Turning Puzzles into C# Performance Wins” door Michaël Hompus
In deze sessie bespreekt Michaël Hompus hoe je de prestaties van C#-code kunt verbeteren door het oplossen van
puzzels, gebaseerd op zijn ervaring met de Advent of Code-uitdaging. Deze puzzels bieden een platform om te
experimenteren met optimalisaties en verschillende technieken in C# voor betere performance.
Belangrijkste punten:
- Advent of Code:
- Een jaarlijks programmeerevenement gedurende 25 dagen voor Kerstmis. Elke dag komt een nieuwe puzzel met
unieke input en twee delen die de deelnemers proberen op te lossen. - Michaël gebruikte C# om deze puzzels op te lossen en verbeterde de prestaties van zijn oplossingen door
benchmarks te gebruiken.
- Een jaarlijks programmeerevenement gedurende 25 dagen voor Kerstmis. Elke dag komt een nieuwe puzzel met
- Performance meten:
- Stopwatch bleek niet nauwkeurig genoeg om op microsecondenniveau te meten. Daarom werd BenchmarkDotNet
gebruikt voor gedetailleerdere prestatiemetingen. - Het optimaliseren van code kan eenvoudig starten met het vervangen van LINQ met andere methoden zoals
for-loops, omdat LINQ soms trager is door het gebruik van abstracties.
- Stopwatch bleek niet nauwkeurig genoeg om op microsecondenniveau te meten. Daarom werd BenchmarkDotNet
- Optimalisatietechnieken:
- Michaël toonde aan hoe simd en vector optimalisaties prestaties tot 25% kunnen verbeteren.
- Door gebruik te maken van while-loops in plaats van for-loops werd nog meer snelheid gewonnen, met name
voor CPU-intensieve taken. - Goto-statements kunnen soms nuttig zijn om snel uit een lus te springen, maar moeten voorzichtig worden
gebruikt.
- Geavanceerde optimalisaties:
- Pointer-gebaseerde oplossingen en het gebruik van Unsafe code kunnen soms prestaties verbeteren, hoewel
ze riskant zijn door hun complexiteit en potentieel gevaarlijke gevolgen. - Bit-array optimalisatie: Door geheugen op een efficiëntere manier te gebruiken met bitarrays, kan je
grote prestatieverbeteringen realiseren, vooral bij herhalende bewerkingen.
- Pointer-gebaseerde oplossingen en het gebruik van Unsafe code kunnen soms prestaties verbeteren, hoewel
- Praktische voorbeelden:
- Gebruik van
Span<T>voor beter geheugenbeheer. - Het vermijden van overbodige initialisaties en optimaliseren van char-verwerking.
- Geoptimaliseerde algoritmes zoals Dijkstra’s algoritme kunnen significant sneller zijn, vooral bij
specifieke input.
- Gebruik van
Conclusie: Het is cruciaal om altijd je code te meten om de impact van je optimalisaties te bepalen. Soms kunnen
kleine aanpassingen grote prestatieverbeteringen opleveren, maar te veel optimaliseren kan ook leiden tot
complexiteit zonder veel extra winst.

“DDD’s Application Building Blocks” door Steve Smith
In deze sessie legt Steve Smith de basisprincipes van Domain-Driven Design (DDD) uit, geïnspireerd door Eric Evans’
werk, en hoe het helpt bij het aanpakken van complexiteit in softwareontwikkeling. De focus ligt op het organiseren
van code in blokken die overeenkomen met domeinen en contexten binnen een applicatie om complexiteit beheersbaar te
houden.
Belangrijkste concepten:
- Complexiteit verminderen:
- Softwareontwikkelaars kunnen maar een beperkt aantal dingen tegelijk in hun hoofd houden (5-7 items),
waardoor het essentieel is om problemen in kleinere stukjes te verdelen. - DDD biedt bouwblokken die helpen om dit te organiseren door het domein en de oplossingsruimte op te
splitsen in verschillende contexten.
- Softwareontwikkelaars kunnen maar een beperkt aantal dingen tegelijk in hun hoofd houden (5-7 items),
- Domeinen en Bounded Contexts:
- Het domein is de probleemruimte; het bevat de kernactiviteiten en subdomeinen van een organisatie.
- Bounded Context is de oplossingsruimte; het is een afgebakende scope waarin bepaalde domeinconcepten
gelden. Binnen deze context worden concepten en modellen expliciet gedefinieerd en geïsoleerd om
conflicten te vermijden. - Overlapping van contexten moet worden voorkomen omdat dit tot complexiteit en miscommunicatie kan
leiden.
- Encapsulatie en grenzen:
- Encapsulatie binnen bounded contexts zorgt ervoor dat de interne implementatie privé blijft, en dat
alleen een publieke interface beschikbaar is voor interactie. - API’s en contracten (zoals DTO’s) fungeren als publieke interfaces voor communicatie tussen
verschillende contexten.
- Encapsulatie binnen bounded contexts zorgt ervoor dat de interne implementatie privé blijft, en dat
- Aggregaten en entiteiten:
- Aggregates zijn objecten die samenhangen en die een consistente reeks regels of invarianties afdwingen.
Ze voorkomen dat geldige staten van het systeem worden geschonden, zoals het maximum aantal lijnitems in
een order. - Entities zijn objecten met een unieke identiteit binnen de bounded context. Ze encapsuleren regels en
logica en zorgen ervoor dat bepaalde voorwaarden worden afgedwongen, zoals positieve hoeveelheden voor
orderlijnen.
- Aggregates zijn objecten die samenhangen en die een consistente reeks regels of invarianties afdwingen.
- Value Objects:
- Value Objects zijn objecten die geen identiteit hebben en alleen worden vergeleken op basis van hun
waarden. Ze zijn immutabel en worden vaak gebruikt om complexe types op een duidelijke en veilige manier
te modelleren. - Ze voorkomen het bestaan van ongeldige staten in het systeem, doordat ze vanaf het moment van creatie
correct zijn gedefinieerd en niet gewijzigd kunnen worden.
- Value Objects zijn objecten die geen identiteit hebben en alleen worden vergeleken op basis van hun
- Primitive Obsession en validatie:
- Primitive Obsession is een code-smell waarbij basistypes zoals int of string te veel worden gebruikt
zonder dat er specifieke domeinregels worden afgedwongen. DDD raadt aan om aangepaste types te gebruiken
die domeinspecifieke validatie en logica encapsuleren.
- Primitive Obsession is een code-smell waarbij basistypes zoals int of string te veel worden gebruikt
- Modules en microservices:
- Bounded Contexts kunnen worden gemoduleerd in microservices of in een modulaire monoliet, afhankelijk
van de behoeften. Microservices kunnen echter leiden tot complexiteit en moeten zorgvuldig worden
gebruikt. - Anti-corruptielagen worden gebruikt om contexten te beschermen tegen ongewenste invloeden van buitenaf
door het vertalen van externe gegevens naar het interne model.
- Bounded Contexts kunnen worden gemoduleerd in microservices of in een modulaire monoliet, afhankelijk
Conclusie: DDD biedt een reeks patronen en bouwblokken om software op een gestructureerde manier te ontwerpen,
waardoor complexiteit beheersbaar wordt. Door gebruik te maken van bounded contexts, aggregaten, entiteiten en value
objects, kunnen ontwikkelaars hun systemen robuuster en onderhoudsvriendelijker maken.

Security 101: A Beginner’s Guide to Cybersecurity and Zero Trust for Developers
In deze sessie gaf Michael Kaufmann een uitgebreide inleiding in cybersecurity en het concept van Zero Trust,
speciaal gericht op ontwikkelaars. Hij behandelde de basisprincipes van beveiliging, de meest voorkomende
bedreigingen, en belangrijke best practices voor het beveiligen van applicaties en infrastructuren.
Kernpunten van de sessie:
- Cybersecurity Basics:
- Cyberaanvallen veroorzaken jaarlijks aanzienlijke financiële schade.
- Het CIA-model (Confidentiality, Integrity, Availability) vormt de kern van beveiliging, met als doel
ongeautoriseerde toegang te voorkomen en de vertrouwelijkheid, integriteit en beschikbaarheid van
systemen te waarborgen. - Hackers gebruiken technieken zoals phishing, malware (ransomware, virussen, worms), DoS/DDOS-aanvallen,
en SQL-injecties om systemen binnen te dringen.
- Phishing en Social Engineering:
- Phishing is een veelvoorkomende aanvalsvector waarbij kwaadwillenden zich voordoen als betrouwbare
partijen om informatie te stelen. Dit gebeurt vaak via e-mails en websites. - Social engineering speelt in op menselijke zwakheden, waarbij aanvallers bijvoorbeeld informatie
ontfutselen via misleidende telefoontjes of social media.
- Phishing is een veelvoorkomende aanvalsvector waarbij kwaadwillenden zich voordoen als betrouwbare
- Zero Trust Architecture:
- Bij Zero Trust wordt er vanuit gegaan dat elk systeem of elke gebruiker een potentiële dreiging kan
zijn. Alles moet dus worden geverifieerd, ongeacht of het zich binnen of buiten het netwerk bevindt. - Kernprincipes zijn: Identity Verification, Least Privilege Access, en Continuous Monitoring. Het doel is
om segmentatie te creëren en alleen de nodige toegang te verlenen.
- Bij Zero Trust wordt er vanuit gegaan dat elk systeem of elke gebruiker een potentiële dreiging kan
- IAM en MFA:
- Identity and Access Management (IAM) beheert gebruikersidentiteiten en toegang tot systemen, gebaseerd
op rollen en privileges (Role-Based Access Control – RBAC). - Multi-Factor Authentication (MFA) biedt een extra beveiligingslaag door het gebruik van meerdere
verificatiemethoden, zoals wachtwoorden en biometrie.
- Identity and Access Management (IAM) beheert gebruikersidentiteiten en toegang tot systemen, gebaseerd
- Encryptie en netwerken:
- Beveiliging op netwerklaag omvat technieken zoals firewalls, VPN’s, DDoS-bescherming, en encryptie
(symmetrisch en asymmetrisch). - Encryptie beschermt gegevens door ze onleesbaar te maken voor onbevoegden.
- Beveiliging op netwerklaag omvat technieken zoals firewalls, VPN’s, DDoS-bescherming, en encryptie
- Security Operations en Incident Management:
- Security Information and Event Management (SIEM) en Security Operations Centers (SOC) spelen een
cruciale rol in het monitoren en reageren op beveiligingsincidenten. - Teams zoals Red Team en Blue Team worden ingezet om aanvallen te simuleren en verdedigingen te
versterken.
- Security Information and Event Management (SIEM) en Security Operations Centers (SOC) spelen een
- Application Security en SDLC:
- Ontwikkelaars moeten secure by design denken, waarbij beveiliging in elke stap van de
software-ontwikkelingslevenscyclus (SDLC) is ingebouwd. - Het is essentieel om te werken met inputvalidatie, output encoding, sessiebeheer, en
afhankelijkheidsbeveiliging.
- Ontwikkelaars moeten secure by design denken, waarbij beveiliging in elke stap van de
- Testing Tools en Beveiliging van de Software Supply Chain:
- Tools zoals SonarQube, OWASP ZAP, Burp Suite, en Checkmarx helpen bij het identificeren van
kwetsbaarheden tijdens het ontwikkelen van software (SAST/DAST). - Dependabot en Anchore helpen bij het beheren van afhankelijkheden en het beveiligen van de supply chain
door automatische updates en scans.
- Tools zoals SonarQube, OWASP ZAP, Burp Suite, en Checkmarx helpen bij het identificeren van
- DevSecOps en Shift Left:
- Shift Left beveelt aan om beveiliging vroeg in de ontwikkelcyclus op te nemen, zodat
beveiligingsproblemen sneller worden ontdekt en verholpen. - Automatisering in de pipeline is cruciaal voor een veilige DevOps-aanpak.
- Shift Left beveelt aan om beveiliging vroeg in de ontwikkelcyclus op te nemen, zodat
Conclusie:
Beveiliging is een continu proces, en Zero Trust en IAM zijn fundamenteel voor een robuuste beveiliging.
Ontwikkelaars moeten hun applicaties vanaf het begin beveiligen, gebruik maken van geautomatiseerde tools, en op de
hoogte blijven van de nieuwste bedreigingen en technieken.
Conclusie: Cybersecurity is essentieel voor alle ontwikkelaars, ongeacht hun ervaring. Het implementeren van Zero
Trust, en het toepassen van basisprincipes zoals het CIA-model en least privilege, helpen bij het beveiligen van
moderne applicaties en systemen tegen aanvallen.

Strategies for Influencing your Team/Organization door Amber Vanderburg
Amber begon met een oefening om een bloem in de kamer te vinden, wat diende als metafoor voor het herkennen van
invloed en relaties in ons dagelijks werk en persoonlijke leven. Ze benadrukte dat relaties en invloed belangrijk
zijn om te begrijpen, omdat we vaak mogelijkheden missen door niet actief te beïnvloeden of te investeren in
relaties.
Kernpunten:
- Systeem 1- en Systeem 2-denken (Kahneman):
- Systeem 1 is snel, intuïtief en foutgevoelig. Dit type denken wordt gebruikt voor snelle beslissingen,
zoals kleine wijzigingen in UI/UX of bugfixes. - Systeem 2 is langzamer en bewuster, gebruikt voor complexe beslissingen en grondige analyses, zoals het
aanpakken van complexe problemen in een project.
- Systeem 1 is snel, intuïtief en foutgevoelig. Dit type denken wordt gebruikt voor snelle beslissingen,
- Invloed uitoefenen:
- Invloed is niet alleen gebaseerd op expertise, maar ook op relaties en vertrouwen. Bouw sterke relaties
door eerlijk te zijn, respect te tonen en consistent te handelen. - Identificeer wie je moet beïnvloeden (bijvoorbeeld een product owner of belangrijke stakeholders), en
bedenk wat voor hen belangrijk is. - Gebruik mentale shortcuts (heuristieken) om snel invloed te krijgen, zoals door vertrouwen op te bouwen
en sterke eerste indrukken te maken.
- Invloed is niet alleen gebaseerd op expertise, maar ook op relaties en vertrouwen. Bouw sterke relaties
- Systeem 1-acties voor snelle invloed:
- Kleine, snel uitvoerbare acties, zoals bugfixes of het veranderen van een kleurschema, kunnen snel
invloed hebben. - Focus op eenvoudige ideeën en presenteer ze op een manier die cognitief gemakkelijk te verwerken is.
- Kleine, snel uitvoerbare acties, zoals bugfixes of het veranderen van een kleurschema, kunnen snel
- Systeem 2-acties voor langdurige invloed:
- Voor complexe beslissingen is een meer doordachte, op data gebaseerde aanpak nodig. Hier is het
belangrijk om risico’s in kaart te brengen, opties af te wegen, en feedback te verzamelen. - Het is cruciaal om fouten te erkennen en te leren van feedback.
- Voor complexe beslissingen is een meer doordachte, op data gebaseerde aanpak nodig. Hier is het
- Framing en communicatie:
- Gebruik positieve framing om je ideeën te presenteren. Begin met “Waarom”, dan “Hoe”, en eindig met
“Wat” (Golden Circle van Simon Sinek). - Benadruk voordelen en resultaten in plaats van alleen functies, zodat je verhaal relevant en overtuigend
is.
- Gebruik positieve framing om je ideeën te presenteren. Begin met “Waarom”, dan “Hoe”, en eindig met
- Building Trust:
- Vertrouwen is essentieel voor invloed. Dit kan worden bereikt door consistent eerlijk te zijn, respect
te tonen en verantwoording af te leggen. Laat zien dat je de belangen van je collega’s en stakeholders
serieus neemt.
- Vertrouwen is essentieel voor invloed. Dit kan worden bereikt door consistent eerlijk te zijn, respect
- Heuristieken en cognitieve biases:
- Maak gebruik van beschikbaarheidsbias (recente gebeurtenissen worden zwaarder gewogen) en andere
cognitieve biases om je argumenten effectiever te maken. Verbind complexe concepten aan concrete,
herkenbare voorbeelden.
- Maak gebruik van beschikbaarheidsbias (recente gebeurtenissen worden zwaarder gewogen) en andere
- Invloed vergroten met storytelling:
- Verhalen zijn krachtige tools om invloed te vergroten, vooral wanneer je complexe of technische ideeën
moet overbrengen naar een niet-technisch publiek. Gebruik relatable analogieën en voorbeelden.
- Verhalen zijn krachtige tools om invloed te vergroten, vooral wanneer je complexe of technische ideeën
- Stap-voor-stap aanpak:
- Breek grote doelen op in kleinere, haalbare stappen. Dit maakt het gemakkelijker voor anderen om in te
stemmen met jouw plannen en voorkomt dat ze zich overweldigd voelen.
- Breek grote doelen op in kleinere, haalbare stappen. Dit maakt het gemakkelijker voor anderen om in te
- Cultureel bewustzijn en reflectie:
- Wees je bewust van culturele verschillen binnen teams en bedrijven, en pas je communicatie en
beïnvloedingsstrategieën hierop aan. Ruimte geven voor reflectie en dialoog kan helpen om een meer
inclusieve besluitvorming te stimuleren.
- Wees je bewust van culturele verschillen binnen teams en bedrijven, en pas je communicatie en
Amber sloot af met het belang van zowel groot durven dromen als samenwerken om die dromen te verwezenlijken. Door
invloed stap voor stap te bouwen en relaties te versterken, kun je zowel in systeem 1 als systeem 2 een effectieve
leider zijn.
Belangrijke boodschap:
Begin klein, bouw vertrouwen, en gebruik invloed om je team en stakeholders mee te krijgen in jouw visie.

Getting started with Ethical Hacking door Christian Peeters
Deze sessie, gericht op ontwikkelaars die training geven, behandelt verschillende aspecten van hacking en
beveiliging, met een nadruk op kwetsbaarheden, sociale engineering en best practices om systemen te beveiligen.
Kernpunten:
- Hacking en kwetsbaarheden:
- Hacking omvat het exploiteren van kwetsbaarheden in systemen om toegang te krijgen en deze toegang te
behouden. Hackers gebruiken technieken zoals het scannen van netwerken en het identificeren van open
poorten om binnen te dringen. - Een typisch hackproces bestaat uit vijf stappen: toegang krijgen, toegang behouden, sporen wissen, en
het verbergen van de aanwezigheid binnen een systeem.
- Hacking omvat het exploiteren van kwetsbaarheden in systemen om toegang te krijgen en deze toegang te
- Sociale engineering:
- Sociale engineering is een belangrijke methode die hackers gebruiken om informatie van mensen te
verkrijgen. Dit kan variëren van phishing-e-mails tot het bellen van medewerkers en zich voordoen als
een leidinggevende. - Voorbeelden werden gegeven van phishing-aanvallen waarbij een hacker zich voordoet als een CEO, wat
resulteerde in aanzienlijke financiële verliezen voor bedrijven.
- Sociale engineering is een belangrijke methode die hackers gebruiken om informatie van mensen te
- WiFi-veiligheid:
- Onbeveiligde netwerken (zoals open WiFi-netwerken) zijn een gemakkelijke toegangspoort voor hackers.
Encryptiemethoden zoals WEP en WPA moeten zorgvuldig worden gebruikt. - Hackers kunnen technieken gebruiken zoals Wireshark om netwerkverkeer te monitoren of
Pineapple-apparaten om onveilige netwerken te creëren en gegevens te onderscheppen.
- Onbeveiligde netwerken (zoals open WiFi-netwerken) zijn een gemakkelijke toegangspoort voor hackers.
- Kwetsbaarheden in software:
- De presentatie verwijst naar de OWASP Top 10, die veelvoorkomende kwetsbaarheden in webapplicaties
identificeert, zoals:- Broken access controls
- Onveilige configuraties
- SQL-injecties (bijv. 1=1)
- Cross-Site Scripting (XSS)
- Het belang van het bijhouden van updates voor softwarepakketten en libraries (zoals npm en NuGet) werd
benadrukt, evenals het gebruik van CVE-lijsten (Common Vulnerabilities and Exposures).
- De presentatie verwijst naar de OWASP Top 10, die veelvoorkomende kwetsbaarheden in webapplicaties
- Beveiligingstools:
- Er werd een overzicht gegeven van verschillende beveiligingstools, waaronder:
- Burp Suite en OWASP ZAP voor webapplicatietests
- Metasploit voor penetratietests
- Hydra voor brute-force-aanvallen
- DVWA (Damn Vulnerable Web Application) en WebGoat voor training in beveiligingskwetsbaarheden
- Er werd een overzicht gegeven van verschillende beveiligingstools, waaronder:
- Best practices voor beveiliging:
- Het belang van “patchen” (het regelmatig bijwerken van software om kwetsbaarheden te verhelpen) en het
verkrijgen van schriftelijke toestemming voor penetratietests werd benadrukt. - Gebruik maken van beveiligingsprotocollen en -standaarden om systemen te beschermen tegen aanvallen.
- Het belang van “patchen” (het regelmatig bijwerken van software om kwetsbaarheden te verhelpen) en het
- Vertrouwen en kwetsbaarheid:
- De spreker benadrukte dat je niemand moet vertrouwen, en dat het cruciaal is om voorzichtig om te gaan
met gevoelige informatie, zowel in softwareontwikkeling als in persoonlijke interacties. - Een sterk beveiligingsbeleid en een cultuur van waakzaamheid zijn essentieel om aanvallen te voorkomen.
- De spreker benadrukte dat je niemand moet vertrouwen, en dat het cruciaal is om voorzichtig om te gaan
Belangrijke boodschap:
De sessie benadrukte dat het van vitaal belang is voor ontwikkelaars om niet alleen bewust te zijn van de
technologische aspecten van beveiliging, maar ook van de menselijke factor. Training en bewustwording van sociale
engineeringtechnieken zijn cruciaal om te voorkomen dat individuen en organisaties slachtoffer worden van aanvallen.

Cypress, Playwright or Selenium: choosing the right testing tool
Deze sessie richtte zich op verschillende soorten testen in softwareontwikkeling, met een specifieke focus op
end-to-end (E2E) testing en de tools die beschikbaar zijn voor geautomatiseerd testen.
Kernpunten:
- Houding ten opzichte van testen:
- De spreker gaf aan dat ze niet van testen houden, mogelijk door eerdere negatieve ervaringen of
trauma’s. - Ondanks deze gevoelens is het belangrijk om verschillende soorten testen te verkennen om de kwaliteit
van de software te waarborgen.
- De spreker gaf aan dat ze niet van testen houden, mogelijk door eerdere negatieve ervaringen of
- Soorten testen:
- Functionele en prestatie testen: Essentieel om ervoor te zorgen dat de software correct functioneert en
voldoet aan de prestatienormen. - Automated UI Testing: Dit omvat het testen van de gebruikersinterface om ervoor te zorgen dat deze
functioneel is na wijzigingen in de code (regressietests). - End-to-End Testing: Dit type testen simuleert echte gebruikersinteracties met de applicatie en
controleert of alle componenten goed samenwerken.
- Functionele en prestatie testen: Essentieel om ervoor te zorgen dat de software correct functioneert en
- Testtools:
- Selenium: Geïntroduceerd in 2004 door Jason Huggins, het is een van de meest populaire open-source
testtools. Selenium WebDriver kan verschillende browsers aansturen en ondersteunt meerdere
programmeertalen. Het heeft een grote community, maar heeft enkele nadelen zoals trage uitvoering, flaky
tests, en complexe configuratie. - Cypress: Gelanceerd in 2014, is Cypress een moderne testtool die speciaal is ontworpen voor
JavaScript-ontwikkelaars. Het biedt een uitstekende gebruikerservaring door automatisch te wachten op
elementen en duidelijke foutmeldingen te geven. Nadelen zijn onder andere de noodzaak van extra plug-ins
voor sommige functionaliteiten en beperkte browserondersteuning. - Playwright: Geïntroduceerd in 2019, is Playwright ontwikkeld door de makers van Puppeteer en ondersteunt
meerdere browsers, inclusief headless browsers en mobiele applicaties. Het heeft een groeiende
populariteit, maar wordt soms als complexer en minder intuïtief ervaren, met een kleinere community.
- Selenium: Geïntroduceerd in 2004 door Jason Huggins, het is een van de meest populaire open-source
- Vergelijking van tools:
- Cypress vs. Selenium: Cypress biedt een betere ontwikkelaarservaring, maar is beperkt tot JavaScript,
terwijl Selenium veelzijdiger is maar een complexere setup vereist. - Playwright vs. Cypress: Playwright biedt ondersteuning voor meer browsers en heeft mogelijkheden voor
mobile testing, maar de API is complexer en minder gebruiksvriendelijk.
- Cypress vs. Selenium: Cypress biedt een betere ontwikkelaarservaring, maar is beperkt tot JavaScript,
- Conclusie:
- Cypress en Playwright zijn beide populaire keuzes voor E2E testing, met een groeiende acceptatie in de
softwaregemeenschap. Hun gebruik zal waarschijnlijk toenemen naarmate de vraag naar geautomatiseerd
testen blijft stijgen.
- Cypress en Playwright zijn beide populaire keuzes voor E2E testing, met een groeiende acceptatie in de
Belangrijke boodschap:
Het is cruciaal voor ontwikkelaars om de juiste testtools te kiezen die aansluiten bij hun specifieke behoeften en de
technologieën die ze gebruiken. Het gebruik van de juiste tools kan de kwaliteit van de software aanzienlijk
verbeteren en bijdragen aan een betere gebruikerservaring.
Conclusie van deze blog
Deze blog biedt een overzicht van diverse sessies die elk belangrijke inzichten delen over onderwerpen variërend van
ethisch hacken en multitenancy tot emotionele intelligentie en prestatieoptimalisatie in C#. De rode draad door alle
sessies is het belang van bewustwording en strategie, zowel op technisch vlak als in persoonlijke groei en samenwerking.