Motion is load-bearing
Animation is not the polish pass. It is how an interface explains what just happened, where a thing went, and whether it worked. I treat it as part of the logic, and I test it like logic.
Interface engineer / Copenhagen
Ten years of frontend work, most of it on products where the motion is the product: trading terminals, field tools, and instruments people use for hours at a time. I write the animation layer, and then I write the docs for it.
Three small things, written out and running. The code on the left is the code driving the panel on the right, not a screenshot of it.
// 16 tiles, out from the middle gsap.from(".tile", { scale: 0.4, y: 40, duration: 0.6, ease: "back.out(2)", stagger: { each: 0.05, from: "center" } });// function values place each dot gsap.set(".dot", { transformOrigin: "50% 62px", rotation: (i) => i * 60 }); gsap.to(".dot", { rotation: "+=360", duration: 4, ease: "none", repeat: -1 });// the ease does all the work gsap.to(".ball", { y: 96, duration: 1.1, ease: "bounce.out", repeat: -1, repeatDelay: 0.5 });
Interface lead / 2023 to now
The motion layer for a trading terminal, where a late frame is a real cost. I own the animation system, the perf budget, and the documentation that stops the two drifting apart.
78msInteraction latency at p95, down from 210ms

Contract / 2022
An offline-first field app for marine surveys. Built for a boat with no signal, one hand free, and salt water on the screen. Every interaction has a wet-glove fallback.
40miOffshore, full function, no connection

Open source / maintained since 2020
A step sequencer that runs in a browser tab. Audio scheduling on a worker, drawing on a canvas, and a UI that stays honest about what the clock is doing.
3msScheduling jitter, worst case
Animation is not the polish pass. It is how an interface explains what just happened, where a thing went, and whether it worked. I treat it as part of the logic, and I test it like logic.
I develop throttled, on the oldest device the product supports. What feels effortless on a laptop is frequently unusable three years down the hardware curve, and that is the device most people are holding.
An animation system nobody understands gets replaced within a year. I leave behind the reasoning, the constraints, and the failure modes, so the next person can argue with the decision instead of guessing at it.
I take on two contracts a year and I am free from October. Tell me what you are building and what is going wrong with it.
[email protected]