I'm a Principal Software Engineer at LottieFiles, where I own Creator, a browser-based animation editor. I build the TypeScript editor and canvas experience on top of a Rust and WASM rendering engine, and a large part of my job is keeping a very heavy canvas feeling fast.
My specialty is visual editors, canvas and product UIs, and component systems that other engineers build on. I think about interfaces in the wide sense: the things people click in the browser, but also the APIs, protocols and engine boundaries behind them.
I also go deep on tooling and AI agents. I build custom agent harnesses and care a lot about context and memory management, MCP integrations, compilers and AST tooling, CLIs and SDKs.
Before LottieFiles I worked at Stately, where I built the machine visualizer, the inspect protocol and editor features that keep statechart diagrams and TypeScript in sync, alongside core work on XState. Before that I was at Epic Games, where I maintained the Epic UI design system and helped design Epic's TypeScript SDK, and at Futurice, where I led the rebuild of IS and HS, two of the biggest news sites in Finland.
I speak at conferences about visual editors, state machines and UI architecture, and my appearances include live streams building editor features at Stately.
I'm based in Helsinki and comfortable working US hours.
Selected work
LottieFiles Creator
A browser-based animation editor. I own the TypeScript editor and canvas UI that sit on top of a Rust and WASM rendering engine.
Stately.ai
Visual tooling for XState: the machine visualizer, the inspect protocol for observing live applications, and editor work that keeps diagrams and TypeScript in sync.
zast
Schema-based AST matching for TypeScript, in the spirit of Zod. Describe the shape of the code you are looking for instead of walking the tree by hand.
Canopy
A local-first AI workspace with branching chat, a document editor and a companion agent. My playground for agent harnesses, context and memory management.