A wide curved monitor seen from the side shows program code, above a wooden desk with a keyboard, mouse, drawing tablet and game controller
Frontend
A scuba diver in a drysuit swims toward the camera between rocks in clear blue water
NOB · CMAS
A person in silhouette looks out over a forest toward the horizon, framed by trees
Wooden hexagon tiles with cherry blossoms, lucky cats and lanterns on a pink and purple game board
Earth on amongthestars.nl, with the International Space Station and the Hubble Space Telescope
Portfolio
A blue Alpine A290 drives toward the camera on a race track, past red and white curbs
A rider in a black suit leans a black Yamaha sports bike into a corner
A rider on a red dirt bike on a sandy track between palm trees

Software Architect

I design complex web applications and the systems behind them, with a focus on the front end.

As a software architect, I decide how the parts of a system work together. I set the structure of the code and the boundaries between apps and teams. I also set the contracts between the front end and the application programming interfaces (APIs). I choose tools and patterns that a team can maintain for years.

I still write code. I build the first version of a new pattern, review the work of the team and coach developers. Performance, accessibility and a simple interface stay my focus while the application grows.

Skills

  • Front-end architecture
  • Monorepo architecture
  • Agentic engineering
  • Migrations
  • API design
  • Design systems
  • Web performance
  • CI/CD
  • Test automation strategy
  • Developer experience
  • A/B testing
  • Accessibility
  • Internationalization
  • Requirements analysis
  • Technical documentation
  • Technical leadership
  • Coaching & teaching
  • UX & UI design

Tool proficiency

  • Crowdin
  • Cypress
  • Figma
  • Gherkin
  • GitLab
  • GraphQL
  • Herdr
  • i18next
  • macOS
  • MSW
  • Nx
  • Obsidian
  • OData
  • Oxc
  • Playwright
  • pnpm
  • React
  • Storybook
  • Svelte
  • Tailwind CSS
  • TypeScript
  • Vite
  • Vitest
  • Zed
  • Zod

Work Experience

  1. Software Architect at Moba Group

    Jan 26 to Present Barneveld, Netherlands

  2. Front-end Engineer at Moba Group

    Jan 24 to Jan 26 Barneveld, Netherlands

  3. Front-end Engineer at Tiqets

    Apr 20 to Dec 23 Amsterdam, Netherlands

  4. Front-end Engineer at Wehkamp

    Nov 17 to Mar 20 Zwolle, Netherlands

  5. Front-end Engineer & Full-stack PHP Engineer at Impres

    Feb 15 to Oct 17 Zwolle, Netherlands

  6. Full-stack Engineer & Webdesigner at Webburo

    Feb 13 to Jan 15 Steenwijk, Netherlands

  7. Interim Consultant / Manager at Grow/Work

    Aug 12 to Jan 13 Amsterdam, Netherlands

  8. Interim Consultant / Manager at Grow/Work

    Sep 10 to Jan 12 Amsterdam, Netherlands

  9. Interim Consultant / Manager at Thuiszorg Rotterdam

    May 10 to Aug 10 Rotterdam, Netherlands

  10. Guest Lecturer at Hogeschool Rotterdam

    May 09 to Nov 09 Rotterdam, Netherlands

  11. Front-end Engineer at Redkiwi

    Apr 09 to Feb 10 Rotterdam, Netherlands

Special Work Experience

  1. Chairman / Organizer at Board game club Blauw

    Jan 18 to Present Zwolle, Netherlands

  2. Cooking Internship at De Librije

    Sep 13 Zwolle, Netherlands

  3. Circuit Guide at Race Planet

    Sep 12 to Feb 16 Zandvoort, Netherlands

  4. Host / Motorsports Instructor at GP Elite

    Sep 12 to Aug 13 Zandvoort, Netherlands

  5. Soldier, National Reserve at Koninklijke Landmacht

    Dec 09 to Dec 12 The Hague, Netherlands

Languages

  • Dutch Native
  • English Native proficiency
  • German Advanced
  • Portuguese Beginner
  • Spanish Beginner

Scuba diving instructor

