De afgelopen maanden ben ik steeds actiever bezig geweest met AI-development. Niet vanuit het idee om ineens softwaredeveloper te worden, maar vooral vanuit nieuwsgierigheid: wat kan er tegenwoordig eigenlijk met AI? Hoe werkt het? Misschien nog wel interessanter: wat kan ik er zelf mee? Dat begon niet helemaal vanuit het niets. Tijdens verschillende opdrachten zag ik AI al steeds duidelijker naar voren komen.
De eerste ervaringen met AI
Bij KWF, alweer 3 jaar geleden, waren we al actief bezig met verschillende AI-ideeën en proof-of-concepts. Vanuit mijn rol als Security Officer keek ik daarbij voornamelijk naar de securitykant. Wat betekent het als je AI gaat gebruiken? Welke mogelijkheden zijn er, maar ook welke securityrisico’s komen daarbij kijken?
Later, tijdens mijn opdracht bij Toyota Louwman Financial Services, werd AI opnieuw steeds zichtbaarder. Er werd veel over gesproken en ook op Europees niveau kwamen initiatieven op gang, bijvoorbeeld in de vorm van hackathons. Langzaamaan begon AI ook steeds meer binnen de organisatie zelf een onderwerp te worden. Op dat moment keek ik er vooral vanuit mijn eigen vakgebied naar. Interessant, veel mogelijkheden, veel securityrisico’s om te mitigeren, maar nog niet direct iets waarmee ik zelf applicaties aan het bouwen was. Dat veranderde nadat mijn opdracht bij Toyota was afgelopen.
Van erover praten naar zelf gaan bouwen
Daarna ontstond de ruimte om er zelf veel verder in te duiken. Ik sprak hier en daar met mensen die al actiever met AI-development bezig waren en begon steeds beter te begrijpen wat er inmiddels mogelijk was. Een eerste echte stap was een Claude Code-cursus die mijn neef, Mark de Kock, samen met iemand anders had gemaakt. Daarmee begon ik zelf daadwerkelijk te bouwen. Vanaf dat moment ging het eigenlijk behoorlijk hard.
Eerst relatief eenvoudig, een blog maken. Daarna een eerste concept voor een website. Dingen waarvan ik vooraf verwachtte dat ze behoorlijk wat tijd zouden kosten, bleken ineens in heel korte tijd te realiseren. Tijdens het bouwen kwamen er steeds meer ideeën. Als dit kan, wat kan ik dan nog meer maken?
Van ideeën naar applicaties die ik daadwerkelijk gebruik
Langzaamaan werden die ideeën steeds concreter. Voor een training die ik in de tussentijd heb gegeven, heb ik bijvoorbeeld een applicatie ontwikkeld die de training op verschillende manieren ondersteunt. Hetzelfde heb ik gedaan rond de ISO 27001 Lead Implementer-training die ik zelf heb gevolgd. Op basis van openbare bronnen en beschikbare informatie heb ik een eigen leer- en examenapplicatie gemaakt. Die heb ik vervolgens ook werkelijk gebruikt als ondersteuning bij het leren voor mijn examen. Dat bleek veel waardevoller dan alleen het hebben van een extra tool.
Door de onderwerpen zelf in een applicatie te verwerken, vragen te maken en verbanden zichtbaar te krijgen, begon ik de materie ook op een andere manier te begrijpen. Het bouwen van de applicatie werd daarmee tegelijkertijd een manier om zelf te leren.
Het hoeft ook niet allemaal zakelijk te zijn. Zo heb ik bijvoorbeeld een kleine applicatie gemaakt om samen met mijn zoon te gebruiken en mee te spelen. Andere ideeën zijn inmiddels verder in ontwikkeling. Daar zal ik later meer over delen wanneer ze daadwerkelijk live staan. Dat is voor mij misschien wel een van de leukste kanten hiervan. Een idee hoeft niet meer maanden op een lijstje te blijven staan. Je kunt je idee gewoon proberen te realiseren.
Langzaam ontstond een eigen developmentstraat
In het begin was het vooral experimenten, inmiddels is daar steeds meer structuur omheen ontstaan. Claude Code is voor mij de omgeving geworden waarin een idee in eerste instantie tot leven komt. Dat kan een proof-of-concept zijn, een MVP of gewoon iets waarvan ik wil weten: werkt dit eigenlijk? Vanuit daar wordt de applicatie lokaal opgebouwd. De branding die voor Hammer Cyber Security Services door Mats Roelofs, de grafisch vormgever, is ontwikkeld, kan daarbij direct worden meegenomen. Daardoor krijgen ook verschillende eigen applicaties steeds meer dezelfde herkenbare uitstraling.
Alleen een applicatie kunnen genereren is natuurlijk niet voldoende. Juist vanuit mijn securityachtergrond vind ik het belangrijk om ook te kijken naar wat er nodig is voordat zoiets daadwerkelijk online kan. Daarom heb ik in de loop van de tijd verschillende skills en controles opgebouwd. Die helpen om bijvoorbeeld naar de security van een applicatie te kijken, randvoorwaarden te controleren en te bepalen wat er nog moet gebeuren voordat een applicatie klaar is voor deployment. Het doel is daarbij om zoveel mogelijk op een gestandaardiseerde manier te werken, om vooral de AI-modellen op één manier te laten werken waar geen zaken worden vergeten. Dezelfde prompt in verschillende projecten levert namelijk verschillende uitkomsten op en dat moet voorkomen worden. Je wilt dat zoveel mogelijk op de door mij geverifieerde methode wordt uitgevoerd.
Van lokaal naar daadwerkelijk online
Ook voor deployment is inmiddels een duidelijke straat ontstaan. De ontwikkeling gebeurt lokaal. De code gaat vervolgens naar afgeschermde repositories in GitLab en vanuit daar kan deployment plaatsvinden via Vercel. Via DNS koppel ik vervolgens de juiste domeinen en subdomeinen aan de applicaties en is de applicatie live. Erg gaaf hoe dat nu werkt.
Daarmee heb ik inmiddels een omgeving staan waarin ik soms binnen een aantal uur, maar vaker binnen één of enkele dagen, van een idee naar een daadwerkelijk online werkende applicatie kan gaan. Technisch zou het waarschijnlijk nog sneller kunnen. Maar dat is voor mij niet het belangrijkste doel. Snel iets kunnen bouwen is mooi. Het moet alleen ook gecontroleerd, veilig en onderhoudbaar gerealiseerd worden.
Niet ieder experiment hoeft succesvol te zijn
De omgeving die zo is ontstaan zie ik inmiddels ook een beetje als mijn eigen speeltuin. Als ik een idee heb waarvan ik denk: dit zou interessant kunnen zijn, dan kan ik het gewoon uitwerken. In plaats van lang na te denken of het idee goed genoeg is om er veel tijd of geld in te investeren, kan ik eerst kijken wat er gebeurt als ik het daadwerkelijk bouw. Soms blijkt een idee uiteindelijk minder interessant dan gedacht. Dat is dan ook niet zo erg. Dan kan de applicatie weer offline en heb ik tijdens het maken alsnog nieuwe dingen geleerd. Dat vind ik een groot verschil met hoe ik vroeger naar zo’n idee zou kijken. De afstand tussen een idee en iets wat daadwerkelijk werkt, is enorm veel kleiner geworden.
Trial-and-error hoort erbij
In deze reis is zeker niet alles direct goed gegaan of gaat het nu helemaal vlekkeloos. De developmentstraat die ik nu gebruik is niet vooraf volledig uitgedacht. Die is ontstaan door ermee te werken. Dingen proberen, ergens tegenaan lopen, uitzoeken waarom iets niet werkt. Vervolgens aanpassen en opnieuw proberen. Sommige dingen werken verrassend goed, andere dingen helemaal niet. Juist dat trial-and-errorproces heeft mij veel geleerd. Niet alleen over AI-development zelf, maar ook over applicatiedevelopment, deployment, diepere security en hoe al die onderdelen uiteindelijk met elkaar samenhangen. Hoe verder ik ermee kom, hoe meer ik ook zie dat er nieuwe vraagstukken ontstaan.
Een voorbeeld daarvan is de keuze voor tooling. Voor deployment gebruik ik momenteel bijvoorbeeld Vercel. Als je vervolgens vanuit Europese digitale soevereiniteit naar zo’n developmentstraat kijkt, merk je dat een gelijkwaardig Europees alternatief niet altijd zomaar beschikbaar is. Dat onderwerp verdient wat mij betreft een eigen blog, want daar zit veel meer achter dan alleen de vraag waar een leverancier zijn verwerkingen doet.
Hetzelfde geldt voor de securitykant van AI-development. De verschillende skills, controles, instructies en structuren die ik inmiddels gebruik om development en deployment beter beheersbaar te maken, zijn inmiddels uitgebreid genoeg om daar afzonderlijk verder op in te gaan.
Van nieuwsgierigheid naar een eigen AI-developmentomgeving
Als ik terugkijk naar de afgelopen maanden, vind ik vooral bijzonder hoe snel dit zich heeft ontwikkeld. Het begon met ervaringen met AI bij klanten, gesprekken met mensen die er actief mee bezig waren en uiteindelijk een cursus om zelf eens te kijken hoe dat bouwen nu eigenlijk werkt. Daarna kwam een eerste websiteconcept, een eerste blog en vervolgens het ene idee na het andere.
Inmiddels staat mijn eigen website online en heb ik verschillende applicaties gebouwd die ik zelf daadwerkelijk gebruik. Andere applicaties zijn nog in ontwikkeling en zullen de komende tijd volgen. Een mooie ontwikkeling is dat ik nu een eigen omgeving heb waarin ik een idee kan pakken en dat soms binnen één dag daadwerkelijk online kan krijgen. Niet alles hoeft uiteindelijk een product te worden. Het mag ook gewoon een experiment zijn.
Tegelijkertijd probeer ik ervoor te zorgen dat die snelheid niet ten koste gaat van controle, security en onderhoudbaarheid. Als securityprofessional geef ik vaak juist dat advies bij klanten: het moet gecontroleerd, veilig en onderhoudbaar blijven.
Wat begon als wat experimenteren tussen opdrachten in, is daarmee uitgegroeid tot een zeer leerzame reis in AI-development. Een reis die nog lang niet klaar is, want hoe meer ik ermee werk, hoe meer ideeën er eigenlijk bijkomen. Over een aantal van die ideeën, de applicaties die daaruit zijn ontstaan en de security- en developmentstructuur die ik eromheen heb gebouwd, zal ik in volgende blogs verder schrijven.
Heb je ideeën, feedback, een interessant cybersecurityvraagstuk of wil je gewoon eens bijpraten of kennismaken? Laat het me weten, ik kom graag in contact.