Senior Webdeveloper & Agile Enthusiast
My life goal is to help people, even if in small increments. IT is a (very cool) means to that end.
I am based in The Hague (The Netherlands) and have experience with working remote and managing an offshore team.
I have a broad technical interest and have performed these roles:
Besides tinkering with new technologies, I like boardgames, roleplaying games/fantasy and am a veggie foodie. I tend to binge-watch quite some series as well.
I'm mostly experienced with backend (PHP/MySQL/Yii or NodeJS) combined with basic frontend, although with my move to serverless I'm becoming increasingly proficient in fullstack.
| Tech | Proficiency |
|---|---|
| Backend & integrations | |
| Frontend | |
| Agile & Scrum | |
| Server & DevOps | |
| Communication |
| Client: | Zonwatt | |
| Stack: | Firebase, VueJS & Vuetify, nodeJS, Javascript | |
| Role: | Developer |
Custom system that allows Zonwatt to create offers for the placement and maintenance of solar panels. The system consists of an employee portal where the offers are configured, a customer portal for viewing and accepting the offers and some nodeJS microservices providing integrations with third party services for additional solar calculations, crm and invoicing.
Because it was clear from the start that the Domain Model was complicated as well as subject to future changes, a relational database was not suited. I decided to implement this project with Google Firebase to circumvent this issue.
| Client: | 3Shades | |
| Stack: | PHP/MySQL, socket.IO, OAuth, LEMP HA setup | |
| Role: | Tech & DevOps Consultant |
Nohisto.com provides access control (e.g. for concerts, events, working sites) based on new disruptive technologies. I regularly do some tech consultancy for them, where I deliver proof of concepts that they then further integrate.
I have:
| Client: | Artizani | |
| Stack: | PHP/MySQL, Yii2, Bootstrap, jQuery, nodeJS, Chromium | |
| Role: | Developer |
MyFriendbook creates customized books to memorize special occassions, like a marriage anniversary or when a collegue switches jobs. The bookowner invites participants, who all fill in a questionaire with personalized questions and add some photo's. The book is then printed and delivered to the happy endcustomer.
I was approached by Artizani to rebuild their elaborate and complex systems, because their 10 years of technical debt had become unmanageable. Due to the size of their codebase, we decided to keep the current data model as intact as possible. In phases I rebuilt all their features - all the while making sure that both old and new code worked seamlessly together. Another challenge was rewriting all the exceptions that the legacy code had in such a way that we would not loose any existing functionality, but that they would be more futureproof and easily extensible.
The new system was delivered in 2021. I still regularly work for this customer on new feature requests.
| Client: | PTI | |
| Stack: | Agile, NodeJS, MongoDB, PHP/MySQL | |
| Role: | Team Lead Developer, Agile Evangelist, Project Manager |
With as goal portfolio diversification a new IT department was created in 2017, called "Innovation". Task: built SaaS products for new, non-utility markets.
In partnership with IQ-Pass (acquired by Boels during the process), we built a new platform from scratch for access control to events and industrial sites. Due to the different types of customers, the system was highly customizable and consisted of a microservice architecture powered by Node/MongoDB. We provided both a web interface and a mobile (ReactNative) app. Also we provided proof of concepts for new access control systems, that were implemented on several customer sites.
Part of our "innovative" approach was to implement full-on scrum as well. I acted as scrum-master for this and eventually became more of an Agile Evangelist for our entire organisation. I handed over control on the IQ-Pass project and focused on training our organisation for Agile, while also doing project management on two new applications (one for Credit Management and another one for the planning and editing of all forms of customer communication, like letters/e-mail/sms etc).
After a total of twelve years working for PTI, in 2019 I decided it was time for a change and became a freelancer again.
| Client: | PTI | |
| Stack: | PHP/MySQL/WSO2 ESB/Yii/SOAP/REST | |
| Role: | Integration Specialist, Developer |
PTI processes meterreadings for almost all utility companies in The Netherlands. When the smart meter was introduced, I created several integrations that could retrieve both current and historical values for these smart meters. These values were then postprocessed and used for people moving in/out of a home and for VKO's (verbruikskostenoverzicht, information send to the owner of the meter). Some API's where direct, while others worked asynchronously (meaning possible wait time of up to 3 hours). Next to integration/implementation/documenting, I was also responsible for certifying our solutions.
Due to the high level of security for these API's, a PHP-only solution was not feasible: PHP's SOAP API layer is fairly limited. Instead I used a middleware layer (W2SO ESB) that we later - after changing requirements - replaced with a .NET webservice client.
I was also the architect for the SOAP/REST interfaces that we provided our clients with. These were built in India based on my specifications.
| Client: | PTI | |
| Stack: | PHP/MySQL/Yii | |
| Role: | Team Lead Developer |
Having become the "inhouse freelancer", I became Team Lead Developer at PTI. My responsibilities included:
| Client: | PTI (on behalf of Dunea & Waterbedrijf Groningen) | |
| Stack: | PHP/MySQL/SOAP | |
| Role: | Integration Specialist, Developer |
Utility companies Dunea and Waterbedrijf Groningen migrated to the SAP platform, necessitating a full rebuild of their customer service portals. I was tasked with handling the physical connectivity as well as the software integrations between several SAP systems and the new customer portal. This included the post-design and testing phase together with CapGemini. I also connected the portal to several API's by postcode.nl. Finally I was responsible for the implementation of ModSecurity - a web application firewall that detects and mitigates online attacks.
Special for this project was that I designed and implemented a queuing system that would make sure the customer portal had limited functionality when SAP went into maintenance mode and would then later retry all the requests to make sure SAP was updated. This approach was then used in several client services that PTI used for different projects.
| Clients: | Several | |
| Stack: | LEMP, bash | |
| Role: | Administrator |
Through my own company I provide premium hosting for customers who have special demands. For this I have managed several linux servers since 2010. My work here includes:
| Clients: | Aloysius College, Flatbox, PTI | |
| Stack: | PHP/MySQL, Yii, jQuery | |
| Role: | Medior Developer |
I have developed several scheduling systems:
| Clients: | Ben Becker Papier & Verpakkingen, Delvaux Constructie, DigiCit, PTI | |
| Stack: | PHP/MySQL, jQuery, Mollie integration | |
| Role: | Medior Developer |
I have developed several administrative systems, that had such special requirements that standard software would not work (and actually at this point in time there were little standard web-based solutions). E.g. for Ben Becker Papier & Verpakkingen we needed to take into account special rules for packaging taxes. For Delvaux we converted an old MS Access application that had a specific way of generating quotations with a lot of custom business rules to a web application.
| Clients: | Aloysius College, Den Haag | |
| Stack: | HTML/CSS, PHP/MySQL, Gamemaker | |
| Role: | Medior Developer |
After having done some IT projects for them, I was asked as a teacher computer science by my former secondary school. I developed a new curriculum including HTML/CSS, PHP/MySQL and Gamemaker to replace the outdated curriculum. I enjoyed teaching quite a lot, but it proved difficult to combine with my increasing responsibilities on IT projects for other customers. That is why I decided to quit this job.