Freelance Full Stack Developer · Nederlandse Loterij (TOTO)
Jan 2023 – present Three engagements on TOTO's gambling platforms: a brand integration into the legacy casino, a ground-up casino rebuild, and the new TOTO Sport sportsbook. All real-time, all under strict gambling regulation, peaking at 100,000 active users a night.
- Shipped the Winn-It brand into the legacy casino platform in six weeks, against a six-month budget
- Rebuilt the casino from scratch on Vue 3 and .NET, then handed it over to newly hired in-house developers. The team chose a custom SSR stack over Nuxt: no vendor lock-in, and every dev learns what a meta-framework does under the hood
- Owned the initial SSR implementation for both casino and sportsbook. Researched the hard parts (memory leaks and state leaking across requests) and coached the team on preventing both
- Turned a three-month sportsbook proof-of-concept into a green light at the halfway demo. With four devs, reached closed beta in a year and replaced the legacy product six months later, handling peaks of 4,000 logins and 2,000 bets per minute
- Built the custom Google Analytics enhanced-ecommerce funnel for betting, plus the sportsbook's custom A/B-testing setup. A betslip is not a shopping cart
- Made both products webview-ready for the iOS/Android apps, debugging the not-quite-a-browser quirks side by side with the app developers
- TypeScript
- Vue 3
- Pinia
- Node.js
- Express
- .NET (C#)
- Azure
- Cloudflare
- GTM
- Google Analytics
Freelance Full Stack Developer · DPG Media
Mar 2018 – Jun 2022 Built and ran entertainment products: video, puzzles, casual games, quizzes and podcasts. They served roughly 1.5 billion views a year across DPG's biggest brands (AD, HLN, de Volkskrant), with advertising, paywalls and tracking built in, under a "you build it, you run it" principle.
- Built the embed system end to end: the loader script, the data-attribute element API, and the embeds themselves in vanilla JavaScript, CSS and HTML. Nearly all of it mine, with the team as sparring partners. Carried video from 4 to 20+ titles, then puzzles, games, quizzes and podcasts
- Implemented the complete Snowplow analytics integration on the front-end: plays and playthrough, profile-based recommendations, and daily-puzzle notifications that knew whether you'd already played
- Built the web side of the "wall" product: a brand sets up one route with its own header and footer, and we render everything in between. One lightweight integration per label
- Worked in continuous back-and-forth with the app teams on webview integration; later ported the products to React alongside the React Native apps
- Ran what we built: containerized hosting in AWS, caching and WAF in Akamai, monitoring and alerting
- TypeScript
- React
- Node.js
- Elixir
- PostgreSQL
- AWS
- Akamai
- Snowplow
- Google IMA
Team Lead Front-End · DigitasLBi
May 2016 – Dec 2017 Led front-end development (75% hands-on, 25% leading) for a team of about 8 front-end developers in a fast-paced B2C campaign environment, for clients such as Audi, Renault, Dutch Railways (NS) and the Ministry of Health.
- Stepped into the front-end-lead gap from day one. The sitting lead announced his departure the day I started, so in practice I took on the estimations and the back-and-forth with PMs and traffic
- Defined the common front-end stack and coding standards used across projects and teams
- Gave a trainee his first production project, trainbooking.com, with direct client contact included, and guided him through it
- Encouraged a developer to take campaign sites to React, then guided him in building our reusable campaign tooling. In effect our own meta-framework, before Next.js existed
- Delivered under hard campaign deadlines, including a multilingual Audi site live within four weeks
- JavaScript
- React
- Vue
- Nuxt
- Node.js
- Azure
- AWS
Full-Stack Web Developer · Hot ITem
Sep 2008 – Apr 2016 Started full-stack in the ASP.NET and jQuery era, building business web applications for clients including PostNL, ING, Rijkswaterstaat, KPN, Ziggo and de Persgroep.
- Claimed the front-end spot nobody wanted and grew it into a UX practice: user sessions, client presentations, and sparkling interfaces on top of server-rendered pages
- Kept de Persgroep's news platforms running at 35M pageviews a month, a big number in 2010
- JavaScript
- C#/.NET
- PHP
- Java
- SQL