Dives
300+
Dives a year
40+
Divers certified
10+
Deepest dive
37 m
Highest dive
1,900 m
Longest dive
77 min
Time underwater
200+ hours
Coldest water
3 °C
Warmest water
31 °C

I dive with Duikteam de Oester

Certifications

  1. Instructor, 2 star

    NOB · CMAS · Jul 25

  2. Assistant Instructor, 1 star

    NOB · CMAS · Jun 24

  3. Lucky Fin Guide

    NOB · CMAS · Apr 26

    Lucky Fin is the NOB program that lets people with a physical or mental disability dive. As a guide I dive with them and support them under water. The training needs a 3-star diver certification.

  4. Divemaster, 3 star

    NOB · CMAS · May 23

  5. Advanced Open Water Diver, 2 star

    NOB · CMAS · Sep 22

    Equivalent to Advanced Adventurer + Rescue Diver

  6. Advanced Adventurer

    SSI · Apr 16

  7. Open Water Diver, 1 star

    SSI · Jun 11

Specialties

  1. Drift Diving

    NOB · CMAS · Oct 26

  2. Underwater Biology

    NOB · CMAS · Jun 24

  3. Drysuit

    NOB · CMAS · Jun 24

  4. Nitrox

    NOB · CMAS · Oct 22

Dive sites

The globe needs JavaScript.

Europe 200+ dives

  • First dive May 2011
  • First dive Apr 2022
  • First dive May 2022
  • First dive May 2022
  • First dive Aug 2022
  • First dive Aug 2022
  • First dive Sep 2022
  • First dive Jul 2023
  • First dive Aug 2023
  • First dive Apr 2024
  • First dive Jul 2024
  • First dive Aug 2024
  • First dive Jun 2025
  • First dive Jun 2025

Africa 60+ dives

  • First dive Jun 2022
  • First dive Nov 2022
  • First dive Nov 2022
  • First dive Jun 2023
  • First dive Aug 2023
  • First dive Nov 2023
  • First dive Nov 2023
  • First dive Dec 2024
  • First dive Dec 2024

Middle East 5 dives

  • First dive Jul 2005
  • First dive Oct 2023
  • First dive Sep 2024

Central America 20+ dives

  • First dive Jan 2023
  • First dive Oct 2024
  • First dive Apr 2025

East & Southeast Asia 5 dives

  • First dive Apr 2016

World traveller

The globe needs JavaScript.

Visited

73/195 countries

37% of the world

+ 5 territories

Planned trips

5/195 countries

3% of the world

+ 2 territories · 5 not booked yet

Top 20

  1. Brazil
  2. Spain
  3. Kenya
  4. Guatemala
  5. Suriname
  6. Jordan
  7. Morocco
  8. Thailand
  9. Tanzania
  10. Georgia
  11. Estonia
  12. Slovenia
  13. Singapore
  14. Italy
  15. Bolivia
  16. Oman
  17. Peru
  18. South Africa
  19. United States
  20. Portugal

Europe 37/45

  • Born Apr 1987
  • First visit Childhood trip
  • First visit Childhood trip
  • First visit Childhood trip
  • First visit Childhood trip
  • First visit Aug 2000
  • First visit Jul 2001
  • First visit Jul 2001
  • First visit May 2004
  • First visit Aug 2007
  • First visit Aug 2008
  • First visit Jul 2010
  • First visit Sep 2011
  • First visit Sep 2011
  • First visit Sep 2011
  • First visit Sep 2011
  • First visit Aug 2014
  • First visit Dec 2014
  • First visit Aug 2017
  • First visit Aug 2017
  • First visit Sep 2018
  • First visit Nov 2018
  • First visit May 2019
  • First visit Jun 2019
  • First visit Jul 2019
  • First visit Aug 2020
  • First visit Aug 2020
  • First visit Jun 2021
  • First visit Sep 2021
  • First visit Sep 2021
  • First visit Feb 2022
  • First visit Dec 2022
  • First visit Dec 2022
  • First visit Apr 2023
  • First visit Jul 2023
  • First visit Mar 2024
  • First visit May 2024
  • First visit May 2025
  • First visit May 2025

