Work
6 systems. Each entry describes what was built and how it runs.
- 012026
A finance-content platform, in production
Marketing site, newsletter and news feed, with a members area behind Stripe billing. Postgres under default-deny row-level security, passwordless auth, and a news-ingestion pipeline feeding the published feed. The security model is covered by a SQL test suite that runs against a throwaway database.
Next.js 16SupabaseStripeResendVercel
- 022025
A containerised trading platform
MetaTrader 5 running under Wine behind a Flask API, orchestrated by Django and Celery across sixteen containers. Twenty-one scheduled tasks over three queues, a real-time tick pipeline on Redis pub/sub, and a full observability stack of Prometheus, Grafana, Loki and Alertmanager, with a Kubernetes deployment path alongside Compose.
PythonDjangoCeleryDockerKubernetes
- 032025
A B2B outreach and CRM system
Built for the Dutch market and in Dutch. Company enrichment driven by language models, a scheduled sending pipeline, and a CRM to track what happened next.
PythonPostgreSQLLLM tooling
- 042026
Boekhouding for a Dutch sole proprietorship
An append-only ledger where corrections are booked as reversing entries rather than updates, Dutch tax rules written as pure functions of a tax year with every rate carrying its source, and gapless invoice numbering enforced in Postgres instead of application code.
TypeScriptNext.jsSupabaseTurborepo
- 052023
A cocktail bar that builds the drink itself
A machine that pours a cocktail you order from your phone. Built with one other student during a robotics course. The pumps were designed in CAD and 3D printed, the motion runs on an Arduino, and the ordering screen is served by the microcontroller itself.
OpenSCADBlenderArduinoC++ESP8266
- 062025
A microwave interface, taken apart and rebuilt
An existing combi microwave has nine controls and a display that changes meaning as you turn the dial. I analysed why it is hard to use, designed a replacement panel, and built the redesign as working hardware across two microcontrollers.
ArduinoC++I²C