 |
|
|
My professional experience is mostly in Internet/web development and applications derived from it with special attention towards security.
Since July 2001 I've been working as a freelancer. Currently I am not available indefinitely.
|
Skills / knowledge
Programming languages: |
BASIC, bourne shell, C, C++, JavaScript, Modula-2, Pascal, PHP, Python, SQL, (Assembly, ASP, Java, Perl) |
Protocols: |
IP, UDP, TCP, FTP, TFTP, HTTP, SOAP, SMTP, POP3, telnet, SSH, SSL |
File formats: |
Atom, CSS, DTD, HTML, RSS, SMIL, WSDL, WML, XHTML, XML, XSL |
Databases: |
LDAP, MariaDB, msql, MS SQL (FreeTDS), MySQL, Oracle (MFC ODBC, OO4O), Percona, PostgreSQL, Sybase (Rogue Wave DBTools++) |
Operating systems: |
Unix (*BSD, Irix, Linux, Mac OS X, Minix, Solaris), MS-DOS, Windows 2/3.11/9x/ME/NT/2000/XP/etc, (ComOS, IOS) |
Hardware: |
Cisco, Force10, Livingston Portmaster, NetApp, PC, SGI (Indigo, Indy, O2, Challenge S/XL, Origin 200); Sun 3/4/Netra |
Other: |
Agile, BS7799, CGI, composer, CVS, DOM, DNS, ExtJS, Gearman, Git, GitLab, GNU, HAProxy, iDEAL, ISAPI, ISO9001, jQuery, Laravel, Lean, LinkedIn API, Magento, MFC, NSAPI, OO, OpenSSL, Perforce, PGP, PHP-GTK, PHPUnit, Pingdom API, PKI, Prototype, redis, Scrum, Selenium, Subversion (SVN), Symfony2/3, VB, VC++, VID, VMware, WAP, Win32, XSLT, Zend Framework, ZFS |
|
Experience
Iristrace Ibi / Alicante, Spain |
Dec 2018 - now
Senior Backend Developer
Helping Iristrace to improve their codebase and to scale their platform.
(PHP, MySQL, Symfony, GitLab, Docker; Linux, Mac OS X).
| PHPfreelancer.nl Amsterdam Alicante, Spain |
Aug 2017 - now
For different customers doing PHP projects, where my choice of framework currently is Laravel.
| Stackscale Amsterdam Alicante, Spain |
Jul 2012 - Jul 2017
Lead Developer
I worked on the following projects:
- Authentication and authorisation API using the latest encryption standards
- Queue library for executing tasks including Python modules, external scripts and repeating tasks
- Different tools and modules for management of VMware environments
- Drivers to control advanced netwerk equipment like switches and routers (Cisco / Force10 / Arista)
- Management of network attached storage (NAS) equipment and datastores (volumes) (NetApp / Nexenta / Oracle / Solaris / ZFS)
- Add new functionality to an API written in Django REST Framework with an accompanying user interface built with ExtJS
(PHP, Python, MySQL, Percona, ExtJS, Django; Linux, Mac OS X, Windows).
| CliQ Digital Amsterdam |
Jul 2012 - Jun 2013
Lead Developer
(PHP, MySQL, Symfony2, Gearman, PHPUnit, Selenium; Linux, Mac OS X).
| Derks.IT Amsterdam |
Apr 2011 - Jul 2012
Currently we are working on the development of a commercial and publicly available Magento extension that provides integration
with PHPlist and another idea (Hackmonitor) which will be completely developed as
Magento extensions (PHP, MySQL, Magento, Zend Framework; Linux, Mac OS X).
| Elsevier Amsterdam |
May 2012 - Aug 2012
For accepting a license agreement for a specific product I have created a Magento extension.
(PHP, MySQL, jQuery, Magento; Linux).
| Derks.IT Amsterdam |
Mar 2012 - Apr 2012
For a client (media/digital agency) I resolved most of the most eye-catching issues in a not yet fully
finished Magento website (mainly bugs in parts developed by a third party, integration of extensions and a
newsletter API).
(PHP, MySQL, jQuery, Magento; Linux).
| Derks.IT Amsterdam |
Jan 2011 - Mar 2012
For a French client (fashion retail) I translated the graphical/HTML design into a working, dynamic
HTML/JS/CSS version which I then in cooperation with an offshored team translated into a Magento
template. Different to this website was the extensive use of dynamic elements on the homepage.
(PHP, MySQL, jQuery, Magento; Linux).
| Derks.IT Amsterdam |
Dec 2011 - Mar 2012
For a client in the online retail (equestrian sports) I resolved most of the most eye-catching issues in a not yet fully
developed Magento website (such as export from MS SQL, import with automatic creation of attribute values, layered navigation
using checkboxes, bugs in payment method extension, simple integration with Exact).
(PHP, MySQL, jQuery, Magento; Linux).
| Derks.IT Amsterdam |
Dec 2011 - Feb 2012
For a client in the automotive industry I have made a web application (partially nearshore) with which employees could
make a selection from a number of template images using a visual editor which will be used to create a PDF which is
then sent via email.
(PHP, MySQL, jQuery, CodeIgniter; Linux).
| Tele2 Amsterdam |
Sep 2011 - Oct 2011
For the Tele2 website I did a couple of smaller projects such as:
- iDEAL implementation for payments (iDEAL = the Dutch standard for online payments by the major banks)
- a uptime page for servers using the Pingdom API
- modifications for enabling a new product line on the website
- management tool for affiliate HTML snippets on the website
- research preparing use of the Icecat database
(PHP, MySQL, Zend Framework, jQuery, Pingdom API; Linux, Mac OS X, Windows).
| Lost Boys Amsterdam |
Jul 2011 - Jul 2011
The Magento project that I would work on was cancelled after a couple of days after which I made myself useful for more than a week as frontend developer for monumenten.nl and NS Hispeed (PHP, MySQL, Zend Framework, jQuery, HTML5, CSS3; Linux, Mac OS X, Windows).
| ABN AMRO Amsterdam |
Oct 2010 - Aug 2011
The new internal website for internal vacancies, Smartjobs, was developed using TomatoCMS / Zend Framework cooperating with the product owner,
an interaction designer, design agency Luyfel, IT Infrastructure and the hosting provider (PHP, MySQL, TomatoCMS, Zend Framework, LinkedIn API, Selenium; Linux, Windows; Scrum).
| Bruno Klassiek Haarlem |
Jul 2010 - Aug 2010
For this specialised classical CD and DVD store setup a webshop for selling tickets to classical concerts based on Magento with custom bugfixes and customisations (PHP, MySQL, Magento; MacOSX, Linux, Windows).
| StudyTravel Malaga / Amsterdam |
Apr 2010 - Dec 2010
As a PHP software developer I again worked on implementing new functionalities into the website and related maintaince work (PHP, Smarty, MySQL, JavaScript; Linux, Windows).
| Ibarra y Sanjuan Amsterdam |
Mar 2010 - Jun 2010
For this customer I setup a B2B webshop based on Magento with custom bugfixes and customisations (PHP, MySQL, Magento; MacOSX, Linux, Windows).
| Miky.nl Den Haag |
Jan 2010 - Feb 2010
For this website I solved some bugs and implemented new functionalities (PHP, Zend Framework, MySQL; MacOSX, Linux, Windows).
| StudyTravel Malaga / Amsterdam |
Mar 2009 - May 2009
As a PHP software developer I worked on implementing new functionalities into the website and related maintaince work (PHP, Smarty, MySQL, JavaScript; Linux, Windows).
| TomTom Amsterdam |
Mar 2008 - Feb 2009
As a PHP software developer I contribue to the development team responsible for the TomTom website (PHP, Smarty, MSSQL, JavaScript; Linux, Windows; Scrum).
Some of the projects I have done:
- Apache module for authentication based on mod_auth_tkt (C, OpenSSL, FreeTDS; Linux)
- Improving the application framework (PHP, Smarty, MSSQL, JavaScript; Linux, Windows)
| BSM Amsterdam |
Sep 2007
Static code analysis of a HTML subscription form written in PHP for a major bank (PHP, MySQL; Linux, MacOSX, Windows).
| Telfort Amsterdam |
Jan 2007 - Jul 2007
Again I was part of the development team and responsible for multiple projects.
(PHP, PEAR, MySQL, JavaScript, HTML; Linux, Windows)
| Robert Vlug Haarlem |
Jul 2006
I put in my observations for the chapter about security in the book "Een eigen webwinkel voor Dummies (My own webstore for Dummies)"
| marktplaats.nl Amsterdam |
Aug 2006 - Dec 2006
For a number of months I was part of the development team and responsible for multiple projects regarding
the website and the maintenance part. (PHP, PEAR, Smarty, MySQL, JavaScript, HTML; Linux, Windows)
| Derks.IT Amsterdam |
Mar 2006 - Sep 2008
In cooperation with Holland Online we are working on some ideas, including a community website, shops and simple pay-per-view
websites. For the community website I also implemented payments using iDEAL and used my own application framework.
(PHP, PEAR, MySQL, JavaScript, SourceGuardian; Linux, Windows)
| ProvenModels Amsterdam |
Jan 2006 - Feb 2006
I helped this client by fixing a list of bugs in already existing code. (PHP, MySQL, JavaScript; Linux, Windows)
| Ber-Art Breda |
Feb 2005 - Nov 2007
Support for Trojan Scan and security support.
| Telfort Amsterdam |
Nov 2004 - Dec 2005
During this period I built an application framework to be used as the basis for new applications.
I re-implemented the registration/authentication parts of the website using this framework, which also
included some functional changes.
(PHP, PEAR, MySQL, JavaScript, HTML; Linux, Windows)
| Xinox Delft |
Dec 2004
To allow registered downloads of their JCreator product I built a download registration form, license administration and
mailing list (the mailing list is based on the open source application PHPList which has been linked to the downloader data).
(PHP, PEAR, MySQL, JavaScript, HTML; Linux, Windows)
| Demon Amsterdam |
Sep 2004
ISP Demon had performance problems with a PHP/MySQL application used for Customer Care.
After analysis of the problems, the MySQL configuration was adjusted, memory expanded and provisons
were taken to archive out of date data. (PHP, PEAR, MySQL; Linux, FreeBSD)
| Derks.IT Amsterdam |
May 2004 - Aug 2004
For an online ad company I created a library which removes double records from the customer database (incl. a similar application and
an extension to the process of adding new customers that using this library whether the to be added customer does not already exist).
Also I fixed already changed, but not yet working order forms. (PHP, PEAR, PHPlib, Smarty, MySQL, JavaScript, HTML; Linux)
| Neverseen Almere |
Dec 2003 - Feb 2004
Over a period of several months I created the website of Pacorini Vlissingen,
including a simple CMS for the maintenance of the news articles.
(PHP, PEAR, MySQL, Javascript; Linux, Windows)
|
Telfort Amsterdam |
Jun 2003 - Apr 2004
During a nine-month period I have been involved actively and pro-actively in the development of
various web-applications and APIs. Pro-active in advising on the to be used technology and methods (among others PEAR DB_DataObject and applying methods such as automatically generated documentation using phpDoc/phpDocumentor, automated testing using PEAR PHPUnit, etc). I also contributed to the security-awareness (e.g.: the security audit (crystal box) on my code did not reveal any critical security problems, some quotes from the report: "defensive way of programming", "the only correct way to deal with this [input validation]", "very good, almost perfect input validation").
Larger projects for which I was responsible:- authentication and registration on the website, incl. setting up the user database and extensive and partly generiek administration environment for customer care (PHP, PEAR, MySQL, LDAP, HTML, JavaScript, shell script, perl)
- dispathing of incoming SMS messages and sending out an EMS logo
- MMS web-application that allows customers to view MMS messages sent to mobile phones without MMS support (PHP, PEAR, mmsdiary, JavaScript, HTML, XSLT, SMIL)
- generic API for processing incoming and sending out outgoing messages (SMS, MMS, etc)
(PHP, PEAR, MySQL, dia: UML class diagrams)
|
Rubicon Vianen |
Mar 2003 - Apr 2003
For a customer of Rubicon I partly re-build an existing web-application and added new functionality to it regarding among others authentication and uploading files (PHP, PHPlib, Smarty, MySQL, JavaScript, HTML; Linux, Windows, Solaris)
| Rubicon Vianen |
Mar 2003
For TPG Post I wrote the web functionality for Persoonlijke Postzegels, incl. the manipulation of uploaded photographs (PHP, JavaScript, DHTML library, HTML; Linux, Windows)
|
Apidea Amsterdam |
Dec 2002 - Dec 2003
This project concerned unlocking information of railway stations for ProRail. It was my job to handle importing data (photography, spreadsheets and other documents) into a MySQL database which was to be used as a SQLite database by an application run from CD. To make this possibly I wrote a SQLite driver for metabase and a generic database API for the Apidea framework. I also patched the PHP4 SQLite module to handle NULL values properly. (PHP, PEAR, metabase, MySQL, SQLite, VC++ 6, STL; Linux, Windows)
|
Derks.IT Amsterdam |
Dec 2002 - Apr 2003
I build a complete dating site with all required functionality, incl. member registration, authentication, chat, billing, manual matching, 128+ member qualities (PHP, PEAR, Smarty, MySQL, JavaScript, HTML; Linux, Windows)
| Vodafone UK |
Jul 2002 - Sep 2002
I made some small changes to their CMS (PHP, Oracle, HTML, JavaScript, WebDAV; Linux, Windows 98).
|
Razorfish Europe Amsterdam |
Apr 2002 - May 2002
For the framework of a website for car valuations in different countries and multiple languages per country, I implemented foremost user authentication (incl. registration etc.) (PHP, MySQL, HTML, JavaScript, Visual InterDev; Windows 2000).
|
Rits Automatisering Deventer |
Mar 2002 - Dec 2003
For the Rits Account website I implemented user authentication (incl. registration, etc.) and user administration (PHP, MySQL, HTML, JavaScript; Linux, Windows 98). Also, I am working on a module that will enable encryption in one of the applications of Rits Account (Visual C++, OpenSSL, PHP, MySQL, SOAP; Linux, Windows 98/2000).
|
Apidea Amsterdam |
Feb 2002 - Apr 2003
Besides the website CMS to enter, modify, remove houseboats for the website www.woonboot.nl, I also wrote a
GUI application which could be used e.g. on a laptop to enter new houseboat pictures and data on location at the client and
which could be uploaded to the website CMS later. Part of the GUI application was the encryption of the PHP files to
prevent unwanted maniplutaion among others (PHP, PHP-GTK, PEAR, ImageMagick; Linux, Windows)
|
EPOCera Amsterdam |
Jan 2002
For EPOCera I developed a software package in Visual C++ that uses the DOM to store data(-structures),
and at the same time XML as the basis of a scripting language (Visual C++, MFC, XML; Windows 98/2000).
|
Apidea Amsterdam |
Dec 2001
As a consultant I advised on the internal IT organization of a customer of Apidea,
for which I also joined in on a session with that customer.
A short report was written about the session.
|
Connected Software Rotterdam |
Nov 2001 - Feb 2002
For KnowWise, an information system for consumers, I implemented encryption and HTTP proxy authentication (Visual Basic, ASP, MS SQL; Windows 98/2000).
|
Stachanov Amsterdam |
Jul 2001 - Aug 2001
As a contractor I was the main programmer in a project for building a document management system via intranet/internet (web-interface) (PHP, JavaScript, ODBC, MySQL, Microsoft SQL Server; Windows 98/NT, Linux).
I also did two small subprojects for another project (C, PHP; Windows 98/NT, Linux).
|
Wellance Diemen |
Jan 1999 - Jun 2001
As a Programmer Analyst (Senior since January 2001) I have been responsible for the design and development of the
frontend part for the regedoc system, which is a system for
sending and receiving documents registered and secured over the Internet or intranet.
This encompassed the design and implementation of an ISAPI for Microsoft IIS, using performance counters,
registry settings, the eventlog, encrypted communication and timestamping of documents, and an additional
configuration utility. To do this I used MFC, PGP, Sybase and Oracle backend database (Rogue Wave DBTools++, Oracle OO4O, ODBC).
Furthermore, I also dealt with business security as a member of the Security Project Team and helped getting the BS7799 certification.
|
Siteways Amsterdam |
Sep 1996 - Dec 1998
As a Junior Programmer I worked on:
- guardian system for machines, websites, database, payment systems et cetera (C, shell scripts; IRIX)
- more secure version of the FTP daemon (only users in a certain file can go outside their home directory) (C; IRIX)
- porting of diverse Perl scripts to PHP (PHP; Windows NT, IRIX)
- system for preventing abuse of website account/authorisation by multiple persons (C, NSAPI, msql, shell scripts; IRIX)
- diverse programs and scripts for websites, authorisation- and payment databases (C, PHP, msql, shell scripts; IRIX, Linux)
- shops for websites (products, shopping basket and interface to paymeny module) (PHP, msql; IRIX)
- system for webserver statistics reports (email and HTML) (C, PHP; IRIX)
- solution to switch to ISDN when the regular (i.e. leased line) Internet connection does not provide enough bandwidth
(on location in the U.S. I installed and improved this solution) (shell script; IRIX)
- porting of (Unix) C JPEG6a library to VC++ for an ActiveX control (Visual C++ 5.0; Windows 95)
- porting of the C++ FraunHofer MPEG1-III audio decoder to Java (C++, JDK 1.1; Windows 95, IRIX)
- Adobe Premiere Plugin for JPEG and AVL (LiveStream) (Visual C++ 5.0; Windows NT)
- initial design for a generic shop for the Internet (Word 97; Windows NT)
As an Assistent Systems Administrator I have been responsible for the usual tasks of system administration
such as backup, security, mail, DNS, hard- and software installation and configuration, and small
programming tasks (Systems: SGI, PC, Livingston, Cisco).
|
Vrije Universiteit Amsterdam |
Sep 1993 - Aug 1994
As a Student Assistant for the courses Software Engineering and Computer Networks
with the faculty of Mathematics & Computer Science I coached students with their pratical work for these courses.
During the first course I coached five groups of about five persons. They had to implement a 'large' program as
a team effort. In this case the program to implement was a route planner. The distinguished stages were: requirements
specification, design, implementation (in C++) and evaluation. I also was responsible for judging the submitted results.
During the second course I coached groups of one or two persons with the design and implementation (in C) of (a
simplification) of the IP and UDP network protocols, and an tftp daemon and client. I was only responsible for coaching
the groups.
|
|
Education
Vrije Universiteit Amsterdam |
Sep 1990 - Aug 1998
Information Sciences majoring in Computer Science, finished successfully with an M.Sc.
During my studies I did practical work for the courses Operating Systems,
Compiler Construction, Computer Networks, Programming Languages (lesser known
languages: ABC, Ada, Miranda, Prolog and Smalltalk) and Software Engineering.
|
|
Congresses, courses & seminars
Scrum Institute |
Dec | 2016 |
Scrum Master Accredited Certification |
Magento |
Sep | 2012 |
Magento Developer's Paradise 2012 |
Startup Weekend |
Jul | 2012 |
Startup Weekend Amsterdam 2012 |
Magento |
Jun | 2011 |
Magento Developer's Paradise 2011 |
Magento |
Oct | 2010 |
Magento Developer's Paradise 2010 |
Mediaplaza |
Feb | 2008 |
Introduction to Information Security |
(ISC)² |
Nov | 2007 |
Certified Information Systems Security Professional (CISSP) [continuation] |
MySQL |
Jan | 2005 |
MySQL Core Certification (MCC) |
Zend |
Nov | 2004 |
Zend Certified Engineer (ZCE) [PHP] |
(ISC)² |
Sep | 2004 |
Certified Information Systems Security Professional (CISSP) [continuation] |
PHP Magazine |
May | 2004 |
International PHP Conference 2004 Spring Edition |
Sun |
Sep | 2001 |
Sun Certified Programmer for Java 2 Platform (SCJP) |
(ISC)² |
Jun | 2001 |
Certified Information Systems Security Professional (CISSP) |
Microsoft |
Oct | 2000 |
Developer Days 2000 |
Baltimore Tech. |
Mar | 2000 |
Mobile Commerce Security Seminar |
InfoSupport |
Nov | 1999 |
Mastering MFC Development Using Microsoft Visual C++ 6.0 |
|
Activities
Open source projects |
Aug 2001 - now
My own open source projects:
Magento:
EmailImages
also on Github: EmailImages
(see also my website dedicated to Magento: Magentron),
PEAR: Crypt_Xtea,
Rebuild Thunderbird's popstate,
Trojan scan.
Contributions to different Open Source projects:
Ecomdev_PHPUnit,
fwanalog,
SnortSnarf,
Metabase,
modman,
NuSOAP,
PEAR: PHPDoc,
PHP:
OpenSSL
module.
|
Home Owners Association Amsterdam |
Aug 2006 - Dec 2011
For more than four years I have been the treasurer of my Home Owners Association.
|
NGI |
2001 - 2009
Dutch Society for Information Science (NGI, Dutch), Security department.
|
S.V. Cyclades Amsterdam |
Oct 1993 - Aug 1998
Active members of students club Cyclades, in which I was a committee member of among others: the bar, sports en introduction committees and member of the fraternity Elysion, current status: POR (Mail receiving old-member)
(Cyclades, Dutch).
|
|
Languages
Dutch
| native |
English
| fluent |
Spanish
| advanced |
German
| moderate |
|
|
|