I'm a game developer in Helsinki. I make games in Unity and write C# libraries and Unity Editor tools for them. I also maintain agent skills for Unity projects and a package that keeps them in sync across a team.
- Working on an unannounced game in Unity.
- Building agent-skills-sync-unity, a Unity Editor package that installs a project's locked agent skills for every contributor.
- Taking DisposableEvents from beta to 1.0.
| Project | What it does |
|---|---|
| DisposableEvents | Pub/sub events that return an IDisposable subscription. Disposing the handle unsubscribes, so there is no -= to forget. On NuGet. |
| Closures | Closure structs that capture state and a delegate without allocating on the heap. Benchmarked, on NuGet, and usable in Unity. |
| HCommons | Pooled buffers, math helpers and result/option types for .NET. On NuGet. |
| UnityLayerRemapper | Remaps layer indices across a Unity project's scenes, prefabs and assets. It shows every change before it writes anything. |
| UnityTypeSerializer | Lets the Unity Inspector store System.Type references, including constructed generic types. |
| InspectorEvents | Adds serialization options for events in the Unity Inspector. |
| mutation-designer | A browser app our designers use to write and compare upgrades for a roguelike FPS, so the definitions no longer live in a notepad file. |
Finnish Game Jam, part of Global Game Jam:
- 2026: Mascard
- 2025: Bublé
- 2024: Ringmaster



