I am a freelance web developer from Amsterdam, currently based in London. For over 15 years I have been building interactive experiences, often leaning towards the creative-tech side. I particularly enjoy thinking about software architecture, demystifying performance pitfalls, and figuring out the smoke and mirrors behind complex graphics.
I prototyped and built 3 games that were accessible on a livestream with 100.000 concurrent viewers/players through a Twitch extension. The work involved physics, anti-cheat detection, complex dynamic rigging animations and armature systems, and lots of fun with graphics.
Stack: TypeScript, React, Next.js
As a UX Engineer it was my responsibility to rebuilt the new DeepMind website from scratch together with 2 other developers. The goal was to ship code really close to the metal with a focus on performance and scalability. We put the emphasis on HTML and CSS, and made an attempt to consciously have JavaScript as an "afterthought". We also used a Python-backed CMS.
Stack: HTML, CSS, TypeScript, React
HeineQuest was a "Pokemon Go" style game where users could earn points, solo, or as a team, by roaming around the world. I was tasked with building a data-architecture that allowed us to spawn collectibles all over the globe. Now that's BIG data.
Stack: Three.js, r3f, TypeScript, React
We developed an exclusive mobile experience that takes users on a journey where they must follow their heart, interacting with scenes from the movie, with the choices they make determining which character they connect with most.
Stack: HTML, CSS, TypeScript, React
Sudan is home to more pyramids than anywhere else in the world. But few people know Sudan even has pyramids at all. Through an immersive 3D site and WebXR experience you can uncover the unique pyramids of Meroë, wherever you are.
Stack: HTML, CSS, TypeScript, WebGL, Three.js
I am creating a startup in the stationery space.
I worked on the Google DeepMind site for their big Gemini 2.0 launch!
I delivered a interactive prototype in 2 days for a pitch, with nothing but a couple images from a brainstorming session to go off. The result was a semi-procedural 3d object that would evolve based on the user's interactions, written in TypeScript with Three.js.
Previous roles available on request.