Skip to content

Work

Client work and independent projects.

From product development around an existing inventory to reusable software and systems research.

Client work

  1. 2020–2023gwbo

    Yoot Portaal

    A portal for project records and document review.

    Existing clients submitted project documents mainly by email, with little visibility into what was missing or ready for review. I worked through the requirements with the client and built the project templates, data model, Laravel API and Nuxt interface. After my internship, I continued working on Yoot in a paid role until the handover in March 2023.

    Visual reconstruction of a Yoot Portaal project record with required evidence, phases, versions, statuses, owners and actions to open or upload material.
    Project record — required evidence, statuses and upload actions

    approx. 25 users · still in use when last confirmed in 2026

    • Laravel
    • MySQL
    • Nuxt
    • Vue

Independent projects

Product development

2026–presentIn development

Opvalo

Product development for second-hand media.

I’m building Opvalo with Benjamin around an existing inventory of second-hand CDs and DVDs that needs a faster way to be inventoried, assessed and sold. Current development starts with fast photo intake and a model that distinguishes lots, releases and physical copies. From that foundation, we are developing product identification and decisions about further processing.

  • Kotlin
  • CameraX
  • Android

Software

2026–presentPublished on npm

scheme-tokens

Design token compiler.

scheme-tokens processes design tokens with references, modes and layers. The compiler validates the structure, resolves references and produces the same output for the same input.

  • TypeScript
  • JSON Schema
  • Vitest
  • CSS custom properties
View scheme-tokens on GitHub. Opens in a new tab
From tokens to CSSAPI
Tokens
defineTokens()Token graph
compileTokenGraph()Compiled scheme
exportCssVars()CSS variables
defineTokens()compileTokenGraph()exportCssVars()

Output: CSS variables

  1. 2026–presentBeta

    Snap Motion

    Interaction library for spatial UI surfaces.

    Snap Motion builds carousels, galleries, sheets and other interruptible surfaces on a shared framework-neutral core for geometry and state. The Vue layer handles DOM integration and interaction.

    • TypeScript
    • Vue
    • Motion
    • Playwright

    Used on maikel.site for media galleries and mobile navigation.

  2. 2023–presentPre-alpha

    Dekzer

    Pre-alpha desktop app for a trustworthy music library.

    The Electron and Vue interface works with a Rust service and SQLite for sources, indexing, search and durable library state. The current V0 runs from source on Windows and is not yet ready for live DJ use.

    • Electron
    • Vue
    • Rust
    • SQLite

Research

  1. 2025–present

    SeqWire

    Shared memory without partially updated state.

    Explores how multiple runtimes can share the same state through shared memory without any of them observing a partially updated value.

    • TypeScript
    • SharedArrayBuffer
    • AudioWorklet
    • WebAssembly