
Bonjour, moi c’est Olivier!
Je suis développeur, et je m’occupe aussi de l’infrastructure. Ces temps-ci, c’est pour un programme de recherche en génomique à l’Université Laval; à la maison, c’est un homelab qui a pris un peu trop de place.
Recherche
Plateformes de données de recherche
Chez Genovalia, je m’occupe de l’endroit où vivent les données de recherche : le catalogue, les schémas et les standards de métadonnées, l’API dont se servent les autres outils, et le cluster OpenShift où tout ça roule.
- en développement depuis
- 2010
- ans de logiciels pour la recherche
- 8+
- en production sur OpenShift depuis
- 2022
- langues de travail
- FR · EN
Dev
Des applications web, jusqu’en production
Je développe des applications web, de l’API à la page, et je m’occupe aussi de la suite : conteneurs, CI/CD, identités et accès. J’aime rester sur un projet une fois qu’il est en ligne.
- Push
- Tests et accessibilité
- Build et déploiement
- Vérification
Labo et loisirs
Le homelab
Quelques machines à la maison où j’essaie des choses : un LLM local avec une passerelle devant, mes notes en graphe de connaissances que je peux interroger, et des serveurs MCP pour que les assistants d’IA puissent se servir des deux.
- Docker Swarm
- Caddy
- GitHub Actions
- Gatus
- LLM locaux
- MCP
Infrastructure de recherche
Tous les projets-
Plateforme de données Genovalia
Un catalogue de jeux de données de recherche, des schémas de description standardisés, une API de métadonnées et un explorateur de données, sur le cluster OpenShift de l’Université Laval. Conçus, construits et exploités de bout en bout.
-
Normes de métadonnées en génomique animale
Des descriptions de jeux de données selon DCAT en JSON-LD, avec vocabulaires contrôlés, correspondances ontologiques, schémas OCA et validation automatisée, pour que les jeux de données de génotypage publics soient curés une fois et réutilisés d’un projet à l’autre.
-
Identité de la plateforme de recherche
L’authentification unique des applications de Genovalia avec Keycloak, OpenID Connect et ORCID, et les rôles de l’équipe interne et des partenaires externes.
-
Analyse de contenu automatisée
Des pipelines d’apprentissage automatique sur de grands corpus de textes politiques et médiatiques pour la recherche quantitative en sciences sociales à la CLESSN, évalués sur des échantillons codés à la main.
-
Plateforme de sondage et d’analyse de saillance
Un seul outil pour concevoir des questionnaires, recueillir les réponses et analyser la saillance des enjeux, utilisé par les chercheurs et les étudiants de la CLESSN.
-
Apprentissage automatique et outils LLM
Apprentissage automatique sur de grands corpus de textes, vérifié contre un codage humain; et maintenant des LLM locaux, des serveurs MCP, et les règles de ce qu’ils ont le droit de faire.
Logiciel et exploitation
Tous les projets-
Sites et applications web
De l’API à la page. FastAPI et Django pour le back-end; SvelteKit, Vue et Nuxt pour le front-end; Wagtail pour les sites de contenu. Ce site-ci en est un.
-
Conteneurs et hébergement
OpenShift et Kubernetes en production, Docker Swarm et Caddy pour les plus petits parcs. Je les mets en place, je les surveille, je les mets à jour, je fais les backups et je répare quand quelque chose brise.
-
CI/CD et automatisation
GitHub Actions, avec mes propres runners quand ça vaut la peine, et des manifestes Kustomize. Chaque push est testé, un push sur main déploie, un mauvais déploiement revient en arrière tout seul, et les dépendances restent à jour.
-
Identités, accès et Microsoft 365
L’authentification des plateformes avec Keycloak, OpenID Connect et ORCID, avec des rôles pour chaque équipe et partenaire; et Microsoft 365 et Exchange : comptes, administration et migrations.
-
Projet Quorum
Le backend Django d’une plateforme de participation citoyenne.
-
Ce site
Du HTML simple généré d’avance avec SvelteKit, en deux langues. Une politique de sécurité stricte (aucun script externe), des aperçus et un CV PDF générés au build, et des vérifications d’accessibilité dans ses tests.
À la maison
Tous les projets-
Graphe de connaissances personnel
Mes notes, les gens, les lieux, les projets et les tâches dans un graphe typé avec recherche sémantique, et un serveur MCP pour qu’un assistant d’IA classe les choses à ma place.
-
Tâches pour un LLM local
Un petit service devant le LLM qui roule sur mon propre GPU : les autres applications appellent une tâche par son nom et reçoivent une décision, un document JSON ou du texte, sans rien savoir des prompts ni des modèles.
-
Automatisations du homelab
Mes automatisations à la maison en petits scripts Python : une IA peut les écrire, mais j’approuve chacun, et ils roulent dans un sandbox qui ne peut faire que ce qu’ils ont déclaré.
-
Journal d’événements
Une timeline de ce qui s’est passé : lieux, achats, voyages, déploiements. Mes applications et mes assistants d’IA y écrivent, et je peux lui demander ce qu’on a fait le printemps passé.
-
Page d’accueil du navigateur
La page qu’ouvre mon navigateur : l’heure et la météo sur une scène dessinée qui suit le moment de la journée, mes liens, et des cartes de mon agenda, de mes courriels et de mes notes.
-
Épicerie et menus de la semaine
Une liste d’épicerie qui se classe toute seule par rangée, et un menu de la semaine avec nos recettes. La liste est dans Home Assistant : tout le monde à la maison peut y ajouter quelque chose.
-
Le cluster
Docker Swarm derrière une passerelle Caddy, un runner CI self-hosted, des health checks et un déploiement à chaque push pour toutes les applications, ce site compris.
Où j’ai travaillé
- Genovalia
- CRDM
- Université Laval
- CLESSN
- Edgenda
- Fujitsu
- ACPE inc.
- Frima Studio
On s’en parle
Vous travaillez sur une plateforme de données de recherche, ou vous démêlez qui a accès à quoi entre équipes? Écrivez-moi, ça me fait toujours plaisir d’en discuter!