Africa 9/54 · 1 planned

  • First visit Nov 2010
  • First visit Apr 2011
  • First visit Mar 2019
  • First visit Mar 2019
  • First visit Mar 2019
  • First visit Jun 2022
  • First visit Oct 2022
  • First visit Jun 2023
  • First visit Aug 2023
  • First visit Dec 2024
  • Planned in 2027

Middle East 8/18 · 1 planned

  • First visit Jul 2005
  • First visit Nov 2022
  • First visit Oct 2023
  • First visit Oct 2023
  • First visit Feb 2024
  • First visit Apr 2024
  • First visit Sep 2024
  • First visit Sep 2024
  • Planned in 2026

North America 1/2

  • First visit Sep 2018

Central America 4/21 · 2 planned

  • First visit Jan 2023
  • First visit Jan 2023
  • First visit Oct 2024
  • First visit Mar 2025
  • First visit Mar 2025
  • Planned in 2027
  • Planned in 2027
  • Planned in 2027
  • Planned in 2027

South America 7/12

  • First visit Feb 2012
  • First visit May 2012
  • First visit May 2012
  • First visit May 2012
  • First visit Jun 2012
  • First visit Sep 2026
  • First visit Sep 2026
  • First visit Sep 2026

Oceania 0/14

No countries yet.

East & Southeast Asia 6/16 · 3 not booked yet

  • First visit Feb 2016
  • First visit Feb 2016
  • First visit Mar 2016
  • First visit Apr 2016
  • First visit Apr 2016
  • First visit Apr 2016
  • Not booked yet, for 2027
  • Not booked yet, for 2027
  • Not booked yet, for 2027
  • Not booked yet, for 2027

Central Asia 1/5

  • First visit Sep 2025

South Asia 0/8 · 1 planned · 1 not booked yet

  • Planned in 2027
  • Not booked yet, for 2027

Progress

05010015019520002010202020302040205473
< 2000 5 countries
2000 6 countries
2001 8 countries
2004 9 countries
2005 10 countries
2007 11 countries
2008 12 countries
2010 14 countries
2011 18 countries
2012 23 countries
2014 24 countries
2016 30 countries
2017 32 countries
2018 35 countries
2019 41 countries
2020 43 countries
2021 46 countries
2022 52 countries
2023 60 countries
2024 67 countries
2025 71 countries
2026, planned 74 countries
2027, planned 82 countries
Visited, per year Planned: 82 by 2027 Schedule: all 195 by 2054, 3.5 new countries a year

Board game enthusiast

Plays
5,000+
Games played
1,000+
Games owned
350+ · 150+ exp.
H-index
29
Games with 10+ plays
100+
Games with 25+ plays
30+

Stats from BoardGameGeek

