Iris BakkerSoftware Engineer · Rotterdam, Netherlands
Iris Bakker

Hi, I’m Iris Bakker

Software Engineer

I build the parts
other teams build on.

I work on the layer most people never see: the components, tokens and map primitives that a hundred other screens are assembled from. Eight years of it, mostly in geospatial and newsroom tooling, where the interface has to stay legible while the data underneath it is late, partial or wrong.

Taking on work from March

EU citizen, remote or hybrid

01 · Experience

Halden Systems

Senior Frontend Engineer

Mar 2022 - Present

Halden sells basemaps and routing to logistics companies. I own the map interface layer: the style editor customers use, the component library our four product teams share, and the render pipeline that turns both into something a browser can hold at sixty frames.

  • Rebuilt the style editor on MapLibre and PMTiles, cutting the tile bill by about a third by serving one range-requested archive instead of forty million small objects.
  • Wrote the token pipeline that publishes one Figma file to CSS, Swift and Kotlin. Colour and spacing stopped being a code review argument.
  • Took the shared component library from a folder nobody trusted to a versioned package with a written deprecation policy and visual regression on every PR.
  • Introduced a contrast audit that measures type against the map tiles actually rendered underneath it, which is the only measurement that means anything over a basemap.
  • MapLibre GL
  • PMTiles
  • TypeScript
  • React
  • Design tokens
  • Style Dictionary
  • Storybook
  • WebGL
  • Playwright
  • Chromatic
Ravelstone Media

Frontend Engineer

Aug 2020 - Feb 2022

Interactive desk at a daily paper. Election nights, budget explainers, one flood map that had to be right before it was pretty.

  • Svelte
  • D3
  • TypeScript
  • Canvas
  • GeoJSON
  • Rollup
  • CSS
Coastline Energy

Frontend Developer

Jan 2019 - Jul 2020

Monitoring dashboards for offshore wind. Thirty operators watching four hundred turbines, mostly at night.

  • React
  • WebSockets
  • TypeScript
  • D3
  • Node.js
  • Sass
Northgate Studio

Junior Developer

Sep 2017 - Dec 2018

A six-person agency. Museums, festivals, one municipality, and whatever else came through the door.

  • JavaScript
  • Vue.js
  • PHP
  • Sass
  • WordPress
  • Accessibility

Education

Rotterdam Institute of Applied Computing

2014 - 2017

BSc Computer Science

Zuidkust Academy

2021

Certificate in Cartographic Design

02 · Projects

Meridian

used by 40+ newsrooms

A map style editor that runs entirely in the browser. Load a vector tile source, push colour and label rules around, and export a style JSON any MapLibre map can read. There is no account and no server: the tiles are range-requested straight from a PMTiles archive, so a newsroom can point it at their own bucket and never send a request to me.

  • MapLibre GL
  • PMTiles
  • TypeScript
  • Svelte
  • WebGL
  • Web Workers

Tideline

12K readers a month

Tide and current charts for the Dutch coast, as a PWA that works with no signal, because the places you need it are the places without one. Two years of predictions ship in the install, so the first load is the last network request it needs to make.

  • Astro
  • Service Worker
  • IndexedDB
  • Canvas
  • TypeScript

Cadence

open source

A design token pipeline that reads a Figma file and writes CSS custom properties, Swift and Kotlin, with a diff that tells you which components a token change will actually move. Built at Halden, extracted once it stopped being specific to us.

  • Node.js
  • Figma API
  • Style Dictionary
  • TypeScript
  • CSS

Halftone

open source

Ordered dithering in the browser, compiled to WebAssembly: eight classical matrices and a colour quantiser, fast enough to run on a video frame. Written mostly to understand Bayer thresholds properly, then kept because other people wanted it.

  • Rust
  • WebAssembly
  • Canvas
  • Web Workers
  • TypeScript

Nocturne

open source

A palette generator for dark interfaces that refuses to emit a pair that fails WCAG. Works in OKLCH so lightness means what you think it means, and reports the contrast it achieved rather than the contrast you hoped for.

  • TypeScript
  • OKLCH
  • Accessibility
  • CSS
  • Vitest

03 · Stack

Languages
TypeScript · JavaScript · Rust · Python · SQL · GLSL
Interface
React · Svelte · Astro · Web Components · Lit · CSS · Container queries · View transitions · Internationalization
Design systems
Design tokens · Style Dictionary · Storybook · Figma API · Visual regression · Component API design
Maps & graphics
MapLibre GL · Vector tiles · PMTiles · D3 · WebGL · Canvas · GeoJSON · PostGIS
Accessibility
WCAG 2.2 · Screen reader testing · Keyboard interaction · Reduced motion · Contrast auditing
Testing
Playwright · Vitest · axe-core · Chromatic · Lighthouse CI
Behind it
Node.js · Deno · Fastify · PostgreSQL · Redis · S3 · Terraform · GitHub Actions

04 · Contact

hello@irisbakker.dev

Taking on work from March

EU citizen, remote or hybrid

© 2026 Iris Bakker

Iris Bakker’s résumé is at irisbakker.dev/resume.