I didn't start in code. I started in design — visual communication, then web design. The turning point was simple: I didn't just want to design the tools, I wanted to build them myself too. So I taught myself to ship whole apps end to end, and never stopped widening the stack from there. Twenty-ish years in, that itch hasn't faded — if anything it's gotten worse.
Today I'm a frontend-first engineer who's comfortable across the whole stack — React, Next.js, TypeScript and React Native on the front (and Svelte/SvelteKit whenever I get the choice — I love it and reach for it over React when I can); Node, GraphQL and a serverless AWS setup behind it. But the part I care about now isn't shipping one more feature. It's building the platform other people ship features on.
That shift — from building features to building the foundations teams build on — is where I do my best work: setting technical direction, smoothing the path for design and product, and keeping systems clean and hard to break.
Sitting in every seat is my unfair advantage — pixels, components, APIs, pipelines, release management, and always the user at the end of it. So when I build a foundation, I build it understanding what each of those people actually needs from it, not just what looks right on the architecture diagram.
I'm not the person who romanticises hard problems — I'm the one wired to get the thing done, and to stay calm when prod is on fire: sleeves up, fix it, move on. I hold strong opinions, loosely: I'll defend a decision hard, then drop it with genuine joy the second someone shows me better. I like clean code and teammates who laugh at work, and I care less about titles than about whether the thing we're building is any good.
AI agents are part of how I work now — at the day job, but also the reason I can build way more cool stuff on the side, way faster than before.
Beyond the day job, I build an ambitious, interconnected set of systems for the love of it — where I own every architectural call. Here's the shape of it.
SuperPlex started as a simple itch — I want a custom "super" Netflix for my house — and turned into the most happily over-engineered thing I've built. Not just films and series, but live TV on every screen in the house, music, photos, ebooks and manga: every kind of media, one coherent experience, fully self-hosted.
The interesting part isn't the playback — it's the platform I designed around it. A custom recommendation engine fed by my own source-of-truth database; watch history unified across every service I use, not just my own server, through a single hub; a legacy cataloguing app of mine folded into the same schema. It runs across a few single-purpose machines with an offsite replica in France for backup — and I designed the whole topology, data flow and failure modes end to end, on paper, before writing a line of build code.
And I designed it for the failure modes, not just the happy path — every backup path has a freshness check, because silence shouldn't read as success. The same way I'd architect a platform at work, just for the love of it.
Shani is the long game: a decade of personal apps I built from 2009 and maintained until 2014 (and still using) — collections for games, manga and media, a TV-tracker-slash-todo, a custom dynamic browser homepage — all still running on the PHP/MySQL I never came back to. The plan is to drag every one of them into the present: not just a modern rebuild, but a full suite — web, mobile and desktop — for each.
What makes it a system and not a pile of rewrites is the shape. Every project shares two libraries of mine: al-core, which turns each API's entities into typed class instances and hides all the GraphQL behind plain method calls — the same instances whatever the platform, web, mobile or desktop, with the platform-specific bits (storage and the like) handled inside — and yui-library for the UI, with its web and React Native equivalents. Because al-core is reusable, one client can talk to everything. That's the keystone: LSDA — Le Seigneur Des Applications (The Lord of the Applications) — a single admin app that connects to every API in the nebula and runs the whole thing from one place, instead of a dozen scattered back-offices.
It is around 21 apps across six projects, all leaning on those same two libraries — desktop builds reuse the web (Svelte + Tauri), mobile is React Native, and al-core and yui hold it together across all three. Most of it is still ahead of me — three apps and the libraries are live on staging so far — but the architecture is set. It is the clearest picture of how I think about platforms: build the foundation once, then ship features cheaply on top — I even built a small bootstrap tool that scaffolds a new app in the ecosystem from the canonical setup, shared libraries and all.
The resident-facing mobile experience for a connected-living platform — a single React Native codebase shipping as 70 white-label apps across iOS and Android, on a serverless AWS backend.




An out-of-home ad sales solution that enables you to identify the best available inventory and respond to client requests quicker than ever before.


Website for car system to replace your radio keeping original steering wheel remotes working.