Top 100

  1. The box of Terraforming Mars: Ares Expedition

    Terraforming Mars: Ares Expedition

    50+ plays

  2. The box of Scythe

    Scythe

    40+ plays

  3. The box of Pipeline

    Pipeline

    20+ plays

  1. The box of Age of Steam

    Age of Steam

    30+ plays

  2. The box of A Feast for Odin

    A Feast for Odin

    10+ plays

  3. The box of Specter Ops

    Specter Ops

    20+ plays

  4. The box of Splendor Duel

    Splendor Duel

    30+ plays

  5. The box of Rebirth

    Rebirth

    7 plays

  6. The box of Forest Shuffle

    Forest Shuffle

    30+ plays

    The box of Forest Shuffle: Dartmoor

    Forest Shuffle: Dartmoor

    10+ plays

  7. The box of Sweet Lands

    Sweet Lands

    3 plays

  1. Ark Nova · 10+ plays
  2. The Search for Planet X · 10+ playsThe Search for Lost Species · 9 playsThe Search for UAPs · 2 plays
  3. Bomb Busters · 100+ plays
  4. Barcelona · 10+ plays
  5. Bunny Kingdom · 30+ plays
  6. Factory Funner · 10+ plays
  7. Ants · 5 plays
  8. Black Forest · 10 plays
  9. Horseless Carriage · 3 plays
  10. Recall · 7 plays
  11. On Mars · 4 plays
  12. Marvel Champions: The Card Game · 50+ plays
  13. Windmill Valley · 6 plays
  14. Etherstone · 5 plays
  15. Viticulture Essential Edition · 20+ plays
  16. Ra · 10+ plays
  17. The King's Dilemma · 10+ plays
  18. Kanban EV · 4 plays
  19. Scholars of the South Tigris · 3 plays
  20. Dokmus · 20+ plays
  21. Cascadero · 10+ plays
  22. Fields of Arle · 5 plays
  23. Alibis · 4 plays
  24. Clank! Legacy: Acquisitions Incorporated · 10+ plays
  25. Just One · 10+ plays
  26. Clans of Caledonia · 20+ plays
  27. Anno 1800: The Board Game · 10+ plays
  28. Chinatown · 10+ plays
  29. Pandemic Legacy: Season 0 · 10+ playsPandemic Legacy: Season 1 · 10+ playsPandemic Legacy: Season 2 · 10+ plays
  30. Coffee Traders · 6 plays
  31. Imperium: Classics · 3 playsImperium: Legends · 8 playsImperium: Horizons · 2 plays
  32. T.I.M.E Stories · 10 plays
  33. Speakeasy · 4 plays
  34. Hanami · 3 plays
  35. Rajas of the Ganges · 20+ plays
  36. Space Base · 10+ plays
  37. Rallyman: GT · 9 plays
  38. Teotihuacan: City of Gods · 9 plays
  39. Cryptid · 30+ plays
  40. Curious Cargo · 10+ plays
  41. Container · 4 plays
  42. The Gallerist · 3 plays
  43. Architects of the West Kingdom · 10+ plays
  44. So Clover! · 9 plays
  45. Tekhenu: Obelisk of the Sun · 7 plays
  46. A Message From the Stars · 4 plays
  47. Pioneer Days · 10+ plays
  48. Railway Boom · 3 plays
  49. Dragon Castle · 30+ plays
  50. Galaxy Trucker · 6 plays
  51. Harmonies · 9 plays
  52. Tapestry · 10 plays
  53. Caesar's Empire · 10+ plays
  54. 7 Wonders Duel · 20+ plays
  55. Planta Nubo · 7 plays
  56. Reef Project · 3 plays
  57. The 7th Continent · 20+ plays
  58. Memoir '44 · 10+ plays
  59. Viscounts of the West Kingdom · 10+ plays
  60. Evergreen · 4 plays
  61. Fit to Print · 6 plays
  62. FYFE · 6 plays
  63. Sky Team · 10+ plays
  64. Through the Desert · 6 plays
  65. Crokinole · 7 plays
  66. Hanabi · 50+ plays
  67. Paris · 5 plays
  68. The Grizzled · 60+ plays
  69. Mille Fiori · 10+ plays
  70. Letter Jam · 20+ plays
  71. Waddle · 6 plays
  72. Karuba · 30+ plays
  73. Cooper Island · 7 plays
  74. Calico · 10+ plays
  75. Maquis · 10+ plays
  76. Tangram City · 4 plays
  77. That's Pretty Clever! · 30+ playsTwice as Clever! · 10+ playsClever Cubed · 7 playsClever 4Ever · 2 plays
  78. Ostia · 4 plays
  79. KLASK · 50+ plays
  80. Decrypto · 3 plays
  81. Art Society · 5 plays
  82. Rebel Princess · 8 plays
  83. Coffee Rush · 9 plays
  84. Miyabi · 10+ plays
  85. After Us · 4 plays
  86. Village Rails · 6 plays
  87. Spyfall · 60+ plays
  88. Orapa Mine · 5 playsOrapa Space · 2 plays
  89. My City · 30+ plays
  90. Captain Sonar · 7 plays

Among the stars

A website that shows the real distances in space. You scroll sideways from the Sun to Proxima Centauri, and every pixel is 500 km.

The project

Among the stars puts the solar system on one horizontal line. You start at the Sun and scroll past the planets, their moons, the dwarf planets and 17 spacecraft. The trip ends at Proxima Centauri, the nearest star to the Sun.

Every gap on the line uses the same scale of 500 km per pixel. That makes the trip 80 billion pixels long, and most of it is empty space. The site does not move objects nearer together, so you see how far apart they are.

