Ik ben een full-stack webontwikkelaar die er van houdt ideeen om te zetten in gebruiksvriendelijke, goed presterende webapplicaties die zich gemakkelijk laten onderhouden. In de afgelopen 20 jaar heb ik geleerd hoe belangrijk het is duidelijke, testbare, consistente, bondige, zelfdocumenterende code te schrijven. Hierbij probeer ik zoveel mogelijk de SOLID principes te volgen. Een combinatie van Django (Python) en React (met MobX) blijkt in de meeste gevallen ideaal. Het stelt me in staat in de kortst mogelijke tijd eindproducten te leveren met een hoge kwaliteit.
Freelance webdeveloper
Configurator - Het omzetten van een onderzoeksproject in een gegevensgestuurde, gebruiksvriendelijke webapplicatie voor een Europees consortium van fabrikanten van verwarmingsapparatuur. Het ging oorspronkelijk om console gebaseerd prototype welke textbestanden importeerde en exporteerde met gegevens. Dit is herbouwd tot een webapplicatie, gerefactored en geoptimaliseerd (20-40x versnelling). Daarnaast is er een fuzzing component toegevoegd waarmee de berekeningen automatisch konden worden geverifieerd en gestresstest. (Django)
KeyAgency - Het ontwikkelen van een asset management systeem voor Key Agency om de uitrolprocessen van content te stroomlijnen voor de productconfigurator van een toonaangevende motorfietsfabrikant. Het ging om een complex process waarbij grote hoeveelheden afbeeldingen werden aangeleverd die geimporteerd en gecontrolleerd moesten worden om uiteindelijk een product configurator mogelijk te maken waarbij bezoekers motorfiets modellen konden uitrusten met accessoires en gelijk konden bekijken hoe deze er dan uitzien. (Flask, React)
MateForm - Webformulier bouw platform MateForm (NodeJS/React) (eigen project)
SmartRollout - Voor SmartRollout heb ik een o.a een webportal en visualisatie componenten gebouwd voor hun FileMaker gebaseerde platform.
Joboti - Het maken van een uitbreidbare dialoogeditor, het integreren van verschillende NLP-modellen en APIs en het herbouwen van een chatbot state machine architectuur voor Joboti (nu onderdeel van Textkernel).
MataCSM - Voor Rick Olson heb ik MataCSM gebouwd. MataCSM is een systeem waarmee organisaties inzicht krijgen in de veiligheid van hun online assets. Servers en webapplicaties kunnen worden toegevoegd waarna deze regelmatig gescand worden op (mogelijke) problemen. Gebruikers worden onmiddellijk op de hoogte gebracht van nieuwe ontwikkelingen. Ook wordt automatisch gekeken of er informatie gelekt wordt vanuit de organisatie (bijv. via publieke Github repositories). Het is ook mogelijk automatisch servers toe te voegen vanuit verschillende cloud providers.
IIQ Quest - Voor Implementation IQ (IIQ) heb ik een webbased questionnaire pakket geïmplementeerd waarmee zij hun IMPLEMENT-onderzoek konden uitvoeren. Hiermee was het mogelijk via de browser een questionnaire in te voeren, uitnodigingen aan te maken (evt. geïmporteerd uit een vcard database), te versturen en de voortgang van de geenqueteerden te volgen. Aan de hand van de resultaten konden mensen uitgenodigd worden deel te nemen aan een blog-platform. Medewerkers van IIQ konden op dit platform middels Markdown gemakkelijk nieuwe content toevoegen en genodigden werd de mogelijkheid geboden commentaar te geven of een discussie te starten.
Smaakwijzer - Voor de ontwerpers van ONTWARD heb ik questionnaire pakket geïmplementeerd waarmee het mogelijk was de smaak van hun (potentiele) klanten te polsen.
In dit geval was de questionnaire editor gebaseerd op een custom Django admin manager. Door slechts de models te definiëren was het hierdoor mogelijk gemakkelijk een gehele questionnaire hierarchie aan te maken op dezelfde pagina i.p.v. allerlei losse objecten aan te moeten maken in aparte views in de standaard Django admin.
Implementation Analyzer - Voor Implementation IQ (IIQ) heb ik een systeem geïmplementeerd die het mogelijk maakt de implementatie van innovaties inzichtelijk te maken. De gebruiker kan allerlei data invoeren over stakeholders en hun wensen en er kan dan automatisch via realtime grafieken aan worden gegeven waar de belangrijkste obstakels aanwezig zijn en hoe deze kunnen worden aangepakt (b.v. door wetenschappelijk bewijs te leveren omtrent de werking). Tevens kunnen er questionnaires gegenereerd en verzonden worden naar stakeholders (die ze direct in hun browser kunnen invullen) en die dan automatisch verwerkt worden als extra gegevens. Tevens is het mogelijk overzichten en rapporten in te zien van een hele suite van innovaties tegelijkertijd.
Ontzameling - In samenwerking met Edward Janssen (ontwerper, Ontward) heb ik voor stichting Ontzameling de eerste versie van hun site ontwikkeld. De website fungeert als catalogus voor een grote kunstverzameling. Via de Django admin met custom widgets is het mogelijk de kunstverzameling te beheren en de stukken al dan niet in de juiste rubrieken op de site te laten verschijnen. De site zelf bevatte geanimeerde widgets met kunststukken zodat er altijd iets nieuws te zien is, aangepast aan de gebruiker in kwestie. De huidige versie van de site is gemaakt door onebite.
Els Streefkerk - Voor muziekdocent Els Streefkerk heb ik haar persoonlijke site geïmplementeerd in Django CMS. Ontwerp door Edward Janssen.
Viola Groenhart - Voor filmmaakster Viola Groenhart heb ik haar persoonlijke site geïmplementeerd. De site kan worden onderhouden via Django CMS inclusief custom plugins om de verschillende widgets op de site aan te passen.' %}
Jan Beutener - Voor kunstschilder Jan Beutener heb ik zijn portfolio-site geïmplementeerd. In de Django admin kan de inhoud van de site worden aangepast.
Jouwstraat.nl - Voor jouwstraat.nl heb ik een development omgeving ingericht en een module gebouwd waarmee contacten konden worden geïmporteerd uit Gmail, Yahoo en Hotmail.
Second Company - Voor Second Company heb ik een demo website ontwikkeld welke samen moest werken met een gecentraliseerd authentificatie en data systeem op basis van REST services.
de man en de vos - Voor het filmmakerscollectief "de man en de vos" heb ik de eerste versie van hun website geïmplementeerd. Opmerkelijk zijn hier vooral de overgangen, die hetzelfde gevoel moeten opwekken zoals die in een film (fadeout, crossfade etc.), gemaakt met JQuery. De inhoud kan worden aangepast in de Django admin met custom widgets.
Catastrophist.org - Voor geoloog Han Kloosterman heb ik een site gebouwd als archief van zijn onderzoek.
Medewerker van de service-desk van internetapplicatieprovider BlueDome.
Onderhouds werkzaamheden aan een sql database omgeving en helpdesk assistentie bij de ICT support van Coty Nederland.
Het implementeren van framework gebaseerde websites bij Synetic. Het ging voornamelijk om webshops op basis van Drupal (PHP).
Medewerker van Filmhuis Griffioen.
Het functioneel testen van verschillende websites bij Airtrade Holland. Tevens uitgebreid onderzoek gedaan naar het omschakelen naar geautomatiseerd testen. Ik heb me daar vooral gericht op het testen en scripts ontwikkelen in Selenium en QEngine.
Verantwoordelijk voor de migratie van een verouderde database naar een nieuwe “in-house” ontwikkelde applicatie bij TBMA Europe.
Systeem tester bij TNS-NIPO. Het ging om het testen van de functionaliteit in een software suite voor tele-enqueteurs. Voor een deel gebeurde dit geautomatiseerd d.m.v. QARun.
De eerste twee jaar Informatiekunde, vervolgens een paar maanden Informatica en vanaf 2004 Kunstmatige Intelligentie aan de Vrije Universiteit Amsterdam.
Atheneum op College Hageveld in Heemstede. Geslaagd in 2002.
Django (Python) - Hier bouw ik al 15 jaar webapplicaties mee. Alhoewel de rol van Django de afgelopen jaren minder groot is geworden door het vaker inzetten van SPAs (Single Page Applications) blijkt het nog altijd een solide basis voor de meeste (web) projecten.
ReactJS / MobX - Van JQuery ben ik overgestapt naar AngularJS om vervolgens de juiste balans van controle en compactheid te vinden in React. Ik heb React nu in een aantal grote projecten gebruikt icm MobX en dit blijkt zeer efficiente, krachtige en overzichtelijke code op te leveren.
Parcel / webpack / Babel - Om moderne versies van Javascript te kunnen gebruiken in de frontend en de te downloaden code voor de gebruiker zo klein mogelijk te maken kies ik meestal voor Parcel of Babel en webpack. Ik bouw zelden React gebaseerde applicaties zonder deze tools.
PostgreSQL - Django is gek op Postgres (meer dan MySQL). Ondanks de opkomst van NoSQL achtige oplossingen blijkt PostgreSQL vaak de beste oplossing, ook voor grotere datasets.
HTML5 / CSS3 / Javascript (ES5, ES6) / JSX / TypeScript / TSX / SVG - De afgelopen 15 jaar heb ik de ontwikkeling van nieuwe webstandaarden gevolgd en dankbaar gebruik gemaakt van alle nieuwe mogelijkheden. Het afgelopen jaar heb ik bijv. een React applicatie gebouwd die door een combinatie van ES6, JSX en SVG interactief de planning van grote management projecten visueel kon maken.
Git / Apache / Ubuntu / Docker / virtualenv - Gezien ik de meeste projecten zelfstandig opbouw betekent dit ook dat ik doorgaans het inrichten van de infrastructuur voor mijn rekening neem. Hier hoort dus ook het uitwerken van een deployment strategie en het inrichten van de verschillende machines bij.
Flask (Python) - Voor enkele prototypes heb ik Flask gebruikt ipv Django gezien Flask projecten veel eenvoudiger zijn om op te zetten en deployen (maar vaak wel wat te wensen overlaat qua default security).
FastAPI (Python) - Gebruikt voor een eigen project (metname om het in de vingers te krijgen) en het werkte fantastisch. Vooral een testgestuurde aanpak sloot zeer goed aan bij de functionaliteit die geboden wordt. Ik ga het graag vaker gebruiken in de toekomst.
JQuery - Jaren geleden zeer intensief gebruikt maar tegenwoordig slechts sporadisch voor kleine stukjes functionaliteit waar React overkill voor is of het onderhoud van legacy projecten.
Bootstrap - Zet ik in op de meeste projecten in de begin fase zodat ik geen tijd hoef te verspillen aan CSS om applicaties er snel goed uit te laten zien.
RabbitMQ - Voor complexere projecten gebruik ik RabbitMQ om communicatie tussen langdraaiende achtergrond processen mogelijk te maken.
Django REST framework (DRF) (Python) - In het verleden heb ik enkele projecten gebruik laten maken van DRF maar daar zou ik nu FastAPI voor gebruiken.
Django CMS (Django/Python) - Voor een aantal klanten heb ik in het verleden een website met CMS gerealiseerd.
Elasticsearch - Full-text search functionaliteit voor MataCSM
Celery (Python) - Afgelopen jaar gebruikt voor het in de achtergrond uitvoeren van taken.
C / C++ / x86,x64 assembly - Ik heb in mijn jongere jaren veel geprogrammeerd in C en C++. O.a. een 3d engine en verschillende security tools. Daarna alleen voor zeer tijds- en/of geheugenkritieke stukken in eigen Python projecten. Tegenwoordig is dat eigenlijk niet meer nodig vanwege technologieen zoals Cython.
TensorFlow / PyTorch / Theano / scikit-learn / OpenCV / Numpy / Scipy (Python) - {% trans 'Voor verschillende eigen projecten heb ik veel gebruik gemaakt van deze platformen. Tegenwoordig metname TensorFlow of PyTorch. Niet alleen het gebruik van bestaande modellen maar ook het opzetten van een eigen architectuur op basis van een dataset (al dan niet zelf gecreeerd).
Java - Uitgebreide driedelige cursus op de VU volbracht (Inl. programmeren 1 en 2, Datastructuren).
In 2010 ben ik een eigen webdevelopment bedrijf begonnen met als doel mensen hun ideeen te helpen realiseren op het web. Als ik niet voor klanten bezig ben dan ben ik doorgaans druk met mijn eigen creatieve projecten. Op dit moment ben ik veel bezig met film, fotografie en visual effects met een nadruk op het maken van videoclips (zowel voor mijn eigen muziek als dat van anderen).