Olivier Banville

Developer and data specialist · Near Québec City

I’m a developer at Genovalia, a Université Laval initiative that brings together artificial intelligence, genomics and high-performance computing. I work on the systems that let researchers find, describe and request data: catalogues, metadata APIs, sign-in, and the infrastructure they run on.

Most of my days are Python and TypeScript: FastAPI and Django on the back end, Vue and Nuxt on the front end, Keycloak for identity, all deployed on OpenShift. I like small, boring, well-tested services with good documentation.

At home I run a homelab where I build my own tools: a knowledge vault, an event log, an automation runner and a local LLM service, all wired together and reachable by AI assistants through MCP. I also make games, tinker with microcontrollers, and volunteer for a Québec historical society.

Experience

  1. TODO – present

    Developer and data specialist (research professional)

    Genovalia, Université Laval

    • Redesigned and deployed the metadata API that serves dataset descriptions (DCAT-AP) and schemas (OCA) to the catalogues.
    • Develop the dataset catalogues and data exploration tools, including the catalogue built for Genome Canada’s CSDCC.
    • Run identity for the platform: Keycloak with OpenID Connect and ORCID sign-in.
    • Deploy and operate the applications on OpenShift (Kustomize, GitHub Actions, Sentry, Gatus).
    • Lead the Université Laval technical deliverables of a Genome Canada data hub grant proposal.

Skills

Languages
  • Python
  • TypeScript
  • C#
  • Haxe
  • SQL
Back end
  • FastAPI
  • Django
  • Wagtail
  • SQLAlchemy
  • PostgreSQL
  • MongoDB
Front end
  • SvelteKit
  • Vue
  • Nuxt
  • Ionic
  • Capacitor
Infrastructure
  • OpenShift
  • Kubernetes
  • Docker Swarm
  • Caddy
  • GitHub Actions
  • S3 / Ceph
Identity and data
  • Keycloak
  • OpenID Connect
  • ORCID
  • DCAT-AP
  • OCA
AI tooling
  • MCP servers
  • Ollama
  • pgvector
  • Claude

Languages

French (native) · English (fluent)