The start screen of Among the stars: a yellow background, the title "Let Us Play Among the Stars" and a row of planet dots at the bottom

My first agentic project

This is the first project where artificial intelligence (AI) agents wrote most of the code. Before it, my view of AI for software was negative. The code I got from the tools was often wrong or of low quality, and the fixes cost me more time than the tools saved. Then a friend told me that the models had improved a lot. I started this private project to find out if that was true.

My friend was right. Claude Opus wrote code that I could review and merge, as long as the architecture and the rules were clear. At the start, the rules were not clear. I began with one instructions file and a folder of story files. When the agent did something that I did not want, the instructions had a gap, and I wrote a rule for it.

In the first 9 days, I changed the instructions 14 times. The new rules were about commits, code style, architecture patterns, and the accuracy of the data before the looks. After four weeks, I turned the steps that I repeated into skills: one to write a story as a GitHub issue, one to make a release and one to deploy. That taught me that the rules are part of the architecture, the same as the code.

The project also changed my role as an architect. Before this project, my work was a mix of engineering and architecture. With the agents, the code takes much less time to write. So I spend a larger part of my time on the design: how a project must work, and where its boundaries are. I use the same approach with my team at Moba, where the whole team works with the rules that we write down.

The project is far from perfect. It was my first project with agents, so the code still has many learning mistakes.

How I built it

The site is a SvelteKit app with one page. When the page opens, SvelteKit loads the facts for all 55 objects and calculates the position of each object on the line. After that, the page does no more distance math. The components get the positions and draw them.

I cut the work into stories. The agent wrote a draft of each story, and I corrected it until it described what I wanted. Then the agent built it, and I reviewed every pull request before the merge.

The server

The site runs on a virtual private server (VPS) at TransIP. A GitHub release starts the deploy: a workflow logs in to the VPS over SSH, builds the site and restarts it. The analytics run on a self-hosted Umami, without cookies.

I have years of experience with CI/CD, mostly with GitLab and Amazon Web Services (AWS). The strategy and the logic of a deploy pipeline were clear to me. GitHub Actions and a private VPS were new, and I did not know the details of these platforms. The agent saved me a lot of time, because I did not have to find out how each tool works. That made the switch to another platform easy. This site is a private project with low risk, so it was a good place for me to learn.

The saved time has a cost: I learned less about these platforms than I would on my own. As a developer, I think we must always know what runs on our servers. An agent can open a port or put a key in the wrong place, and I am the one who must see it. On a project with more risk, I take the time to learn the platform first.

A trip of 80 billion pixels

A browser cannot make an element that wide: Chrome and Firefox stop at about 33.5 million pixels. So the page itself does not scroll.

The scroll position is one number in Svelte state. Each object moves to its real position minus that number. The site does not render objects that are more than 2,000 pixels off screen.

The mouse wheel, a trackpad, a swipe and the arrow keys all change that number. The bar at the bottom flies you to a planet. A flight takes between 4 seconds and 1 hour. It speeds up, slows down and shows its speed as a multiple of the speed of light. The address bar keeps your place, so you can share a link to it.

A flight past the Moon and the Artemis II spacecraft, with the text "Traveling to Earth, 602 thousand km remaining, 15x speed of light" and a Stop button

Planets that turn

The planets turn on the same scale as the distances, from the real length of a day on each planet. Venus turns the other way, as it does in real life.

Each surface is a flat strip as wide as the circumference of the planet. The stylesheet moves two copies of the strip behind a round mask, so the planet looks like a globe. The axial tilt turns the whole disc, so Earth leans 23.4°.

The start of each spin comes from the clock. When a planet scrolls off screen and comes back, it looks as if it did not stop.

Earth on a dark blue background, with lines to the International Space Station and the Hubble Space Telescope

Exact numbers

All facts are in one JSON file. For each of the 55 objects, it has the radius, distance from the Sun, orbital period, day length, axial tilt and temperature. Every distance on the page comes from this file, to scale and with no exceptions.

The card of each planet shows these facts and links to its NASA page. Where science is not sure, the card says so. The tilt of Ganymede changes between 0° and 0.33° over the centuries, so the card shows the midpoint and tells you why.

