About me

I am a functional programmer with a strong interest for statically-typed languages and distributed systems. I believe in proper domain modeling that makes illegal states impossible to represent, thoughtful error management, attention to performance, and thorough testing.

I’ve been programming since the age of 13, have tried many different languages (Ruby, Javascript, Clojure, ReasonML, Purescript…) and have been programming professionally for 6 years, including more 4 years of commercial Scala experience. I like to play with Haskell on the side.

I enjoy exchanging knowledge with others. I have participated in various conferences and meetups.

Experience

Lead Scala developer @Canal+
kafka kubernetes scala

Canal Plus is a glboal leader of pay-television, movie production and movie distribution.

My team is building Mediahub, a media asset management system (MAM), the cornerstone of the group’s media supply chain. We are ingesting 300+ hours of new content every day. The platform is responsible for transcoding assets as they enter and leave the system, creating proxies, storing and retrieving assets from hot and cold storage and more.

As a lead Scala developer, I used Kafka and fs2 to develop ETLs that allowed us move massive amounts of data safely from the legacy systems, and eventually shut down legacy systems. Now, I’m leading the archiving feature team. My team is providing archivists the tools they need to document and retrieve videos from a very large catalog.

We’re working with Cats, Cats Effect, fs2, Tapir and Akka. I’m encouraging my team mates to apply functional programming, hexagonal architecture, and test everything with property-based tests (Scalacheck).

Read more →

Scala developer @Canal+
kafka scala

Read more →

Functional programming tutor @HEI, Graduate School of Engineering
scala

Taught a 15-hour tutorial course on functional programming to students of the HEI School of Engineering in Lille.

The course covered the fundamentals of functional programming in Scala (referential transparency, totality, lazy and eager evaluation, composition, collections manipulation …) and a few more advanced topics such as IO monads and functional streams (using Cats effect and fs2).

We applied these notions to the making of a project : a purely functional Tic Tac Toe game that could be played simultaneously on two computers through a TCP server.

Scala developer @Colisweb
scala kubernetes

Colisweb is a french delivery service specializing in last mile delivery.

I developed Scala micro-services, using a purely functional style and libraries such as Cats and Http4s. I’ve had the opportunity to migrate several services from Play Framework to Http4s and Tapir; and also contributed to an open source tracing library to improve the observability of their platform.

Read more →

Full-stack Javascript developer @Decathlon Maps
react node javascript

I worked a progressive web app (PWA) that let people find places for sport practice. I developed several features on the front end (React, Redux and Redux Saga) and on the back end as well (Koa and Postgres).

I implemented a better code delivery process, brought code reviews and end-to-end automatic tests to the project, and introduced my peers to functional programming principles that led to better separation of the business logic and greater maintainability of the product.

Read more →

Front-end developer @Norauto
react vue polymer javascript

I developed progressive web apps (PWA) as part of a complete overhaul of Norauto’s information system.

As a team, we built a library-agnostic design system using custom web components (developed using Polymer) and leveraged those components in several PWAs, implemented using Vue and React.

Read more →

Front-end developer @Qlikbeton
react javascript

Qlikbeton is an international online marketplace that sells concrete at attractive prices during off-peak periods. I worked on the front end of the marketplace within a team of 4 React developers.

We strived for a mostly functional codebase: side-effects were carefully separated from the purely functional business logic, UI components had little to no intelligence and could be composed easily. We made an extensive use of Ramda, a functional Javascript library that encourages immutable objects and function composition.

Read more →

Full-Stack developer @Pingflow
vue node scala javascript kubernetes

Pingflow develops a no-code software a service that allows anyone to design big, interactive dashboards that automatically displays up-to-date information from various data sources. These dashboards can be created by dragging elements on a canvas, and connecting them to data sources such as APIs, SQL databases and spreadsheets.

I led the development of a new major version of the product and migrated the codebase to a more modern an more scalable architecture: from stateful services that were hard to scale to stateless services that could scale horizontally, from jQuery to Vue, from Javascript to Typescript, from release in zip files to containers.

It was also my first professional experience with Scala and Akka, which I has taught myself and introduced in an attempt to build a more scalable platform. Actors and message-passing made it easier to reason about the live data update that were dispatched throughout the system.

Read more →

Junior Javascript Developer @Docler Holding
javascript node

As a junior javascript developer, I worked on a marketing platform that managed e-mail campaigns, leads, vouchers and analytics for a company that sold e-books and various digital goods.
Read more →