Portfolio

My experience, skills and projects, newest first.

Current work

Developer and maintainer

2020–present

Bilingual website for a medical pedicure practice

  • The new website is expected to launch in December. Until then, visitors still see the old website, which is plain HTML and CSS.
  • I maintain and develop the website: PHP 8.3 with strict types, Twig and SQLite, with TypeScript and plain CSS on the front end, no framework.
  • I built a custom CMS: announcements with exact start and stop times, treatment fees and opening hours, changes that can be planned ahead, a maintenance mode, version history with restore, an activity log and back-ups with restore.
  • Security: two-factor login, a strict Content Security Policy, protection against CSRF and abuse, and a contact form with Turnstile that does not store the message.
  • Quality: PHPUnit, PHPStan and Playwright tests across several browsers, GitHub Actions for the checks and the staging deploys, and accessibility to WCAG 2.2 AA.

elicure.nl (external website, opens in a new tab)


IT experience

Full-stack developer

2025–2026

Developer and tester

  • Developed and maintained custom Drupal modules and improved workflows for the internal website.
  • Largely on my own, set up a Cypress test automation framework that covers about 90% of the website: first reverse-engineering the existing website, so the tests run automatically as soon as a patch is uploaded.
  • Built a Power Automate flow with cursor-based pagination that syncs 15,000+ employees from an external data-warehouse API into SharePoint, with null-safe JSON schema validation and error handling.
  • After a Drupal update, repaired a broken YouTube API integration: updated outdated endpoints, headers and authentication, built a fallback that removes the iframe when the API fails, and secured the handling of the API keys.
  • Worked with React and TypeScript, SharePoint (SPFx), Power Automate and Power Apps, in a landscape of dozens of APIs and applications.
  • Worked out a proposal to make test automation a standard part of the development cycle, aligned test guidelines with colleagues and connected BrowserStack to Jira.
  • Logged deviations in Jira, with reproduction steps and the observed and expected behaviour.
  • Worked in scrum, with standups, refinements, retrospectives and demos, and aligned with several teams.

WordPress developer (internship)

2022

  • Developed and delivered several WordPress websites for small and medium-sized businesses, with custom work (themes and small plugins in PHP and JavaScript) and responsive front ends.
  • Carried out content migrations and optimised performance and SEO, which improved load times and client satisfaction.
  • Provided aftercare: updates, security fixes and client training, so the sites stay stable and easy to maintain.

WordPress developer and tester (internship)

2021

  • Developed and delivered WordPress websites for clients, including theme adjustments, content migrations and performance optimisation.
  • Tested new features and existing functionality to catch bugs and usability problems early.
  • Worked in a client-focused and solution-focused way.
  • Built stable, low-maintenance and user-friendly websites with test coverage and quality control.

Skills

  • Programming languages

    • PHP
    • JavaScript
    • TypeScript
    • SQL and SQLite
    • Twig
    • HTML
    • CSS
    • SASS
  • Frameworks and libraries

    • React/TSX
    • Tailwind CSS
    • Drupal
    • WordPress
    • Laravel (8 and 9)
  • Software and tools

    • Docker
    • LocalWP
    • Cypress
    • Playwright
    • PHPUnit
    • PHPStan
    • GitHub
    • Microsoft 365
  • Integrations and tooling

    • REST/JSON APIs
    • SharePoint (SPFx)
    • Power Automate
    • Power Apps
    • Git
    • GitHub Actions
    • Node.js and esbuild
    • ESLint and Stylelint
    • Linux and bash scripts
    • Jira
    • BrowserStack
  • Currently learning

    I am actively learning these and making good progress: I am already building real projects with them.

    • Astro
    • Rust
  • Building a custom CMS

    • Two-factor login
    • Version history with restore
    • Planned publishing
    • Back-ups and restore
    • Maintenance mode
  • Security

    • Two-factor login (TOTP)
    • Strict Content Security Policy
    • CSRF protection and rate limiting
  • Way of working

    • Scrum: standups, refinements, retrospectives and demos
    • Test automation inside the development cycle
    • I prefer solving client wishes inside the existing application with JavaScript or PHP over adding another plugin
    • AI as a learning aid: I have concepts explained, build something with them straight away and review every change myself
  • Languages

    • Dutch
    • Dutch Sign Language
    • English

Side projects

Écrin

  • Écrin is my own Windows app for running language models on your own PC: private, offline, and with no account, updater or telemetry of its own. Written entirely in Rust, with its own native window and llama.cpp as the engine.
  • Security is the starting point. The model can only work inside one folder that I assign. Commands it runs go through a Windows AppContainer sandbox, with no network by default; internet access is off by default and switched on per chat.
  • I decide who approves commands: off, ask every time, automatic review or allow everything, and in every case inside the sandbox.
  • Chats, projects, attachments and memory are stored encrypted. The key lives in Windows Credential Manager, with a recovery key.
  • AI Code mode: an agent that works in a project folder, with Files and Terminal panels and a Run button on code blocks. Helper models take on sub-tasks, and five effort levels go up to “Ultracode”, a plan-then-check workflow.
  • Unlimited attachments (PDF, Office files, ZIP, even files of several gigabytes), exact token counts, automatic summaries of long chats, and a live GPU monitor that checks whether your graphics card is supported.
  • SAM is my own engine that drives the interface and also works as the engine itself. It talks to the local AI model and helps it: it notices, for example, that a localhost has been started and tells the model it can open the browser inside the app. That makes the AI more efficient and the app easier to use.
  • More than 400 automated tests, including real sandbox tests, run on GitHub CI and in Docker.
  • Runs local models such as Qwen and Laguna.
  • Next up: search across all chats, memory and skills that the AI writes for itself, and a browser panel where the AI tests the apps it builds.

Aerofly FS 4 mod

  • A mod for Aerofly FS 4 that I am developing now, written in Rust.
  • It reads all the data of the aircraft, such as airspeed (knots) and altitude (feet).
  • With a button to switch the autopilot on, a map and more.

Boeing 737 checklist

  • A simple checklist app for the Boeing 737 in Microsoft Flight Simulator 2024: you work through the checklists step by step and tick them off. Built as an Electron desktop app.
  • I fly in the simulator in my spare time, because I love aircraft.

Other work

Barista

2024–2025

  • Prepared quality coffee and created a welcoming atmosphere for guests.
  • Promoted Dutch Sign Language and worked in an inclusive team with deaf and hard-of-hearing colleagues.
  • Created a stronger customer experience and more visibility for sign language in society.

Distribution employee

2019–2023

  • Took responsibility for an efficient flow of goods and stock management.
  • Coordinated and optimised work processes as part of a team.
  • Made sure orders were handled efficiently.
  • Supported team dynamics and cooperation.

Postal deliverer

2017–2022

  • Took daily responsibility for timely, consistent and correct delivery of mail and residents’ magazines.
  • Achieved high customer satisfaction and loyalty through pleasant social interaction.

Education

Software Developer, MBO 4

2023