The card of Earth: a photo taken from Apollo 17, the distance from the Sun, diameter, orbital period, solar day, temperature and axial tilt, and a "Did you know?" fact

Motorsports enthusiast

Car license
Apr 2009
Motorcycle license
Dec 2012
EU race license
Dec 2012
Vehicles owned
7
Circuits driven
5
Sim racing since
Apr 2011

Tracks driven

  1. Circuit Zandvoort
  2. TT Circuit Assen
  3. Nürburgring Nordschleife
  4. Nürburgring GP circuit
  5. Circuit Lelystad

Races visited

  1. Silverstone F1 British Grand Prix, 2010
  2. Spa-Francorchamps F1 Belgian Grand Prix, 2011
  3. Monza F1 Italian Grand Prix, 2011
  4. Hockenheimring F1 German Grand Prix, 2012
  5. Circuit Zandvoort DTM, 2012
  6. Circuit de Catalunya F1 Spanish Grand Prix, 2013
  7. TT Circuit Assen MotoGP Dutch TT, 2016
  8. Bahrain International Circuit F1 Bahrain Grand Prix, 2024

Vehicles owned

  1. Saab 900S '96
  2. BMW 328 E46 AC Schnitzer · '99
  3. Yamaha R6 '04
  4. Suzuki Swift '97
  5. Renault Zoë '13
  6. Peugeot e208 GT '20 Still owned
  7. Alpine A290 GTS '25 Still owned

Work experience

  1. Circuit Guide at Race Planet

    Sep 12 to Feb 16 Zandvoort, Netherlands

  2. Host / Motorsports Instructor at GP Elite

    Sep 12 to Aug 13 Zandvoort, Netherlands

Keys for code

Care to share your Porsche GT3 RS, or any other great car, on track? Then I invite you to trade the asphalt for the deep blue, for some high quality scuba diving together.

Or is your Ferrari 812 Superfast going as sideways as your digital project? In the pit box, I show you how to get the best performance out of your software. On track, you show me how to get the most out of that prancing horse.

I would love to spend more time on track and discover great cars, and what better way to say thanks than adding value to your business, or to your life outside it?

Sim racing

  • Playseat Trophy
  • G Pro wheel, shifter and handbrake
  • PS5
  • PS VR2
  • Gran Turismo 7

Favorite sim racing tracks

  1. Spa-Francorchamps
  2. Road Atlanta
  3. Mount Panorama
  4. Circuit de la Sarthe (Le Mans)
  5. Interlagos
  6. Circuit Gilles-Villeneuve
  7. Nürburgring Nordschleife
  8. Red Bull Ring
  9. Watkins Glen
  10. Circuit Zandvoort
  11. Trial Mountain
  12. Dragon Trail

Favorite sim racing cars

  1. Porsche 911 GT3 RS (992) '22
  2. Alpine A110 '17
  3. Alfa Romeo Giulia GTAm '20
  4. Aston Martin Valkyrie '21
  5. Audi RS5 Turbo DTM '19
  6. BMW M3 '03
  7. Ferrari 296 GT3 '23
  8. Ferrari 499P '23
  9. Ferrari 812 Superfast '17
  10. Honda NSX Concept-GT '16
  11. Lamborghini Huracán GT3 '15
  12. Lancia Delta HF Integrale Rally Car '92
  13. Maserati MC20 '20
  14. Mazda Roadster S '15
  15. Mercedes-Benz CLK-LM '98
  16. Nissan Silvia spec-R Aero (S15) Touring Car
  17. Pagani Zonda R '09
  18. Peugeot 205 Turbo 16 Evolution 2 '86
  19. Porsche 911 GT1 Strassenversion '97
  20. Porsche 911 GT3 R (992) '22
  21. Porsche 911 RSR (991) '17
  22. Porsche 917K '70
  23. Porsche 918 Spyder '13
  24. Porsche Cayman GT4 Clubsport '16
  25. Subaru WRX STI Isle of Man Time Attack Car '16
  26. Super Formula SF19 '19
  27. Toyota GR Corolla Morizo Edition '22
  28. Volkswagen ID.R '19