This page contains some of my public work as a developer advocate at Element and is not exhaustive. I previously worked as a developer, enterprise architect, and internal evangelist (yes, that's a thing!)

Frontend redesign

I redesigned and reimplemented the website to actually speak to specific people. When I started working on it, it was a typical engineer-designed website: trying to enthusiastically shout everything at once to everyone, without any form of prioritisation.

In addition to a confusing message, the website had accumulated tech debt. When redesigning the website I took into consideration not only who was the audience, but also who would maintain the website and the time they had to do so.

Read about the whole case study on the blog.

  • html / css
  • javascript
  • zola ssg


matrix-js-sdk-tutorial The YouTube logo

Bots can be very important for online communities. They automate tasks, they bring fun in the discussion: in short, they allow communities to get a tailor-made workflow for them.

In the matrix-js-sdk tutorial, I show people how to build a Matrix bot that expands acronyms using, in plain javascript, in 15 minutes.

Watch the tutorial on YouTube.

  • javascript
  • node


Understanding Synapse Hosting The YouTube logo

Containers can look overwhelming when you're not used to it… and they are! You need to understand a few concepts before you're comfortable with them, but they allow flexible, sturdy deployments.

In this tutorial I teach the basics of Synapse hosting, and how to start on the right foot with a future-proof architecture, following the best practices in the field.

Watch the tutorial on YouTube.

  • containers
  • docker compose
  • traefik

Deploying Synapse with Ansible The YouTube logo

What screams "sturdy" louder than "reproducible and scalable deployments"? Ansible is a powerful tool that allows homelab hackers to set-up disposable development or staging environments that matches what they have in production. It's also one of the classic tools in the Ops/SREs toolbox.

In this tutorial, I walk people through deploying and maintaining a Synapse set-up with Ansible.

Watch the tutorial on YouTube.

  • containers
  • ansible

An OIDC Playground with Synapse and Authentik The YouTube logo

Ansible allows sturdy deployments, and makes it easy to deploy several services across several machines. As your platform grows, it becomes increasingly cumbersome to remember different passwords for different applications, or dangerous not to.

In these tutorials we deploy Authentik, a flexible OpenID Provider, make Synapse trust it, and then perform account reconciliation for existing accounts. At the end of the tutorials, people have a SSO-enabled Synapse server with account reconciled.

Watch the tutorial about the deployment and the one about the accounts reconciliation on YouTube.

  • containers
  • ansible
  • openid connect (oidc)
  • python
  • rest apis

Deploying your own Matrix bridge to Discord The YouTube logo

One of the promises of Matrix is the sovereignty of your infrastructure. Whether your community already exists on Discord and your want to give it a safe place on Matrix without a big bang, or you want to leave your community to participate via Matrix or Discord to their liking, this tutorial shows you how to host your own Matrix bridge to Discord.

Watch the tutorial about the deployment

  • containers
  • docker compose
  • mautrix-discord