Mijn professionele ervaring ligt voornamelijk in Internet/web development en daarvan afgeleide applicaties met security als belangrijk aandachtspunt.
Sinds juli 2001 ben ik werkzaam als freelancer en ik werk met PHP sinds 1996, en Laravel sinds 2017.
In die tijd heb ik veel verschillende bedrijven van binnen gezien en veel verschillende manieren om applicaties en infrastructuur te bouwen, maar ook hoe je een bedrijf runt. Tijdens mijn tijd als ontwikkelaar heb ik veel kennis, ervaring en vertrouwen opgedaan om echte problemen op te lossen.
Ik geloof dat de belangrijkste vaardigheid van een ontwikkelaar vroeger het vermogen was om de juiste informatie te vinden over hoe een probleem op te lossen en die vervolgens te beoordelen op bruikbaarheid en correctheid, hoewel dat behoorlijk is veranderd met de introductie van AI-agenten voor het programmeren zoals Claude Code.
Nadat ik met behulp van AI coding agents aan de slag ben gegaan, heb ik zelf ondervonden dat softwareontwikkeling niet meer is wat het vroeger was. Hoewel ik voornamelijk als backend-ontwikkelaar heb gewerkt, kan ik dankzij deze coding agents nu gemakkelijk met elk frontend-framework of elke programmeertaal werken. Ook de time-to-market is enorm verbeterd. Een interessant idee dat ik daarbij tegenkwam, is dat de vraag niet langer is hoe je iets bouwt, maar wat je bouwt.
Mijn doelstellingen bij het ontwikkelen van code kunnen verschillen per klant maar als het aan mij ligt kies ik ervoor om kwalitatief hoogwaardige en veilige code te leveren
Momenteel ben ik op zoek naar freelance werk op afstand, bij voorkeur met Laravel, of in een beveiligingsgerelateerde functie zoals Technical Security Engineer, of om deel uit te maken van een project in een niet-programmeerrol, zoals Pre/Post Sales Engineer, Project Manager, Product Owner, Scrum Master, CTO of Co-Founder.
Vaardigheden
Programmeertalen
BASIC
bourne shell
C
C++
Dart
Go
JavaScript
Modula-2
Pascal
PHP
Python
SQL
Assembly
ASP
Java
Perl
Protocollen
IP
UDP
TCP
FTP
TFTP
HTTP
SOAP
SMTP
POP3
telnet
SSH
SSL
File formaten
Atom
CSS
DTD
HTML
RSS
SMIL
WSDL
WML
XHTML
XML
XSL
Databases
Aurora DB Cluster
Elasticsearch
LDAP
MariaDB
msql
MS SQL (FreeTDS)
MySQL
Oracle (MFC ODBC, OO4O)
Percona
PostgreSQL
SQLite
Sybase (Rogue Wave DBTools++)
Bedrijfssystemen
Unix (*BSD, Irix, Linux, Mac OS X, Minix, Solaris)
Voor een café in de buurt heb ik een nieuwe website, inclusief menukaart, evenementen, DJs en een bijbehorend CMS, gemaakt met bijna uitsluitend Claude Code in combinatie met OpenAI's Codex, claudex en chief (agentische AI-codeertools). AI-modellen zijn nog niet perfect, dus een deel van het werk (zoals het scrapen van specifieke gegevens en het vinden van geschikte afbeeldingen voor covers en producten) moest ik (gedeeltelijk) handmatig doen. Statische hosting via CloudFlare Pages en een Worker voor het contactformulier.
Onlangs heb ik picoclaw geïnstalleerd met behulp van mijn lokale AI-cluster.
Daarnaast werk ik aan een mobiele app met Flutter die volledig afhankelijk is van AI-agenten voor het programmeren.
(CSS, Dart, Data Scraping, Flutter, HTML, Javascript, React, Tailwind, Vite; Ansible, Claude Code, Codex, Docker, git, Ollama, OpenWebUI, shell scripting, terraform; Bunny.net, CloudFlare, Linux, Mac OS X)
Chief Technology Officer / Co-founder
Smoove ExchangeSingapore / de Filipijnen – (part-time, remote)
Aan het voorfront van de revolutie in de landbouw en leid ik internationale ontwikkelingsteams bij de bouw van een digitale marktplaats die boeren rechtstreeks verbindt met einddistributeurs. Ons platform maakt gebruik van geavanceerde technologie om naadloze transacties, realtime prijsupdates en verbeterde efficiëntie mogelijk te maken. Door tussenpersonen te verminderen, zorgen we ervoor dat boeren een eerlijke winst behouden, wat duurzame marges en prijstransparantie bevordert. Onze sterk lokale aanpak geeft gemeenschappen meer mogelijkheden, waardoor gebruikers kunnen deelnemen aan marktplaatsen in één provincie voor directe en impactvolle voordelen. Ik heb een passie voor eerlijke handel en duurzame landbouw.
Voor een paar kleine klanten en mijn eigen behoeften begon ik als hostingprovider. Momenteel host ik er alleen nog mijn eigen diensten.
(DNS, firewall (csf, iptables, pf, ufw), mail (exim, postfix, sendmail), nginx/apache; ansible, shell scripting, terraform; Linux, Mac OS X)
Laravel Developer
Derks.ITAlicante, Spanje – (op afstand)
Het bouwen van een eenvoudige webapplicatie waarmee facturen naar de Spaanse belastingdienst kunnen worden verzonden, zoals vereist vanaf 2027 (Veri*factu), voor een Nederlandse tandarts die een Nederlandse praktijkmanagementapplicatie gebruikt om patiëntgegevens te beheren en facturen te versturen. Na eerst onderzoek te hebben gedaan en de applicatie te hebben gekoppeld aan de bijbehorende API, heb ik samen met de klant besloten om een bestaande aanbieder van facturatie-API's te kiezen, omdat dat veel goedkoper zou zijn voor de klant. Aanvankelijk ben ik begonnen met ChatGPT en Gemini, later ben ik overgestapt op Claude Code en claudex.
(Laravel, React, Tailwind, Inertia, Vite, HTML, Javascript, CSS; Claude Code, Docker, Gemini, git, shell scripting; B2Brouter, CloudFlare, Linux, Mac OS X)
Lead Backend Laravel Developer
Altix CapitalAmsterdam – (op afstand)
Altix is a Fintech startup based in the Netherlands that is making Private Equity accessible to everybody.
Starting from scratch within a few months we had our first onboardings, growing rapidly after.
Among others I was for example responsible for:
Bootstrapping the application, both frontend and backend
Sign up and investment flow
KYC using third-party provider
Digital signing of contracts using third-party provider
DevOps (incl. server architecture, automated deployments, deployment scripts, etc.)
Code quality
Knowledge sharing with later added team of outsourced developers, which involved among others pair programming (XP) sessions and documenting business logic, coding standards, development/deployment process.
Securing access to the data
(PHP, MySQL, Laravel; DigitalOcean, Docker, GitLab, git, Jira, shell scripting; Linux, Mac OS X)
Lead Developer
Derks.ITAlicante, Spanje – (op afstand)
Mij is gevraagd om een complete inventarisatie te maken van een mobiele e-wallet applicatie (Android, iOS swift) inclusief de bijbehorende API en controlepaneel (CakePHP), inclusief connectiviteit met derde partijen, tech stack, hosting, etc.
Daarna kreeg ik de taak om de volledige ontwikkeling van het project te leiden, waarvoor ik een team van ontwikkelaars aan het opzetten ben om de ontdekte problemen op te lossen en de applicatie voor te bereiden voor publieke release.
Om dit te doen heb ik een ontwikkelingsproces geïmplementeerd, waarbij ik de broncode verplaatste naar een broncontrolesysteem (GitLab), het werken met branches introduceerde (GitLab Flow met omgevingsbranches), databasemigraties toevoegde, op dotenv gebaseerde configuratie, waardoor het gebruik van verschillende omgevingen (zoals ontwikkeling, test, productie), het configureren van geautomatiseerde implementaties en het toevoegen van Docker-configuratie om als nieuwe ontwikkelaar snel aan de slag te kunnen.
Verder ben ik ook verantwoordelijk voor het uitrollen, onderhouden en monitoren van de serverinfrastructuur in AWS met behulp van Ansible.
(PHP, MySQL, CakePHP; ansible, Docker, GitLab, git, Trello; AWS, Linux, Mac OS X)
Security Analyst/PHP Developer
Derks.ITAlicante, Spanje – (op afstand)
Voor een groep medische klinieken werd mij gevraagd een inventarisatie te maken van de verouderde, op PHP 5.x gebaseerde interne applicatie voor het beheer van klantgegevens en testresultaten, met name gericht op de beveiliging van het systeem met betrekking tot medische gegevens.
Daarna heb ik de code geüpdatet naar PHP 7.4, de broncode naar versiebeheer (GitLab) verplaatst, de broncode geherstructureerd (waarbij ik ook enkele basis unit tests, SQL- en PHP-gebaseerde databasemigraties, dotenv-gebaseerde configuratie en kleine wijzigingen in het datamodel heb toegevoegd) en de gevonden en andere kleine problemen opgelost (sommige van deze problemen werden opgelost met behulp van encryptie).
Om geautomatiseerde implementatie op basis van pushes naar specifieke branches (GitLab Flow met omgevingsbranches) voor te bereiden, heb ik een Azure DevOps-pipeline geschreven voor testen vóór de implementatie en een Docker-container geconfigureerd om de productieserver te simuleren.
(PHP, MySQL; ansible, Azure DevOps, Docker, git, Trello; Linux, Mac OS X)
PHP Developer
Collective FlowHoogerheide – (op afstand)
Een klein script om de oproepstatus door te geven aan een externe provider.
(PHP, MySQL, Asteriks; Linux, Mac OS X)
Laravel Programmer
Derks.ITAlicante, Spanje –
Voor twee interne projecten die geautomatiseerde verwerking van facturen mogelijk maakt en serverinfrastructuur beheert, gebruikte ik (onder andere):
Invoice2data, een pythonbibliotheek om gegevens uit facturen te halen
Ansible, een open source software-provisioning, configuratiebeheer en applicatie-implementatietool die infrastructuur als code mogelijk maakt
Terraform, een andere open-source infrastructuur als codesoftwaretool
Shell scripts
Het project voor het beheer van de serverinfrastructuur is momenteel gepauzeerd.
(PHP, MySQL, Laravel, Vue.js; ansible, git, invoice2data, terraform; Linux, Mac OS X)
PHP Lead Developer
Derks.ITAlicante, Spanje – (op afstand)
Voor een Nederlandse klant die diensten aanbiedt om bedrijven te helpen bij het beheren en communiceren met hun werknemers, heb ik hun ontwikkelingsproces verbeterd door de broncode te verplaatsen naar een versiebeheersysteem (GitLab), het introduceren om met branches te werken en te mergen (GitLab Flow met omgevingsbranches), het toevoegen van databasemigraties, het configureren van een testomgeving, Docker-container configureren om eenvoudig en snel een volledig werkende ontwikkelomgeving te hebben, het configureren van geautomatiseerde implementaties (GitLab-pipelines) en het opleiden van andere ontwikkelaars en projectmanagers over het gebruik hiervan.
Verder heb ik ook bugs verholpen en nieuwe features geïmplementeerd.
(PHP, MySQL; Docker, GitLab, git; Linux, Mac OS X)
Laravel Developer
RestocksBreda – (op afstand)
Integratie met DHL Express voorbereiden voor verzending in de hele EU
Voorbereiden voor herontwerp API met OpenAPI 3.0
Kleine bugfixes en functionaliteiten
(PHP, MySQL, Laravel; GitHub, Postman, Trello; Linux, Mac OS X)
Laravel programmeur
Derks.ITAlicante, Spanje – (op afstand)
Voor een website, die is gebouwd met Laravel, via welke autoklassiekers aangeboden worden, heb ik veel problemen in de lay-out en functionaliteiten opgelost.
(PHP, MySQL, Laravel; git, Trello; Linux, Mac OS X)
Senior backend ontwikkelaar
IristraceIbi / Alicante, Spanje – (op afstand)
Helpen van Iristrace om hun codebase en rapportage te verbeteren, beveiligingsproblemen te verminderen en hun platform te schalen.
(PHP, Python, Go, MySQL, CodeIgniter, Symfony; GitLab, RabbitMQ; Docker, Linux, Mac OS X)
Senior PHP programmeur
Angry NerdsRotterdam – (op afstand)
Als teamlid gewerkt aan een groot project geschreven in CodeIgniter (100k + LOC), waarbij ik beveiligingsproblemen voornamelijk geautomatiseerd opgelost heb met behulp van reguliere expressies in een Makefile.
(PHP, MySQL, CodeIgniter; Bitbucket, Vagrant; Linux, Mac OS X)
Senior PHP / Appcelerator Titanium ontwikkelaar
Schipper VaasenAmsterdam – (op afstand)
Voor een autoschadebedrijf werd ik gevraagd om enkele kleine bugfixes en ander onderhoud uit te voeren aan hun API en semi-interne website (gemaakt met CakePHP) en app (gemaakt met Appcelerator Titanium).
(PHP, MySQL, CakePHP; Appcelerator Titanium; Linux, Mac OS X)
Senior PHP programmeur
Hoogheemraadschap van RijnlandLeiden (op afstand)
Voor dit hoogheemraadschap heb ik enkele kleine problemen in een webapplicatie opgelost nadat ze PHP hadden geüpgraded.
(PHP, MySQL; Linux, Mac OS X)
Payroll recruiter
KuvenoHelsinki, Finland –
Via mijn Alicante Tech Meetup werd ik benaderd door Kuveno om hen te helpen bij het vinden van ontwikkelaars in de omgeving van Alicante om op afstand aan hun platform te werken. Spoedig daarna vond ik twee Javascripts-ontwikkelaars die mijn werknemers werden en die exclusief voor Kuveno werkten.
Laravel ontwikkelaar
RestocksBarendrecht – (op afstand)
Integratie van verzendaanbieder toegevoegd voor DHL Express, waardoor het naast de vorige integratie van verzendaanbieder (MyParcel) kan bestaan
Migraties en tests toegevoegd
Voorbereiden van migratie van betalingsprovider naar Stripe
Veel kleine functionaliteiten en verbeteringen, onder meer in geautomatiseerde implementaties en vertaalverwerking
(PHP, MySQL, Laravel; Bitbucket, Elasticsearch, Envoyer, Trello; Linux, Mac OS X)
Directeur
We're Agile!Amsterdam / Alicante, Spanje –
Ik zag een kans om voor Nederlandse klanten te werken met een eigen team in Alicante, Spanje. Dus opende ik een kantoor en huurde een aantal programmeurs in. Helaas was het moeilijker dan ik had verwacht en na 2 jaar moest ik het kantoor sluiten.
Laravel / Flutter ontwikkelaar
Derks.IT/MiooAlicante, Spanje – (op afstand)
Samen met Mioo werken we als bootstrapped startup aan een mobiele applicatie die communiceert met een API gebouwd met Laravel. Aanvankelijk was ik alleen verantwoordelijk voor het webgedeelte (API + admin), maar sindsdien ben ik begonnen met het bouwen van de mobiele applicatie vanaf het begin met behulp van flutter.
(PHP, Dart, MySQL, Laravel; flutter, git, Trello; Linux, Mac OS X)
Laravel Alexa Skill ontwikkelaar
Derks.ITAmsterdam / Alicante, Spanje –
Vanwege persoonlijke interesse en het uitproberen van een mogelijk zakelijk idee heb ik een Alexa skill gemaakt waarmee een gebruiker wijn kan bestellen. De producten in de database zijn met scraping van de website van de aanbieder gehaald.
(PHP, Python, MySQL, Laravel; Alexa, Envoy, Scrapy; Linux, Mac OS X)
Een bemiddelingswebsite voor woningverhuur wilde migreren van NodeJS naar Laravel, dus met een klein team hebben we alles vanaf de grond opgebouwd op basis van een aangeleverd nieuw ontwerp. Dit omvatte onder meer het regelmatig ophalen van verhuurinformatie uit verschillende API's, het weergeven van verhuur op de kaart, het laten beheren van de verhuur, het versturen van e-mails via Elastic Email, etc.
(PHP, MySQL, Laravel; Codeship, Elastic Email, Envoy, Redis, Scout; Linux, Mac OS X)
Laravel ontwikkelaar
MaxbattDeurne – (op afstand)
Voor deze klant heb ik een API gebouwd met beheergebied om metingen te ontvangen met intervallen van 5 minuten voor maximaal tienduizenden batterijmonitorapparaten om meldingen voor vereist onderhoud te activeren. Het API-protocol werd door mij zorgvuldig gedocumenteerd zodat de hardwareontwikkelaar het dienovereenkomstig op het Arduino-platform kon implementeren. De serverarchitectuur is opgezet met Aurora DB Cluster voor productie en Percona XtraDB Cluster voor test, bovenop een tinc VPN met HAProxy-proxy voor zowel het web als de databaseservices om eenvoudig onderhoud mogelijk te maken, bovendien met behulp van reverse proxy CloudFlare.
(PHP, MySQL, Laravel, Aurora DB Cluster; Arduino, Cloud Flare, Envoy, HAProxy, Percona XtraDB Cluster, tinc; Linux, Mac OS X)
Een academisch onderzoeker had een applicatie nodig om het huiswerk van middelbare scholieren efficiënter te maken waarmee leerlingen de oefeningen online kunnen doen en statistieken kunnen worden gegenereerd voor verdere analyse.
(PHP, MySQL, Laravel; Envoy; Linux, Mac OS X)
Lead Developer
StackscaleAmsterdam / Alicante, Spanje –
Hier heb ik o.a. aan de volgende projecten gewerkt:
Authenticatie en authorisatie API gebruik makend van de laatste encryptie standaarden
Queue bibliotheek voor het uitvoeren van taken inclusief Python modules, externe scripts en herhalende taken
Verschillende tools en modules voor het beheer van VMware omgevingen
Het aansturen van geavanceerde netwerk apparaten zoals switches en routers (Cisco / Force10 / Arista)
Beheer van network attached storage (NAS) apparaten en datastores (volumes) (NetApp / Nexenta / Oracle / Solaris / ZFS)
Nieuwe functionaliteit toevoegen aan een API geschreven met het Django REST Framework met een bijbehorende ExtJS gebruikersinterface
(PHP, Python, MySQL, Percona, ExtJS, Django; Linux, Mac OS X, Windows)
Lead Developer
CliQ DigitalAmsterdam –
(PHP, MySQL, Symfony2, Gearman, PHPUnit, Selenium; Linux, Mac OS X)
Magento programmeur
Derks.ITAmsterdam –
Momenteel zijn we bezig met het ontwikkelen van een commerciële publieke Magento extensie voor integratie met PHPlist en het uitwerken van een eigen ideeen (o.a. Hackmonitor) welke ook gebouwd wordt als Magento extensies
(PHP, MySQL, Magento, Zend Framework; Linux, Mac OS X)
Magento ontwikkelaar
ElsevierAmsterdam – (op afstand)
Voor het accepteren van de licentieovereenkomst voor een specifiek product, heb ik een Magento extensie gemaakt.
(PHP, MySQL, jQuery, Magento; Linux)
Magento programmeur
Derks.ITAmsterdam – (op afstand)
Voor een klant (media/online bureau) heb ik de laatste in het oog springende problemen van een nog niet uitontwikkelde Magento website opgelost (vnl. bugs in door derde partij ontwikkelde delen, integratie van extensies en een nieuwsbrief API).
(PHP, MySQL, jQuery, Magento; Linux)
Magento ontwikkelaar
Derks.ITAmsterdam – (op afstand)
Voor een Franse klant (mode retailer) heb ik het grafische/HTML ontwerp voor hun Magento webwinkel vertaald in een werkende, dynamische HTML/JS/CSS oplossing welke ik daarna in samenwerking met een offshore team heb vertaald naar een Magento template. Bijzonder hieraan was dat er erg veel dynamische elementen op de homepage gebruikt werden.
(PHP, MySQL, jQuery, Magento; Linux)
Magento programmeur
Derks.ITAmsterdam – (op afstand)
Voor een klant (online retail paardensport) heb ik de meeste in het oog springende problemen van een nog niet uitontwikkelde Magento website opgelost (zoals export uit MS SQL, import met automatisch aanmaken van attribuutwaarden, filter checkboxes, bugs in betaalmethode extensie, eenvoudige koppeling met Exact).
(PHP, MySQL, jQuery, Magento; Linux)
Senior PHP ontwikkelaar
Derks.ITAmsterdam – (op afstand)
Voor een klant in de automotive branche heb ik een webapplicatie gemaakt (gedeeltelijk nearshore) waarmee werknemers via een visuele editor een selectie kunnen maken uit een aantal sjabloon afbeeldingen welke in PDF formaat gegoten via email verstuurd werd, plus bijbehorende beheeromgeving.
(PHP, MySQL, jQuery, CodeIgniter; Linux)
Senior PHP programmeur
Tele2Amsterdam –
Voor de Tele2 website heb ik een aantal kleinere projecten gedaan zoals:
iDEAL implementatie voor betalingen
een uptime pagina voor servers gebruikmakend van de Pingdom API
wijzigingen voor een nieuw product op de website
beheer tool voor affiliate HTML snippets op de website
voorbereidend onderzoek voor het gebruik van de Icecat database
(PHP, MySQL, Zend Framework, jQuery, Pingdom API; Linux, Mac OS X, Windows)
Senior PHP ontwikkelaar
Lost BoysAmsterdam –
Het Magento project waar ik aan zou werken werd na enkele dagen ingetrokken waardoor ik daarna mezelf ruim een week lang nuttig heb gemaakt als frontend developer voor monumenten.nl en NS Hispeed.
(PHP, MySQL, Zend Framework, jQuery, HTML5, CSS3; Linux, Mac OS X, Windows)
Senior PHP programmeur
ABN AMROAmsterdam –
Voor een nieuw te lanceren interne website voor interne vacatures, Smartjobs, heb ik op basis van TomatoCMS / Zend Framework een website geïmplementeerd waarbij ik samenwerkte met de product owner, een interaction designer, designburo Luyfel, IT Infrastructure en de hosting provider.
Voor deze klassieke CD en DVD speciaalzaak heb ik een eenvoudige webwinkel voor de verkoop van kaartjes opgezet op basis van Magento met custom bugfixes en aanpassingen.
(PHP, MySQL, Magento; MacOSX, Linux, Windows)
StudyTravel (PHP software developer)
StudyTravelMalaga, Spanje / Amsterdam –
Als PHP software developer heb ik me wederom bezig gehouden met het implementeren van nieuwe functionaliteiten in en onderhoudswerkzaamheden aan de website.
Gedurende een aantal maanden was ik onderdeel van het ontwikkelteam en verantwoordelijk voor een aantal projecten met betrekking tot de website en het beheer gedeelte.
In samenwerking met Holland Online zijn we bezig een aantal ideeën uit te werken, waaronder een community site, shops en eenvoudige pay-per-view sites. Voor de community site heb ik o.a. betalingen d.m.v. iDEAL mogelijk gemaakt en maak ik gebruik van een eigen applicatie framework.
In deze periode heb ik, naast allerlei mini-applicaties en onderhoud aan bestaande applicaties, een applicatie framework gebouwd welke de basis is voor toekomstige applicaties. O.a. het registratie/authenticatie gedeelte van de website heb ik omgebouwd naar dit framework, naast aanpassingen in de functionaliteit.
Voor het product JCreator van Xinox Software heb ik een download registratie formulier, licentie beheer en mailing list gebouwd (de mailing list is gebaseerd op het open source pakket PHPList welke gekoppeld is aan de downloaders).
ISP Demon had performance problemen met een PHP/MySQL applicatie die gebruikt werd voor Customer Care. Na analyse van de problematiek, is de MySQL configuratie aangepast, geheugen uitgebreid en voorzieningen getroffen voor het archiveren van verouderde gegevens.
(PHP, PEAR, MySQL; Linux, FreeBSD)
Derks.IT (PHP Developer)
Derks.ITAmsterdam –
Voor een online advertentie bedrijf heb ik een library gemaakt welke dubbele records uit de klanten database verwijdert (incl. een overeenkomstige applicatie en een uitbreiding op het toevoegen van nieuwe klanten welke m.b.v. deze library controleert of de toe te voegen klant niet reeds bestaat). Ook heb ik reeds aangepaste, maar nog niet geheel werkende order schermen aangepast en gerepareerd.
Verspreid over enkele maanden heb ik de website van Pacorini Vlissingen in elkaar gezet, incl. een eenvoudig CMS voor het onderhoud van de nieuws artikelen (persberichten).
(PHP, PEAR, MySQL, Javascript; Linux, Windows)
Telfort (PHP Developer)
TelfortAmsterdam –
Gedurende negen maanden ben ik actief en pro-actief betrokken geweest bij het ontwikkelen van diverse web-applicaties en API's. Pro-actief in het adviseren van te gebruiken technieken en methoden (o.a. PEAR DB_DataObject en toepassen van technieken als automatische documentatie generatie m.b.v. phpDoc/phpDocumentor, geautomatiseerd testen m.b.v. PEAR PHPUnit, etc). Ook bijgedragen aan security-awareness (ter illustratie: bij security audit (crystal box) op mijn code kwamen geen kritieke security problemen naar voren, enkele quotes: "defensieve manier van programmeren", "de enig juiste manier om hiermee [invoervalidatie] om te gaan", "zeer goede, vrijwel perfecte invoervalidatie").
Grotere projecten waar ik verantwoordelijk voor was:
authenticatie en registratie op de website, incl. opzetten van gebruikersdatabase en uitgebreide en deels generieke beheer omgeving voor customer care (PHP, PEAR, MySQL, LDAP, HTML, JavaScript, shell script, perl)
afhandelen van binnenkomende SMS en uitsturen van EMS logo
MMS web-applicatie voor het bekijken van MMS berichten verstuurd aan mobiele telefoons zonder MMS ondersteuning (PHP, PEAR, mmsdiary, JavaScript, HTML, XSLT, SMIL)
generieke API voor het verwerken van binnenkomende en uitsturen van uitgaande berichten (SMS, MMS, etc) (PHP, PEAR, MySQL, dia: UML class diagrams)
Rubicon (PHP Developer)
RubiconVianen –
Voor een klant van Rubicon heb ik een bestaande web-applicatie gedeeltelijk omgebouwd en uitgebreid met nieuwe functionaliteit betreffende o.a. authenticatie en versturen van files.
Voor ProRail heb ik gewerkt aan een project t.b.v. het ontsluiten van informatie betreffende stations. Mijn taak was het importeren van data (fotografie, spreadsheets en andere documenten) in MySQL database welke als SQLite database gebruikt wordt door een applicatie die vanaf CD draait. Om dit mogelijk te maken heb ik een SQLite driver voor metabase geschreven en een generieke database API voor Apidea framework. Ook heb ik patch gesubmit voor de PHP4 SQLite module welke helaas niet verwerkt is, waarschijnlijk omdat SQLite ondersteuning in PHP5 standaard is.
Voor een klant heb ik alle functionaliteit voor een datingsite gebouwd, incl. leden registratie, authenticatie, chat, billing, handmatige matching, 128+ leden eigenschappen.
Voor het CMS van de website heb ik een aantal eenvoudige wijzigen doorgevoerd
(PHP, Oracle, HTML, JavaScript, WebDAV; Linux, Windows 98)
Razorfish Europe (PHP Developer)
Razorfish EuropeAmsterdam –
Voor het framework van een website voor auto taxaties in verschillende landen en verschillende talen per land, heb ik user authenticatie (incl. registratie etc.) geïmplementeerd. Verder heb ik bijdragen geleverd aan allerlei sub-projectjes.
(PHP, MySQL, HTML, JavaScript, Visual InterDev; Windows 2000)
Rits Automatisering (PHP Developer)
Rits AutomatiseringDeventer –
Voor de Rits Account website heb ik user authenticatie (incl. registratie etc.) en user administratie geïmplementeerd. (PHP, MySQL, HTML, JavaScript; Linux, Windows 98/2000).
Tevens heb ik een module (DLL) gemaakt die het mogelijk maakt encryptie toe te passen in één van de applicaties van Rits Account. (Visual C++, OpenSSL, PHP, MySQL, SOAP; Windows 98/2000)
Apidea (PHP Developer)
ApideaAmsterdam –
Naast het CMS om woonboten in te voeren, wijzigen etc. voor de website www.woonboot.nl, heb ik ook een GUI applicatie geschreven waarmee bijv. op een laptop bij de klant foto's en gegevens van een woonboot ingevoerd kunnen worden welke later naar het CMS ge-upload kunnen worden. Onderdeel van de GUI applicatie was een versleuteling van de PHP bestanden om o.a. manipulatie te voorkomen.
(PHP, PHP-GTK, PEAR, ImageMagick; Linux, Windows)
EPOCera (C++ Developer)
EPOCeraAmsterdam
Voor EPOCera heb ik een applicatie ontwikkeld in Visual C++ die gebruik maakt van DOM om data(-structuren) op te slaan en tegelijkertijd XML als de basis voor een scripting taal.
(Visual C++, MFC, XML; Windows 98/2000)
Apidea (Consultant)
ApideaAmsterdam
Als consultant heb ik geadviseerd over de interne automatisering van een klant van Apidea, waarvoor ik ook een sessie met die klant heb bijgewoond aan de hand waarvan een kort rapport is geschreven.
Connected Software (Senior Programmer)
Connected SoftwareRotterdam –
Voor KnowWise, een informatiesysteem voor consumenten, heb ik encryptie en HTTP proxy authenticatie geïmplementeerd.
(Visual Basic, ASP, MS SQL; Windows 98/2000)
Stachanov (Freelancer / Lead Programmer)
StachanovAmsterdam –
Als freelancer heb ik een project getrokken met als doel een documenten beheer systeem via intranet/internet (web-interface) te ontwikkelen (PHP, JavaScript, ODBC, MySQL, Microsoft SQL Server; Windows 98/NT, Linux)
en ook 2 kleine deelprojecten voor een ander project (C, PHP; Windows 98/NT, Linux).
Senior Programmer Analyst
WellanceDiemen –
In de functie van Programmer Analyst (Senior sinds januari 2001) ben ik verantwoordelijk geweest voor het frontend gedeelte voor de documenten uitwisseling van regedoc, een systeem voor het beveiligd en geregistreerd documenten uitwisselen over Internet of intranet. Dit hield in het ontwerpen en implementeren van een ISAPI voor Microsoft IIS met performance counters, registry-instellingen, het gebruik van eventlog, encryptie van communicatie en timestampen van documenten, plus een configuratie utility. Hiervoor heb ik o.a. MFC, PGP, Sybase en Oracle backend databases gebruikt.
Verder heb ik me ook bezig gehouden met business security als lid van het Security Project Team en heb ik bijgedragen aan het behalen van de BS7799 certificering.
(Rogue Wave DBTools++, Oracle OO4O, ODBC; Visual C++; Windows NT/2000)
Junior Programmeur / Assistent Systeembeheer
SitewaysAmsterdam –
In de functie van Junior Programmeur (sinds maart 1997) heb ik gewerkt aan:
bewakingssysteem voor machines, websites, database, betalingsssystemen en diversen (C, shell scripts; IRIX)
veiliger versie van de FTP daemon (alleen gebruikers in een bepaald bestand kunnen buiten hun home-directory) (C; IRIX)
porten van verscheidene Perl scripts naar PHP (PHP; Windows NT, IRIX)
systeem voor tegengaan van misbruik van website account/authorisatie door meerdere personen (C, NSAPI, msql, shell scripts; IRIX)
diverse programma's en scripts t.b.v. websites, authorisatie- en betalingsdatabases (C, PHP, msql, shell scripts; IRIX, Linux)
shops voor websites (assortiment, shopping basket en interface naar betaalmodule) (PHP, msql; IRIX)
systeem voor webserver statistics rapportage (email en HTML) (C, PHP; IRIX)
oplossing om over te schakelen op ISDN als de Internet verbinding geen voldoende throughput meer levert (op lokatie in de V.S. heb ik deze oplossing geinstalleerd en verbeterd) (shell script; IRIX)
porten van (Unix) C JPEG6a library naar VC++ t.b.v. ActiveX control (Visual C++ 5.0; Windows 95)
porten van C++ FraunHofer MPEG1-III audio decoder naar Java (C++, JDK 1.1; Windows 95, IRIX)
Adobe Premiere Plugin voor JPEG en AVL (LiveStream) (Visual C++ 5.0; Windows NT)
aanzet ontwerp voor een generieke shop voor Internet (Word 97; Windows NT)
In de functie van Assistent Systeembeheer ben ik verantwoordelijk geweest voor de normale taken van systeembeheer als backup, beveiliging, mail, DNS, hard- en software installeren en configureren, en kleine programmeerwerkzaamheden.
(Systemen: SGI, PC, Livingston, Cisco)
Studentassistent
Vrije UniversiteitAmsterdam –
In de functie van Studentassistent voor de vakken Software Engineering en Computernetwerken bij de faculteit Wiskunde & Informatica begeleidde ik studenten met de praktica Software Engineering en Computernetwerken. Bij het eerste practicum begeleidde ik vijf groepen van ongeveer vijf personen. Men moest in team-verband een 'groot' programma schrijven, in dit geval ging het om een soort routeplanner. De verschillende stadia waren: definitie van eisen, ontwerp, implementatie (in C++), evaluatie. Tevens had ik tot taak het beoordelen van het ingeleverde werk. Bij het tweede practicum begeleidde ik groepen van één of twee personen met het ontwerpen en implementeren (in C) van (een vereenvoudiging van) de IP en UDP netwerk protocollen, en een tftp daemon en client. Hier was ik slechts verantwoordelijk voor de begeleiding, er werd getest en beoordeeld door anderen.
Opleiding
drs., Vrije Universiteit Amsterdam
–
Studierichting Informatica met als hoofdrichting computersystemen, afgerond met bul.
Tijdens mijn studie heb ik onder meer practica gevolgd voor de vakken Bedrijfssystemen, Compilerbouw, Computernetwerken, Programmeertalen (minder bekende talen: ABC, Ada, Miranda, Prolog en Smalltalk) en Software Engineering.
Certificeringen
Introductie Modellen Kunstmatige Intelligentie, Colegio Oficial de Ingeniería Informática (COIICV),
Scrum Master Accredited Certification, Scrum Institute,
Magento Developer's Paradise 2012, Magento,
Startup Weekend Amsterdam 2012, Startup Weekend,
Magento Developer's Paradise 2011, Magento,
Magento Developer's Paradise 2010, Magento,
Kennismaken met informatiebeveiliging, Mediaplaza,
Certified Information Systems Security Professional (CISSP) [verlenging], (ISC)²,
MySQL Core Certification (MCC), MySQL,
Zend Certified Engineer (ZCE) [PHP], Zend,
Certified Information Systems Security Professional (CISSP) [verlenging], (ISC)²,
International PHP Conference 2004 Spring Edition, PHP Magazine,
Sun Certified Programmer for Java 2 Platform (SCJP), Sun Microsystems,
Certified Information Systems Security Professional (CISSP), (ISC)²,
Developer Days 2000, Microsoft,
Mobile Commerce Security Seminar, Baltimore Technologies,
Mastering MFC Development Using Microsoft Visual C++ 6.0, InfoSupport,
Activiteiten
Open source projecten — – .
Mijn eigen Laravel open source projecten:
Laravel API Logger - een handige manier om de inhoud van binnenkomend en uitgaand verkeer van een API geschreven in Laravel te loggen (niet langer onderhouden))
laravel-scripts - een Makefile en een Envoy deploy script om standaard taken gerelateerd aan Laravel uit te voeren, zoals deployeren, op een eenvoudige manier (momenteel niet gedocumenteerd) (niet langer onderhouden))
Laravel HTML - een "fork" van de Laravel HTML library van Spatie voor het gebruik in PHP 5.6 (niet langer onderhouden))
Mijn andere eigen open source projecten:
Scan een server regelmatig op ongewenste processen: Trojan scan
Magento-plugin om automatisch afbeeldingen toe te voegen aan uitgaande e-mails: EmailImages (niet langer onderhouden)) (zie ook mijn website over Magento: Magentron (niet langer onderhouden)))
Alicante Tech Meetup, Alicante — – .
Toen ik naar Alicante verhuisde, startte ik de Alicante Python Meetup. Omdat destijds noch het Meetup-platform noch Python voldoende bekend waren in Alicante, heb ik het onderwerp van de meetup uitgebreid naar technologie in het algemeen.
Alicante Startups Meetup, Alicante — – .
Ongeveer een half jaar lang hebben we samen met een paar anderen de Alicante Startups meetup-groep gerund om de oorspronkelijke oprichter van de groep te ondersteunen.
VvE, Amsterdam — – .
Gedurende meer dan vier jaar was ik de penningmeester van mijn VvE.
NGI — 2001 – 2009.
Nederlands Genootschap voor Informatica (NGI), afdeling Beveiliging.
S.V. Cyclades, Amsterdam — – .
Actief lid van studentenvereniging Cyclades, waar ik commissielid was van o.a. de bar, sport en introductie commissies en lid van het dispuut Elysion, huidige status: POR (Post Ontvangend Reünist) (Cyclades).