Curious by nature.
A world in motion.
I'm Philip, and I build for the web from Denmark. Curious by nature, in a world that never stops evolving — I ship production work, and I'm at my best when the problem in front of me is something nobody's solved yet.

How I got here.
I started in 3D, not in code. Blender first, then playing around in Unreal Engine 5, picking up art-side tooling, peeking into rendering pipelines and shader graphs, whatever the next rabbit hole was. Somewhere in there I got obsessed with the question every 3D artist eventually asks: how do you actually build a real-time experience, not just a still render? That question kept pulling me deeper, and it's still the loop I'm running today.
Somewhere in the middle of those years, I noticed the gap that bugs me to this day: artists fight their tools more than they should. The same five clicks, a hundred times a day. Blender lets you script it away with Python — so I did. One pie menu became another, and another, and now I've got eight addons live on SuperHive that solve real workflow problems for 3D artists. Not the kind of addons that demo well — the kind that make a Friday afternoon end an hour earlier.
The web came later, but it stuck. Once I'd shipped a site end-to-end — Postgres schema, API, frontend, deploy, monitoring — I realised the full-stack loop was the same loop as the artist loop: see a problem, build the thing that makes it go away. Just at a different scale.
Problem-solving is the through-line. I don't care whether the problem is a slow SQL query, a janky cloner setup in Geometry Nodes, or a UI that makes the user click three times to do one thing. I care that it's solved cleanly, shipped, and the next person who picks it up doesn't curse me.
AI is part of
the production workflow.
I no longer see AI as a separate tool added to software development. It is part of the production workflow. The differentiator is now how well an engineer can frame the problem, direct the system, and evaluate what comes back.
I work in tight feedback loops: scope the change, review the output, test the behaviour, inspect the real result, and feed failures into the next iteration. This increases speed without making quality inconsistent.
AI contributes to the implementation. I remain responsible for the architecture, security, verification, and the finished product.
Four principles, non-negotiable.
Not slogans — these decide what I build next and when I stop.
A half-written plan is not a product. I favour cutting scope and shipping a real thing over perfecting a spec nobody uses.
I can touch anything between a Postgres index and a pixel. Full-stack means full responsibility — auth, DB, API, UI, deploy, monitoring.
Postgres beats whatever dropped last week. I reach for proven tools unless there's a real reason to deviate.
Every site I ship targets Lighthouse 95+ across the board and works from a 390 px iPhone up. Accessibility is a shipping requirement.
Where my time goes.
- Full-stack product engineering — Next.js, TypeScript, Postgres, APIs
- AI-native production workflows — agents, feedback loops, testing, verification
- Creative and 3D tools — Blender, WebGPU, browser-based 3D