Hi, I'm Matt
Freelance web engineer from France.

Hi, I'm Matt
Freelance web engineer from France.

I write web software, and now and then a native app, for people who need one thing done well rather than a platform. For associations running on almost nothing or fully fledged teams with a real deadline: I work out what the job actually requires, and keep the stack small enough for your own team to maintain.

SKILLS

frontend
  • Vue.js / Quasar
  • React
  • AngularJS
  • Electron / Tauri / Cordova
backend
  • Laravel / Lumen
  • Django
  • Firebase / PocketBase
databases
  • PostgreSQL
  • MySQL
  • SQLite
  • Multi Tenancy / Sharding
devops
  • Docker
  • GitLab CI
  • Bash scripting
  • Security / Privacy
tools
  • Git / Gitlab
  • Jetbrains
  • Slack / Mattermost
  • Obsidian
technology
  • PWA
  • WebRTC
  • WebSockets
  • OAuth2
  • Geolocation & Routing

PROJECTS

SOVEREIGN STACK

Not every organisation needs a cloud provider. For a person, an association or a small organisation that publishes a website, shares files, chats with its team or runs a couple of internal tools, one well-run server does the job. The data stays on it, the domain points at it, and the monthly bill is a server bill rather than a subscription per seat.

Two pieces do most of the work. Pangolin is the front door: it terminates TLS, keeps every service behind a single login, and holds a tunnel open to the machines that stay at the office. That is roughly the job Cloudflare Access and Cloudflare Tunnel do for the teams that pay for them. Beszel watches the server itself, processor, memory, disks and containers, and sends its alerts to the team chat rather than a Datadog dashboard.

Then come the tools people actually open. Mattermost in place of Slack. Nextcloud in place of Drive, OneDrive and the shared calendars that come with them, with or without end-to-end encryption depending on whether the server itself must be unable to read anything. Static files when static is enough, containers for the rest, and a machine hardened before anything else goes on it: key-only access, a firewall that denies by default, automatic security updates, fail2ban.

When the budget is the constraint

Unraid is the other option, for organisations that run on almost nothing. It installs on second-hand hardware, keeps a minimum of redundancy across disks of different sizes, and grows when you add one. Not a data centre, but a way to reuse what you already own instead of renting storage by the month.

What it covers

Taken together: real-time chat and file storage for the team, calendars and contacts, a single authenticated door for every internal tool, certificates and TLS handled, monitoring that actually reaches someone, and hosting under European law. No GAFAM account anywhere in the chain, no third-party request in the page, no cookie banner, and no analytics reporting to someone else.

Photo by Mati Flo on Unsplash

SCANLINES SHOW CONTROL

SCANLINES is a collective or Drum and Bass DJs based in Lyon, France. They organize events and parties in the region and beyond. To make their shows more immersive, they needed a software that could synchronize the lights, the visuals and the music. After studying their setup, I created a software that allows them to do just that: with a simple and intuitive interface that mimics their DJ software, they can now mark and trigger OSC events to control other software and hardware.

Analysis

After querying the specifications of the software and harware they used, I got in touch with a Canadian developer who had already worked on a similar project to extract metadata about the songs playing (titles, artists). We exchanged ideas and he provided me with a few tips to export more data from his C# software, and push it at a very high rate to an UDP listener on the network.

Creating the tool

With the data provided (title, artist, and playhead timecode for every deck), it was time to create the software. I chose to use Electron for its cross-platform capabilities, and Vue.js for its simplicity and reactivity. The electron 'main' process listens to the UDP packets and updates the 'renderer' process with the new data. The renderer process then updates the interface and triggers the appropriate events when a specific Cue point for a song is reached.
Events are defined directly in the UI, with ability to customise the OSC message sent: what device will the message be sent to, and what are the parameters (light intensity, trigger a Resolume video clip...). We pushed things further in a second version by adding a detection of the Hot Cues already set in the DJ software, and a way to trigger them from the interface. Using this system, the artists are now able to prepare most of the light and video show directly in their DJ Software in the same time they do their mixing preparation.

The software is now used in every show of the collective, and has not needed any update in the last two years !

GYOZA

Gyoza is a custom web application developed for HFSPlay, an association dedicated to the preservation and maintenance of arcade hardware. The tool is built on a modern architecture combining PocketBase (a lightweight Go-based backend with REST API and WebSocket support) and Quasar Framework (a Vue.js-based UI framework), delivering a smooth, responsive user experience. Gyoza provides centralized management of a heterogeneous inventory (arcade cabinets, spare parts, PCBs, tools, etc.) with support for rich metadata (photos, comments, statuses, timestamps) and a detailed task history for each item.

Individual asset tracking

Each asset in the system can be associated with one or more maintenance tasks, complete with status tracking, due dates, assignees, and activity logs. A built-in dynamic QR code generator allows physical labeling of items: scanning a QR code brings users directly to the corresponding item page, accessible from both mobile and desktop devices. This integration significantly improves on-site accessibility and traceability for technical teams.

Always up to date

The app leverages real-time data synchronization via WebSocket, powered by PocketBase, to ensure instant consistency across all connected clients. This enables efficient multi-user collaboration with minimal latency or conflicts. Gyoza is designed to be self-hosted, secure, and easily extensible, serving as a practical example of a lightweight, real-time, tool tailored for a technical nonprofit use case.

VALUES

KEEP IT SIMPLE

Not every project needs an auto-scaling infrastructure, CDNs, or AI enabled chatbots. Trends and industry standarts comes and goes, and you may not need the latest and greatest to solve your problem. Let me help you find the right balance between cost, performance and maintainability.

KEEP IT YOURS

With so many new services available to developers, it's tempting to delegate all or part of your stack and tools to third-party services for what seems like a reasonable fee. But don't overlook your ability to self-host: a whole lot can still be achieved today with a simple server and a few well-chosen services. I can help you find the right tools, and make sure you keep control over your code, your data and your costs.

CODE FOR PEOPLE

Code is not just for computers. It's for you, your team, your successors. It's for the people who will maintain it, the people who will use it, the people who will pay for it. I do my best to write code that is easy to read, easy to maintain, and easy to understand. I code to solve actual people problems, not for a technical showoff.

GET IN TOUCH

If you have a project in mind, describe it in a few lines and I will tell you whether I am the right person for it. If I am not, I will say so. Email is the quickest way.