Two Uncomfortably Exciting Conference Talks
Notes on speaking at Rockstars Valley and Frontmania, and why conferences are starting to feel interesting again.
Below, you'll find a collection of coding experiments, blog posts and side projects I've been thinkering with. It's a mix of educational web apps, tutorials, data visualisations and creations just for fun.
Notes on speaking at Rockstars Valley and Frontmania, and why conferences are starting to feel interesting again.
GPT-6 Astra's SVG rendition of Edvard Munch's The Scream shows just how far AI image generation has come since ChatGPT launched.
Thirteen examples of AI-generated menus, posters and signs collected during a summer holiday through the Alps and around Lake Geneva.
Hannah Arendt's challenge to the Stoic ideal of inner freedom, and what it means for engineers who want their code to speak for itself.
A few days ago Anthropic released a model that was initially too dangerous for the world. I tested it with my personal benchmark - can it create a game idea I've had for years in one shot?
A few days in Paris for the Mistral AI Now Summit: open models, on-prem deployment, agentic harnesses, and why Mistral wants to be the European full-stack AI partner.
Notes from my talk at the AI Circle on vibe coding, the changing role of engineers, and why AI should be an exoskeleton — not a replacement.
My 'Software for One' post got some comments about energy costs of generating small apps with AI. When I looked into it, the numbers surprised me.
Instead of downloading someone else's app, I built exactly what I wanted for less than a dollar using AI. Is this the future of software?
A 3D visualization of Conway's Game of Life where dead cells (ghosts) sink into a glowing history stack
When AI takes over the coding, a layer of knowledge disappears - not just for the user, but for the builder themselves.
A new AI model drops every day. Today it was Gemini 3.1 Pro, which does a surprisingly nice SVG rendition of modern art — the Sunflowers in particular caught my eye.
How to set up a keyboard-driven tiling window manager on macOS using AeroSpace and SketchyBar.
From typing over starfield code as a kid to letting AI agents build features - reflecting on how coding is changing and what it means for software engineers.
A New Year countdown and clock visualized with falling Tetris blocks. In this post I share some insights on what has been working well for me when building with AI coding agents.
From ChatGPT's launch to AI agents with tools - a user's perspective on how LLMs evolved from chatbots to autonomous systems in just three years.
Implementing the llms.txt standard to help LLMs understand my website, plus a clever honeypot to track when AI assistants actually visit.
An expanded hexagonal map visualization comparing land use across multiple European countries, showing how water, nature, cities, and agriculture are distributed. See what makes Dutch land use special - or not.
An experiment tracking how AI models from 2022 to 2025 have evolved in their ability to recreate famous artworks using SVG. The results reveal how these models understand visual composition and artistic style.
A few days at GOTO Copenhagen on AI agents, technical leadership and architecture decisions. Main take aways: not prompt magic, but context engineering, ownership and clear decision-making.
A post about a better metaphor for AI than the dominant "Terminator" narrative. What we can learn from the history of automata and scientific progress.
A project dedicated to documenting the funny, interesting, and sometimes outright stupid ways in which AI can fail.
A side-project that analyzes diplomatic relationships through speeches during the 2024 UN General Assembly.
A gallery showing all my generative art projects in one place.
An experiment with GenAI to automate manual tasks in creating a critical edition of Joost van den Vondel's correspondence.
An interactive data visualization project exploring how land is used across the Netherlands, highlighting the distribution of agriculture, nature reserves, urban areas, and infrastructure throughout the country.
By using the randomness, AI can generate more surprising and engaging text, similar to how some human thinkers benefit from unconventional approaches. This post explores the concept of randomness in AI and its implications for creativity.
For this article I used Llama3 to analyze GPT-4 tokens, revealing a strong bias towards English and code.
Large Language Models like ChatGPT and CoPilot have a dual role in simplifying and complicating software development. Using a simple experiment this post explores how LLMs often lead to an increase in code complexity.
Imagining the Netherlands in 2100, this page provides an overview of the impacts of climate change. It's a personal project, driven by my desire to show what the year 2100 could look like when my kids are in their 80s.
Tutorial on how to display real-time CO2 measurements from an Aranet4 monitor on my website using a Raspberry Pi.
I read "Elder Race" by Adrian Tchaikovsky, a sci-fi novel that explores the concept that any sufficiently advanced technology is indistinguishable from magic.
Visualizing the weather anomalies in rainfall, sunshine and temperature in the Netherlands using data from the Dutch Meteorological Institute (KNMI).
Moving away from the structured Git Flow to a more continuous approach with only one main branch.
A git alias to show a standup log for the specified author
About the routerLink directive and how to make sure it's accessible
Adding a dark theme to my website using NextJS 13 and React Server Components
During the pandemic, I worked on a side project to help parents create lessons for their kids, but it was too time-consuming to create those lessons. Now, with LLMs, I revisited the idea.
My arguments in favor of eating less meat.
I asked ChatGPT to write a blog post about its impact on the way developers write code. The contents might surprise you.
Regenesis: Feeding the World without Devouring the Planet. By George Monbiot.
A tutorial for Livebook, an interactive coding notebook for the Elixir programing language.
Stop using rm -rf node_modules, use Trash instead.
Using jq to decode JWT tokens from the command line.
A snippet I use to setup the aliases and global git config on new machines.
Part 2 of my tutorial creating "live cursors" as seen in Figma. In this tutorial, I'll be using Phoenix LiveView to create the same feature.
A snippet to parse the git hash from the command line and add it as an environment variable to a Next.js app.
Add a stand with Ukraine banner using this TailwindCSS snippet
Some advice from the Stoic philosopher Seneca for workers returning to the office after the pandemic.
A bash script that deletes all local branches not found on the remote.
A tutorial for creating live cursors as seen in Figma. A step-by-step guide focused on beginners (I'm learning Phoenix myself).
Why it's better to be kind than to be clean.
With the official mix task it has become very easy to add Tailwind to any Phoenix project. To make it even more straightforward I've written this quick step-by-step guide.
How the ordering of functions can make component files easier to read.
Nice looking radios and checkboxes with native css styling
It's something you easily forget, but it's easy and looks so much better.
Why mocking all external requests for your app is worth it.
A React hook that uses localStorage (or sessionStorage) to persist component state.
Why index barrel files can lead to large bundle sizes
A simple principle to help structure code better
A web app built during the Covid-19 lockdown that helps parents and elementary school children create lessons collaboratively. Parents can support their kids with challenging topics and share interactive educational content with other families. (in Dutch)
A Twitter bot that tweets the latest vaccination progress for the Netherlands. Recently updated to also show the number of people that received a booster shot.
Tutorial on how to create a scroll video effect using Svelte’s powerful bind command.
A new year, a new JavaScript framework! Using svelte I created this PWA to help my kids with math. The goal was to create an app-like experience, using micro animations, full offline support, prefetching JavaScript and server-side rendering.
A collection of great programming quotes
A first look at the state management library mobx-state-tree and a comparison with Redux Saga.
Last week I learned a few things about how redirects and 303 status codes are handled in the browser.
How to let screenreaders read the title of an SVG using React
196 bytes of minimal CSS
Git commands I keep forgetting
Stuff I don't want to forget from the Book Programming TypeScript.
An intro to the React hooks useState, useRef and useEffect
Accelerate gives a scientific analysis of what makes IT organizations successful. I've listed the most important ones (from a developer perspective)
Weekend project to learn more about Mobx State Tree. Simple kids' game inspired by Stardew Valley and Monty Python. Don't forget to turn on the sound!
Review of a book for programmers who have always considered CSS to be an (unpleasant) afterthought
I made this app to test what you can accomplish with current PWA technology (especially on iOS). My kids loved it, I hope you do too! 🎉
Progressive Web App for kids, based upon the classical piece "Peter and the Wolf" by Prokofiev. Turns out that making large mp3s available offline is harder than I thought.
I thought it might be (mildly) interesting to keep track of how the NPM node_modules folder grows over time. This website keeps track of the size of the top 100 npm packages. It's been running for a while now and the results are... frightening?
Testing async API calls using Jest’s mocking features
Star Wars or Star Trek? Why not both? Using just CSS and a little bit of JavaScript I recreated these classic science fiction intros.
Star Wars or Star Trek? Why not both? Using just CSS and a little bit of JavaScript I recreated these classic science fiction intros.
A fun little tutorial of how to create a PDF using a web form, Express and PDFKit
A simple web app for translators that converts a price per word to a price per standard line (55 characters).
A Twitter bot raising emoji money for his trip around the world. A fun little experiment with social media and Twitter bots. [no longer active]. Technologies used: Express, MongoDB.
A Twitter bot that creates daily timelapse videos of the traffic jams in the Netherlands. No longer active, but you can still see some of the old time-lapses.
Twitter bot inspired by @congressedits that monitors and Tweets any edits made to Wikipedia by the Dutch government. It's been in the news quite a few times (de Volkskrant) and the account has more followers than I do. (in Dutch)