Projects

Vulnerable-by-design LLM application

My MSc thesis. An agentic LLM application built to be insecure, with a recipe and a fix for each weakness.

NestJS, Ollama, Docker, OWASP LLM Top 10

Full exploitation chain

From a stored XSS to a shell on the host, through log poisoning and a Docker container escape.

XSS, Log poisoning, Docker, Linux

Nekko

A free adoption platform for animal shelters, run as a French non-profit. I built the app, the API and the infrastructure.

React Native, NestJS, PostgreSQL, Docker, Nginx

Minecraft servers

Minecraft servers with more than 2,000 unique players. I ran the infrastructure behind them for several years.

OVH, DDoS protection, Backups

R-Type

A networked multiplayer remake of the arcade shooter R-Type, built on a custom game engine.

C++, CMake, UDP

Whanos

A DevOps infrastructure that builds and deploys any application pushed to a Git repository.

Docker, Jenkins, Ansible, Kubernetes

AREA

An IFTTT-style automation platform connected to more than thirty services. I wrote the backend that runs user-defined workflows across them.

NestJS, React, OAuth2

Archive

Security

  • BurpHands-on security challenges on TryHackMe.

Personal

  • JobtrackerA personal app to find job offers and keep track of applications.Python

Low-level and Unix

  • BSQFinds the biggest square that fits in a map full of obstacles.C
  • NavyBattleship between two terminals, where the two processes talk using only UNIX signals.C
  • MinishellA small UNIX shell that runs commands and manages the environment.C
  • 42shA more complete shell, with pipes and redirections.C
  • CorewarAn assembler that compiles champions to bytecode, and a virtual machine where they fight over memory.C
  • ASM minilibcFunctions of the C standard library rewritten in assembly, built as a shared library.x86-64 assembly

Networking

  • ZappyA multiplayer network game: a server, a graphical client, and AI players that have to survive and level up.C, C++

Graphics and games

  • ArcadeA gaming platform that loads its games and graphics libraries at runtime as shared libraries.C++
  • RaytracerRenders 3D scenes described in a configuration file.C++

Algorithms and AI

  • DanteGenerates mazes, then solves them.C
  • Lem-inMoves a colony of ants through a graph to the exit in as few turns as possible.C
  • Need4StekDrives a car around a track in a simulator, using its lidar readings.C
  • GomokuAn AI that plays Gomoku (five in a row) against other bots.C++
  • TradeA trading bot that buys and sells on a simulated market.Python

Functional programming

  • WolframElementary cellular automata, like rule 30 and rule 110, drawn in the terminal.Haskell
  • Image compressorReduces the colours of an image with k-means clustering.Haskell
  • PandocConverts documents between XML, JSON and Markdown, with a hand-written parser.Haskell

Maths

  • GroundhogAnalyses a series of temperatures to spot trend switches and the weirdest values.Python

DevOps

  • PopeyeA voting application and its services, containerised with Docker Compose.Docker
  • BernsteinContainer orchestration: deploying and coordinating several containerised services so they run on a generic infrastructure.