Work

European Audiovisual Observatory

Worked for the European Audiovisual Observatory as a contractor in 2016-2019. This project was built to help market analysis of the VOD services in Europe by scraping their catalogs of movies and TV series, trying to match those to enrich the data. The whole project is written in Python and uses a PostgreSQL database. Multiple reports were produced using this database.
This work helped the Observatory get partnerships with VOD services and analysis firms to get structured exports of VOD services catalogs. The project has flexible import and export mechanisms, with most of the process being automated. When I left the project, the database had about 350 000 movies from 250 VOD catalogs, which helped building the LUMIERE VOD service.
See on GitHub

Zeste de Savoir

This project is a French community website focused on knowledge sharing. This is one of my first big implication in an open-source project, which started when I was in high-school in 2014. The website is written in Python using Django and the frontend uses SASS.
I was the lead front developer for a time but then shifted to the ops side of the project. I took care of the whole infra for a while, wrote some Ansible playbooks to automate deployments and hosted backups in my personal infrastructure.
See on GitHub

Zazuko GmbH

Zazuko is a swiss company focused on linked data and knowledge graph. I helped moving their infrastructure to Kubernetes in 2019 and I am now working for them part-time.
Working for them taught me a lot about RDF related technologies. I did many contributions to OSS while working for them, including writing a Terraform provider for Harbor and a Alertmanager to Zulip bridge.

University work

I did some interesting projects while doing my CS degree, some of them are available online. This section lists them in chronological order, although I have omitted some of them, some because they were group assignements, others because they were not that interesting.
  • maque (2015, first year of university): A basic implementation of make in Bourne shell. It worked by building the dependency graph from parsing the Makefile and saving it as files in a temporary directory. It then built all the targets recursively if any of its dependencies was newer than the target file.
  • watch-clone (2017, second year of university): A C program that runs a command in loop and notifies when the output of that program changes. This was done for a system programming course, after being taught how to fork and handle signals. One interesting thing is that the assignement had an integration test suite, which I used and achived to have 100% code coverage with that test suite.
  • elayr (2017, third year of university): A program that reorganizes SVG shapes to take the least amount of space. This one was a group assignement, written in Lua and Rust. The Rust part handled file parsing and getting the bounding boxes of each shapes, while the Lua part handled the UI and the core of the layout algorithm. We were not allowed to use a XML library to parse the SVG file, so I did a simple XML parser using nom. I took care of the Rust part.
  • rust-simple-dht (2017, third year of university): A distributed hash table written in Rust with async I/O using tokio. Nodes talk between each others with a custom UDP protocol. Clients can put values on nodes, which are then replicated to all the nodes they know. When a client requests a value from a node, it asks peers for that value if it does not have it itself. This project was first intended to be written in C, but I wanted to try network I/O in Rust.
  • elixir-blockchain (2018, third year of university): A blockchain written in Elixir, with a proof of work mechanism. This project was done for an assignement in a distributed systems course.
  • mydump (2018, fourth year of university): A network analyzer written in C based on libpcap. It can dump live traffic with filters as well as pcap dump files. One thing I'm particularily proud of is that it handles nested protocols really nicely, e.g. it can decode multiple layers of VXLAN tunnels.
  • rust-arkanoid (2018, fourth year of university): An Arkanoid clone written in Rust using the SDL2 library.
  • smart-park (2019, fifth year of university): A parking management app for smart cities. This was a fairly broad group project which I lead. It consists of battery powered sensors, sending periodically the state of a parking spot via LoRaWAN. This data is ingested by a Go backend, fed into a PostgreSQL database. A web app written in Python let city administrators manage their parking spots, while an Android app (which I wrote for another assignement) let users find available parking spots.