给我写信

Savoir-faire

Je conçois, livre et exploite des infrastructures et des logiciels, et j’enseigne à celles et ceux qui les construiront. Voici comment je travaille, avec quels outils, et ce que j’enseigne. Mes réalisations ont chacune leur page.

Voir mes réalisations

Ma démarche

我设计应用如何构建、交付并在生产环境中运行,既针对我自己的产品,也针对我加入的团队的产品。我的准则一句话就能说清:凡是运行的东西都应当以代码描述,能被完全相同地重建,在事故之后可以恢复,而且每一条关于其状态的说法都应当有日期、可验证。

这两门手艺遵循同一个标准。一门课程和一套基础设施一样,应当可以被描述、被复现、被验证。数学训练至今仍塑造着我的工作方式:动手之前先为系统绘制地图,并且我更愿意用一个演算过的例子来说服别人。

Ma façon de travailler

Des affirmations qui se vérifient

Avant de toucher à un système, je le cartographie, et le registre de l’existant est produit par la machine plutôt qu’écrit à la main : chaque serveur, chaque service et chaque sauvegarde y figure avec son état et la preuve qui l’établit. Chaque intervention laisse une trace (le journal de l’opération, l’empreinte d’un fichier restauré, le résultat d’un test), rangée à côté du code qui l’a produite.

Le code qui touche à l’argent ou aux accès passe par une revue de sécurité outillée, et chaque constat est corrigé avec le test qui empêche son retour. Quand je ne sais pas encore une chose, je l’écris ainsi, avec ce qu’il faudrait pour l’établir.

L’IA à votre mesure

J’apporte aux entreprises et aux institutions des workflows agentiques et une IA taillés pour leurs besoins et leur échelle. Je repère avec vous les tâches où l’IA fait gagner du temps, je choisis les modèles et l’endroit où vos données restent, puis je construis des agents qui enchaînent ces tâches, avec une validation humaine à chaque étape décisive. Une petite équipe repart avec un outil simple qu’elle maîtrise, une grande organisation avec une chaîne outillée, tracée et documentée.

开源

当一个开源工具碍事时,我宁愿在上游修复它,也不绕开它。在课堂管理软件 Veyon 中,我对远程视图中的画面撕裂做了无损测量并加以修复,也修复了 Wayland 下的 PipeWire VNC 服务器。这些补丁用 C++ 和 Qt 6 编写,已被该项目接受。

Voir les correctifs

Compétences et outils

Pour chaque domaine, les outils que j’emploie et la raison pour laquelle je les ai choisis.

Cloud et Infrastructure as Code

Tout ce qui tourne est décrit en code, pour pouvoir le reconstruire à l’identique, et chez le fournisseur qui convient au besoin plutôt qu’à l’habitude.

  • Google Cloud
  • AWS
  • Hetzner
  • OVH
  • Cloudflare
  • Pulumi
  • OpenTofu
  • Ansible

CI/CD et chaîne logicielle

Une modification n’atteint la production qu’après ses tests, dans une image signée dont on connaît le contenu, et la forge elle-même sait se restaurer.

  • GitLab CI
  • GitHub Actions
  • Docker
  • images signées
  • SBOM
  • attestations de provenance
  • BorgBackup

Systèmes et réseau

Un parc se décrit comme une infrastructure : la configuration s’applique d’elle-même, les accès passent par une identité unique et les secrets restent chiffrés.

  • Linux (Ubuntu)
  • bootc
  • Ansible
  • Keycloak
  • OIDC
  • SOPS
  • Tailscale

Backend

TypeScript de bout en bout et une architecture hexagonale : le domaine ne dépend d’aucun framework, si bien qu’on le teste et qu’on le fait évoluer sans tout réécrire.

  • TypeScript
  • NestJS
  • GraphQL
  • REST
  • PostgreSQL
  • Python
  • Solidity

Interfaces et moteur

Next.js et React pour les applications, et un moteur en Rust compilé en WebAssembly quand un jeu ou un outil doit tenir son temps de calcul sur l’appareil le plus modeste de la classe.

  • Next.js
  • React
  • Rust
  • WebAssembly
  • WebGL

IA agentique

J’intègre l’IA là où elle sert le métier, à l’échelle de l’organisation : le bon modèle pour chaque tâche, des agents qui agissent sous contrôle humain, et une trace de tout ce qu’ils font.

  • Claude
  • Codex
  • orchestration d’agents
  • validation humaine
  • traçabilité

Enseignement

Un cours se construit comme un logiciel : une même source donne le manuel, la plateforme, les exercices et leurs corrections, et chaque projet d’étudiant passe par une vraie CI.

  • Git
  • GitLab CI
  • Docker
  • Python
  • laboratoires en ligne

Enseigner

我面对的学员差别很大,从小学生到 Master 2(硕士二年级),再到成人培训。我把每门课程设计成一个完整的系统,包含教学目标、贯穿始终的一个案例、可复现的活动、借助工具完成的评估,以及出自同一份源文件的纸质和数字教材。

