Halo Editor
2026Lead 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
Selected work
Six projects where the interface was the product. Each one lists the role, the stack and the number that actually moved.
Selected work
Six projects where the interface was the product. Role, stack and the number that actually moved.
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.
Creative technologist
An onboarding flow rebuilt as one continuous scroll scene. Interaction did the explaining that three tooltips used to fail at.
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.
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.
Interaction lead
A generative visualiser that reacts to whatever is playing, drawn on a canvas synced to the Web Audio analyser at frame rate.
Prototyper
A pitch prototype that had to feel real in under two weeks. It landed the round, then became the actual product.
How I work
The order matters. Building the risky part first is how you find out in week one, not week nine.
The scariest interaction gets built first, rough, so we learn whether it is even possible before the plan depends on it.
No pixel-perfect mockup of a thing that moves. The design is the running build, reviewed in the browser.
A frame budget and a bundle budget from day one, checked on real hardware, not just the machine I built it on.
Once it works, it becomes components and tokens so the next feature is cheaper than this one was.
Behind flags, in small pieces, so the risky thing reaches real users before it is load-bearing.
Docs, a walkthrough and a month of questions answered, because a clever build nobody understands is a liability.
Contact
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