Skip to content

Selected work

Things I shipped

Six projects where the interface was the product. Each one lists the role, the stack and the number that actually moved.

Selected work

Things I shipped

Six projects where the interface was the product. Role, stack and the number that actually moved.

60fpson a 5-year-old laptop

Halo Editor

2026

Lead front-end

A node-based shader editor that runs the graph on the GPU. The hard part was keeping the canvas at 60fps while React owned the panels around it.

  • React
  • WebGL
  • Rust/WASM
+38%trial-to-paid

Cadence

2025

Creative technologist

An onboarding flow rebuilt as one continuous scroll scene. Interaction did the explaining that three tooltips used to fail at.

  • Next.js
  • Framer Motion
  • GSAP
1.2Mpoints, no jank

Meridian Globe

2025

Front-end

A real-time data globe rendering a million-plus points. Instanced geometry and a custom frustum cull kept it interactive on a phone.

  • Three.js
  • TypeScript
  • GLSL
11 appsone design system

Ostara OS

2024

Design engineer

A component system shared across eleven internal tools, built so a product manager could ship a page without a designer in the room.

  • React
  • Radix
  • Tokens
4.7★App Store

Slow Radio

2024

Interaction lead

A generative visualiser that reacts to whatever is playing, drawn on a canvas synced to the Web Audio analyser at frame rate.

  • Svelte
  • Web Audio
  • Canvas
9 daysconcept to demo

Third Signal

2023

Prototyper

A pitch prototype that had to feel real in under two weeks. It landed the round, then became the actual product.

  • React
  • R3F
  • Zustand

How I work

Prototype early, measure always

The order matters. Building the risky part first is how you find out in week one, not week nine.

01

Prototype the risk

The scariest interaction gets built first, rough, so we learn whether it is even possible before the plan depends on it.

02

Design in code

No pixel-perfect mockup of a thing that moves. The design is the running build, reviewed in the browser.

03

Budget performance

A frame budget and a bundle budget from day one, checked on real hardware, not just the machine I built it on.

04

Systematise

Once it works, it becomes components and tokens so the next feature is cheaper than this one was.

05

Ship in slices

Behind flags, in small pieces, so the risky thing reaches real users before it is load-bearing.

06

Hand over

Docs, a walkthrough and a month of questions answered, because a clever build nobody understands is a liability.

Contact

Tell me the problem

What you’re building, when it needs to exist, and roughly the budget. All three, ideally. The third one saves us both a week of dancing around it.

Work

hey@vesper.dev

Based

Amsterdam · remote

Code

github.com/vesper

Writing

vesper.dev/journal