Olivier Banville, smiling, in a black and white photo

Hi, I’m Olivier!

I’m a developer who also takes care of the infrastructure. These days that’s for a genomics research programme at Université Laval; at home it’s a homelab that’s grown a bit out of hand.

Resume (PDF) Get in touch Full resume

Research

Research data platforms

At Genovalia, I look after where the research data lives: the data catalogue, the schemas and metadata standards, the API other tools use, and the OpenShift cluster it all runs on.

writing software since
2010
years building research software
8+
running production on OpenShift since
2022
working languages
FR · EN

Dev

Web apps, all the way to production

I build web apps from the API to the page, and I also handle what comes after: containers, CI/CD, identity and access. I like staying with a project once it’s live.

  1. Push
  2. Tests and accessibility
  3. Build and roll out
  4. Smoke check

Lab & hobbies

The homelab

A few machines at home where I try things out: a local LLM with a gateway in front of it, my notes as a knowledge graph I can search, and MCP servers so AI assistants can use both.

  • Docker Swarm
  • Caddy
  • GitHub Actions
  • Gatus
  • Local LLMs
  • MCP

Research infrastructure

All projects
  • 2022– · Active

    Genovalia data platform

    A catalogue of research datasets, standardised description schemas, a metadata API and a data explorer, running on Université Laval’s OpenShift cluster. Designed, built and operated end to end.

    • Python
    • FastAPI
    • PostgreSQL
  • 2022– · Active

    Metadata standards for animal genomics

    DCAT-based dataset descriptions in JSON-LD, with controlled vocabularies, ontology mappings, OCA schemas and automated validation, so public genotyping datasets are curated once and reused across projects.

    • DCAT
    • JSON-LD
    • OCA
  • 2022– · Active

    Research platform identity

    Single sign-on for Genovalia’s applications with Keycloak, OpenID Connect and ORCID, and roles for the internal team and external partners.

    • Keycloak
    • OpenID Connect
    • ORCID
  • 2018–2023 · Done

    Automated content analysis

    Machine learning pipelines over large corpora of political and media text for quantitative social science research at the CLESSN, evaluated against human-coded samples.

    • Python
    • R
    • Machine learning
  • 2018–2023 · Done

    Survey and salience-analysis platform

    One tool for designing survey instruments, collecting responses and analysing issue salience, used by CLESSN researchers and students.

    • Python
    • Django
    • PostgreSQL
  • What I do

    Applied ML and LLM tooling

    Machine learning on large text corpora, checked against human coding; and now local LLMs, MCP servers, and the rules for what they’re allowed to do.

Software and operations

All projects
  • What I do

    Websites and web apps

    Full stack, from the API to the page. FastAPI and Django on the back end; SvelteKit, Vue and Nuxt on the front end; Wagtail for content sites. This site is one of them.

  • What I do

    Containers and hosting

    OpenShift and Kubernetes in production, Docker Swarm and Caddy for smaller setups. I set them up, watch them, upgrade them, back them up, and fix them when something breaks.

  • What I do

    CI/CD and automation

    GitHub Actions, with my own runners where it makes sense, and Kustomize manifests. Every push is tested, a push to main deploys, a bad deploy rolls back on its own, and dependencies stay up to date.

  • What I do

    Identity, access and Microsoft 365

    Sign-in for platforms with Keycloak, OpenID Connect and ORCID, with roles for each team and partner; and Microsoft 365 and Exchange: accounts, administration and migrations.

  • 2018–2023 · Done

    Projet Quorum

    The Django backend of a civic participation platform.

    • Python
    • Django
    • PostgreSQL
  • Live

    This website

    Plain HTML built ahead of time with SvelteKit, in two languages. A strict security policy (no outside scripts), preview images and a PDF resume made at build time, and accessibility checks in its tests.

At home

All projects
  • 2026– · Active

    Personal knowledge graph

    My notes, people, places, projects and tasks as a typed graph with semantic search, and an MCP server so an AI assistant can file things for me.

    • Python
    • FastAPI
    • PostgreSQL
  • 2026– · Active

    Tasks for a local LLM

    A small service in front of the LLM running on my own GPU: other apps call a named task and get back a decision, a JSON document or text, without knowing about prompts or models.

    • Python
    • FastAPI
    • PostgreSQL
  • 2026– · Active

    Homelab automations

    My home automations as small Python scripts: an AI can write them, but I approve each one, and they run in a sandbox that can only do what they declared.

    • Python
    • FastAPI
    • PostgreSQL
  • 2026– · Active

    Event log

    A timeline of things that happened: places, purchases, trips, deploys. My apps and AI assistants write to it, and I can ask it what we did last spring.

    • Python
    • FastAPI
    • PostgreSQL
  • 2026– · Active

    Browser home page

    The page my browser opens on: a clock and the weather over a drawn scene that follows the time of day, my links, and cards from my calendar, email and notes.

    • Python
    • FastAPI
    • PostgreSQL
  • 2026– · Active

    Groceries and meal plans

    A grocery list that sorts itself by store aisle, and a weekly meal plan with our recipes. The list lives in Home Assistant, so anyone at home can add to it.

    • Python
    • FastAPI
    • SQLite
  • Homelab

    The cluster

    Docker Swarm behind a Caddy gateway, a self-hosted CI runner, health checks, and push-to-deploy for every app, this site included.

Where I’ve worked

  • Genovalia
  • CRDM
  • Université Laval
  • CLESSN
  • Edgenda
  • Fujitsu
  • ACPE inc.
  • Frima Studio

Full resume

Let’s talk

Working on a research data platform, or sorting out who gets access to what across teams? Write me, I’m always happy to talk about it!

[email protected] Resume (PDF)