Gerben Put Nederlands

Gerben Put

Software developer, Dutch Tax Administration

I build software that flies, travels and runs.

By day on systems at the Dutch Tax Administration. By night on my own projects: from the first design to the server they run on.

See the work Play the intro 3:08

Move across the portrait

Four projects I built and still run.

Below are the real sites, captured as they are online right now. Scroll through them, open them live, or read how they were made.

  1. DroneAIA pre-flight briefing for your dronedrone.gerbenput.com
  2. AtlasMy travel journal, as postcardstravel.gerbenput.com
  3. AI AcademieLearn how AI works, by doing itai-academie.gerbenput.com
  4. RealWorld IcelandAll of Iceland at 1:1 scale in Minecraftrealworld.gerbenput.com

DroneAI

A pre-flight briefing for your drone

Pick a place and your drone, and see at a glance whether you can fly: a single score from 0 to 100, the best flight windows for the next 48 hours and an outlook for the week.

  • Flight score calibrated to your drone model
  • Winds aloft, gusts, precipitation and visibility
  • GPS satellites and geomagnetic activity (Kp)

Next.js 16 · TypeScript · React · Open-Meteo · satellite.js · Leaflet · Docker

DroneAI: Screenshot of the live site
Scroll: this is the real site
  • Briefing for Rotterdam: flight score and the next 48 hours
    Briefing for Rotterdam: flight score and the next 48 hours
  • Weekly outlook, winds aloft and golden hour
    Weekly outlook, winds aloft and golden hour
  • The same screen in the light theme
    The same screen in the light theme

Atlas

My travel journal, as postcards

A personal travel journal: every trip a postcard with photos, a story and a pin on a spinning globe. With its own editor for adding and editing trips.

  • Interactive globe and map with photo pins
  • Editor with drag-to-sort photos, cover picker and videos
  • Photos resized automatically, GPS data stripped

Node.js · Express · TypeScript · PostgreSQL · MinIO · sharp · D3 · Leaflet · Docker

Atlas: Screenshot of the live site
Scroll: this is the real site
  • Home page with a draggable globe and passport stamps
    Home page with a draggable globe and passport stamps
  • In dark mode it becomes a night train
    In dark mode it becomes a night train
  • Map with a photo pin per trip
    Map with a photo pin per trip

AI Academie

Learn how AI works, by doing it

Three interactive learning paths for my AI workshops: one for developers, one for managers and one for scrum masters. Every topic has five levels from bronze to diamond, with real homework to do in your own job.

  • Three paths: developers, management and scrum masters
  • 100 levels and 48 homework assignments
  • Workshop mode with a live leaderboard and the Coffee Relay, an MCP game

Next.js 16 · TypeScript · React · PostgreSQL · MCP · nginx · Resend · Docker

AI Academie: Screenshot of the live site
Scroll: this is the real site
  • Learning path for developers
    Learning path for developers
  • Learning path for management
    Learning path for management
  • Learning path for scrum masters
    Learning path for scrum masters

RealWorld Iceland

All of Iceland at 1:1 scale in Minecraft

A Minecraft server with all of Iceland rebuilt metre by metre from satellite data: elevation, ground colours, rivers, waterfalls and buildings. With a custom plugin that generates the world as you play.

  • Elevation from ArcticDEM (2 m), colour from Sentinel-2
  • Waterfalls, geysers and fumaroles that actually work
  • Eighteen detail areas, blended into the whole country

Python · NumPy · pyproj · OpenStreetMap · Java 25 · Paper · Node.js · Docker

RealWorld Iceland: Screenshot of the live site
Scroll: this is the real site
  • RealWorld Iceland home page
    RealWorld Iceland home page
  • Places with renders from the world and their teleport command
    Places with renders from the world and their teleport command
  • Satellite map of all of Iceland with the featured places
    Satellite map of all of Iceland with the featured places

Apps for my own phone