从 Bachelor 3 到 Master 2

我在波尔多的 EPSI 讲授从 Bachelor 3(本科三年级)到 Master 2(硕士二年级)的课程,在学生和教学团队给出非常积极的反馈之后,学校把这些模块交给了我。在 Master 2,我讲授可观测性与分布式系统的性能、云治理与架构、测试环境的搭建与部署以及随后的测试运行与分析,并指导一项职业模拟,学生在多元文化团队中用敏捷方法领导一个无服务器项目。在 Master 1 网络安全课程中,我讲授基础设施安全、身份与访问管理,以及开发安全的云解决方案。

在 Bachelor 3,我讲授版本控制与持续集成、虚拟化与 Docker 容器,以及区块链开发。每一门课都有自己的教材和学习平台,由我编写并运营,学生在平台上操作的交付链与我在生产环境中运营的完全相同。我还担任职业模拟答辩评审团的成员。

成人培训

我为工程师编写了一套完整的 Docker 课程(Engine、Compose 和 Swarm),共二十章,每章都有可运行的实验、检查和速查表,我以每次两小时的形式远程讲授。我也指导转行的成年人掌握数字技能。

在初中教授理科、英语和地理

位于 Le Haillan 的 Edeys 学校以小班形式接收患有阅读障碍、注意力缺陷多动障碍或自闭症的孩子。我自 2025 年起在那里任教,学生的年龄在九岁到十五岁之间,我教生命与地球科学、物理、化学、技术和数学,也教英语和地理。和他们一起从一门学科转到另一门,需要明确的讲解、简短的指令,以及每个孩子都能独立上手的材料。我用课程大纲里准确的词汇与他们交谈,从不自造词语,这样他们在课堂上学到的东西,在别处也用得上。

面对每个孩子和他的家庭

面对一个失去信心的孩子,我先从倾听开始,先听孩子,再听家人,并找出孩子本来就做得好的地方,让第一节课以一次成功收尾。我设计课程和游戏时,让犯错不付出任何代价,这样孩子才敢再试一次。在我的游戏里,犯错换来的是一段简短的解释和一次重新尝试,已经取得的成果不会被拿走。帮助分为三个层级(提示、示例、带领完成的解答),始终免费,学生想被引导多久都可以。在课堂上,我会讲解常见的错误,但不点名任何人,而适合阅读障碍者的版式只改变字体排印,所以有阅读障碍的学生做的练习与其他人完全相同。

在我的控制台上,我能看到每个学生的屏幕,并在他们卡住时走过去帮忙,而不是等练习结束之后。在英语课上,每个学生都会录下自己的朗读,并得到一个二维码,扫描后可以播放他自己的声音,让他亲耳听到自己的进步。我亲自撰写学生的成绩单和学校手册,让每个家庭都清楚孩子学会了什么、还有哪些需要继续努力。

就您孩子的情况给我写信

以游戏激发学生的投入

游戏是我激发学生投入的主要杠杆,前提是它服务于真正的学习。我设计并在课堂上玩过一款代数卡牌游戏、Enquête dans le bois(一本以卡牌呈现的生命科学野外指南)、英语对决游戏,以及 Mission Terminal,它通过经过检查的任务来教授 shell。每个游戏都先让学生试玩,再根据游戏所暴露的问题加以修正。为了我在 EPSI 网络 ECHO 日活动中主持的工作坊,我设计了 Constellation,这是一款合作游戏,来自不同学校的学生之间每一次相遇,都会推动整个小组向前。

Voir les jeux

为预科班做准备

对一名准备进入法国预科班(classes préparatoires)的毕业班学生,我设计了一整套练习册,涵盖数学(包括高阶数学)、物理化学,以及用 Python 进行的数值编程。每项技能都以课程要点回顾、一个演算示例和一个易错点提示框开头,然后给出分四个难度层级的练习,附有提示和详细的解答。一条核心路线让学生能够掌控学习量,而每个数值答案在发布之前,都会由一个独立的程序重新计算。

Voir les cahiers

教育领域的研究问题

Ma pratique me pose des questions que j’aimerais instruire avec des équipes de recherche. Un jeu conçu pour une seule notion, puis révisé d’après la partie, change-t-il l’engagement et la mémorisation d’élèves dys, TDAH ou TSA ? Un poste qui en fait moins les rend-il plus autonomes ? Que change, pour apprendre, un retour immédiat sur chaque projet ? Et une IA conçue pour une école, à partir de ses propres règles, peut-elle aider les enseignants sans se substituer à leur jugement ? Aujourd’hui, je juge un jeu à l’engagement que j’observe en classe : la démarche ressemble à la design-based research, mais ce sont des observations de praticien, pas des mesures.

目前我是依据在课堂上观察到的投入程度来评判一款游戏,并为下一节课加以修正。这种做法接近基于设计的研究,但它们是一位实践者的观察,而不是测量。这恰恰是我希望与研究者一起配备工具的地方,而我在 LIRIS 的研究工作让我懂得了实验方案有哪些要求。

Aller plus loin