Five Android apps for my own phone, designed and built by me. And a Discord bot for our friend group.

  1. Energietracker: Hourly energy prices: when to switch on.

    Energietracker

    Hourly energy prices: when to switch on.

    Today & tomorrow, per hour · Cheapest time blocks

    Kotlin · Jetpack Compose

  2. Uitgaventracker: Log spending in two taps, per category.

    Uitgaventracker

    Log spending in two taps, per category.

    Categories in two taps · Day, week, month

    Kotlin · Jetpack Compose

  3. Boodschappen: A grocery list, grouped by category.

    Boodschappen

    A grocery list, grouped by category.

    Grouped by category · Frequent items in one tap

    Kotlin · Jetpack Compose

  4. Spaarpotjes: Savings split into virtual pots, no bank link.

    Spaarpotjes

    Savings split into virtual pots, no bank link.

    Pots, goals & history · Optional Google Drive sync

    React · Capacitor

  5. DroneVault: Drone certificates, offline on your phone.

    DroneVault

    Drone certificates, offline on your phone.

    Fully offline, no permissions · PDF & PNG viewer

    Android

  6. Poro

    A Discord bot for our friend group.

    daily question · birthdays · quotes · date polls · outings · LoL teams · casino with fake coins only

    Node.js · discord.js · PostgreSQL

I use AI as a tool, and I set the rules.

I write the spec first: what it must do, and when it is done. An agent drafts a first version, I refine it, and the tests decide. Nothing ships without human review. And when it has to be, I simply write it by hand.

spec.mdI WRITE

  1. # Feature: Password reset
  2. ## Requirements
  3. - User requests a reset link
  4. - Link expires after 15 minutes
  5. - Max 3 requests per hour
  6. ## Acceptance
  7. - Expired link → 410 Gone
  8. - 4th request → 429 Too Many

PasswordResetService.javaAGENT DRAFTS · I REFINE

  1. @Service
  2. public class PasswordResetService {
  3. ResetLink request(User u) {
  4. if (limiter.count(u, HOUR) >= 3)
  5. throw new TooManyRequests(u);
  6. return links.issue(u, ofMinutes(15));
  7. }
  8. User redeem(Token t) {
  9. if (t.isExpired()) throw new Gone(t);
  10. return t.user();
  11. }
  12. }
Tests 8/8 passing ✓ all acceptance criteria met

HUMAN REVIEW: APPROVED

Gerben Put

About me

After my BSc in Computer Science at Rotterdam University of Applied Sciences I worked at ICT Group on business-critical systems for clients such as ProRail, Maasvlakte 2 and several Dutch water authorities. Since 2025 I’ve been working at the Dutch Tax Administration on the applications for motor vehicle tax.

Outside work I build things for myself, around my hobbies of drones and travel. I like doing the whole journey: design, code and the server it runs on.

Everything on this page runs on my own server, which I set up and secured myself. Every push to GitHub is live a few minutes later.

Career

  1. 2025–nowDutch Tax AdministrationSoftware developer · motor vehicle taxApplications for motor vehicle tax in an Agile team, on systems that serve millions of taxpayers.
  2. 2023–2025ICT GroupSoftware developerBusiness-critical systems for Maasvlakte 2, ProRail and water authorities in Rotterdam, Graafstroom and Limburg.
  3. 2023Rotterdam University of Applied SciencesBSc Computer ScienceSoftware engineering, databases, networking and project-based work.

Toolbox

Backend
Java · C# · Node.js · TypeScript · Python · PHP
Frontend
Angular · Next.js · React · HTML & CSS
Data & infra
PostgreSQL · Docker · Kubernetes · Linux · Coolify · GitHub
Design
Figma · Photoshop · Illustrator
Mobile
Kotlin · Jetpack Compose · React · Capacitor

The intro video

Three minutes, cut to the music, in full HD. The voxel portrait at the top of this page comes from it. Jump to a chapter or watch the whole thing.

0:00 / 3:08

Software developer at the Dutch Tax Administration, and in the evenings on my own projects.