{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "meta": {
    "siteRoot": "https://antoineboucher.info/CV",
    "locale": "fr",
    "alternateLocale": "en",
    "htmlCv": "https://antoineboucher.info/CV/index-fr.html",
    "htmlCvEn": "https://antoineboucher.info/CV/index-en.html",
    "pdfCv": "https://antoineboucher.info/CV/cv-fr/resume.pdf",
    "pdfCvEn": "https://antoineboucher.info/CV/cv-en/resume.pdf",
    "markdownCv": "https://antoineboucher.info/CV/resume-fr.md",
    "markdownCvEn": "https://antoineboucher.info/CV/resume.md",
    "jsonCvEn": "https://antoineboucher.info/CV/resume.json"
  },
  "basics": {
    "name": "Antoine Boucher",
    "label": "Ingénieur logiciel — Plateforme et infographie",
    "email": "antoine@antoineboucher.info",
    "phone": "+1 438 491 8831",
    "url": "https://antoineboucher.info/CV/index-fr.html",
    "summary": "Ingénieur plateforme et infographie : backends, exploitation cloud et outillage développeur. Infographie interactive (C++/OpenGL, Blender) ; pile actuelle : Java/Kotlin, Python, Docker/Kubernetes et infrastructure-as-code.",
    "location": {
      "city": "Montréal",
      "region": "QC",
      "countryCode": "CA"
    },
    "profiles": [
      {
        "network": "GitHub",
        "username": "antoinebou12",
        "url": "https://github.com/antoinebou12"
      },
      {
        "network": "LinkedIn",
        "username": "antoineboucher",
        "url": "https://www.linkedin.com/in/antoineboucher"
      }
    ]
  },
  "work": [
    {
      "name": "IMC2 — Institut multidisciplinaire en cybersécurité et cyberrésilience",
      "position": "Plateformes cloud sécurisées",
      "url": "https://i-mc2.ca/fr/",
      "startDate": "2025-03",
      "endDate": "2026-02",
      "location": "Montréal, QC (Télétravail)",
      "highlights": [
        "Scindé un monolithe en dépôts par service et piloté 5 pipelines GitLab CI/CD avec runners dédiés sur deux clusters GKE sur GCP ; réseau et observabilité en Terraform",
        "Ajouté couverture JUnit et Playwright E2E sur 5 microservices Java ; raccordé les builds Android via GitLab vers la pile GKE gérée par Terraform",
        "Livré une analyse scriptée des risques cybersécurité sur 1000+ risques et 181+ catégories de menaces avec interface Angular de triage"
      ]
    },
    {
      "name": "Polytechnique Montréal",
      "position": "Chargé de travaux pratiques — DevSecOps (LOG 8100)",
      "url": "https://www.polymtl.ca/",
      "startDate": "2024-09",
      "endDate": "2026-01",
      "location": "Montréal, QC (Sur place)",
      "highlights": [
        "Structuré et maintenu l'espace GitLab pour environ 20 équipes en parallèle",
        "Coaching Docker et Kubernetes selon LOG 8100 avec exemples inspirés d'OWASP",
        "Actualisé travaux et supports DevSecOps ; correction de TP et coaching sur remises"
      ]
    },
    {
      "name": "École de technologie supérieure (ÉTS)",
      "position": "Chargé de travaux pratiques",
      "url": "https://www.etsmtl.ca/",
      "startDate": "2024-02",
      "endDate": "2026-04",
      "location": "Montréal, QC (Hybride)",
      "highlights": [
        "Animé laboratoires, soutenu le projet intégrateur et tenu des permanences (TCH 057, IND 500, TCH 099, GTI 660, GTI 320)",
        "Conçu et mis à jour des exercices SQL, MongoDB, Kafka et PostgreSQL avec grilles d'évaluation",
        "Débloqué équipes intégrateur sur architecture et pipelines ; maintenu l'infrastructure de cours sur Azure"
      ]
    },
    {
      "name": "IONODES",
      "position": "Développeur cloud",
      "url": "https://www.ionodes.com/",
      "startDate": "2023-05",
      "endDate": "2023-08",
      "location": "Laval, QC (Hybride)",
      "highlights": [
        "Conçu un modèle d'abonnement Auth0 à trois niveaux pour l'accès IoT multi-organisation",
        "Intégré Sentry en C# avec Serilog pour erreurs structurées en production",
        "Renforcé streaming ONVIF et WebRTC à l'échelle IoT avec Azure DevOps et feature flags"
      ]
    },
    {
      "name": "Intact",
      "position": "Développeur Back End (Coopérative)",
      "url": "https://www.intact.ca/",
      "startDate": "2022-01",
      "endDate": "2022-05",
      "location": "Montréal, QC (Hybride)",
      "highlights": [
        "Livré un parcours d'inscription en 6 étapes et l'observabilité mobile sur microservices Kotlin/Spring Boot pour 10 000+ utilisateurs actifs",
        "Implémenté des API Kotlin de connexion et MFA pour applis mobiles client",
        "Enrichi la pile ELK avec tableaux Kibana et codes d'erreur harmonisés entre microservices"
      ]
    },
    {
      "name": "Algolux",
      "position": "Stagiaire en génie",
      "url": "https://torc.ai/",
      "startDate": "2017-05",
      "endDate": "2018-08",
      "location": "Montréal, QC (Sur place)",
      "highlights": [
        "Outils C++/CUDA/OpenCV pour validation caméra/ISP et jeu de données vision d'environ 12 000 images"
      ]
    }
  ],
  "education": [
    {
      "institution": "École de technologie supérieure (ÉTS)",
      "url": "https://www.etsmtl.ca/",
      "area": "Génie des technologies de l'information",
      "studyType": "Maîtrise",
      "startDate": "2023-08",
      "endDate": "2026-04",
      "location": "Montréal, QC, Canada",
      "courses": [
        "Mémoire : usure de surface en temps réel dans des simulations physiques interactives, avec frottement et textures dynamiques"
      ]
    },
    {
      "institution": "École de technologie supérieure (ÉTS)",
      "url": "https://www.etsmtl.ca/",
      "area": "Génie des technologies de l'information",
      "studyType": "Baccalauréat",
      "startDate": "2018-09",
      "endDate": "2023-04",
      "location": "Montréal, QC, Canada",
      "courses": [
        "AlgoÉTS (club de trading algorithmique ÉTS) — président (janv. 2023 — janv. 2025) ; infra, site web, projets trading/données",
        "Axes du programme : génie logiciel, systèmes distribués, bases de données et livraison en équipe"
      ]
    }
  ],
  "skills": [
    {
      "name": "Langages",
      "keywords": ["Java", "Kotlin", "Python", "C++", "JavaScript", "TypeScript"]
    },
    {
      "name": "Backend et API",
      "keywords": ["Spring Boot", "microservices", "C#", ".NET", "Android", "GraphQL", "Django"]
    },
    {
      "name": "Infographie et 3D",
      "keywords": ["OpenGL", "GLSL", "rendu temps réel", "Blender", "CUDA", "OpenCV"]
    },
    {
      "name": "Web",
      "keywords": ["Angular", "React", "Vue.js"]
    },
    {
      "name": "Cloud et plateforme",
      "keywords": ["Docker", "Kubernetes", "Terraform", "GCP", "Azure", "AWS"]
    },
    {
      "name": "CI/CD et livraison",
      "keywords": ["Git", "GitLab CI/CD", "GitHub Actions", "Azure DevOps"]
    },
    {
      "name": "Données",
      "keywords": ["PostgreSQL", "MongoDB", "Redis", "Kafka", "SQL"]
    },
    {
      "name": "Tests et observabilité",
      "keywords": ["Playwright", "JUnit", "ELK", "Grafana", "Prometheus", "Sentry"]
    },
    {
      "name": "Sécurité et pratiques",
      "keywords": ["Linux", "OWASP", "DevSecOps", "Agile", "SCRUM", "Kanban", "MCP", "UML", "logiciel libre"]
    }
  ],
  "projects": [
    {
      "name": "uml-mcp",
      "url": "https://github.com/antoinebou12/uml-mcp",
      "startDate": "2022",
      "endDate": "2026",
      "description": "Serveur MCP open source qui produit des diagrammes UML et apparentés (Mermaid, PlantUML, Kroki) depuis une interface de chat, pour Cursor et ChatGPT.",
      "keywords": ["MCP", "Python", "outils LLM", "documentation technique"]
    },
    {
      "name": "MediaBoxDockerCompose",
      "url": "https://github.com/antoinebou12/MediaBoxDockerCompose",
      "description": "Pile homelab Docker Compose pour bibliothèque média (Servarr, Plex/Jellyfin, surveillance) avec scripts d'installation.",
      "keywords": ["Docker Compose", "homelab", "Linux"]
    },
    {
      "name": "TrueMapData",
      "url": "https://github.com/ETSim/TrueMapData",
      "description": "Contributions acceptées sur la structure ETSim, le flux de release et le support TrueMap dans surfalize.",
      "keywords": ["outillage de recherche", "Python"]
    },
    {
      "name": "ipc-toolkit",
      "url": "https://github.com/antoinebou12/ipc-toolkit",
      "description": "Contribution au frottement anisotrope dans IPC Toolkit (C++/Eigen, liaisons Python ipctk).",
      "keywords": ["C++", "simulation", "physique"]
    },
    {
      "name": "hass_renpho",
      "url": "https://github.com/antoinebou12/hass_renpho",
      "description": "Intégration Home Assistant HACS maintenue pour capteurs Renpho (poids, composition corporelle).",
      "keywords": ["Home Assistant", "Python", "IoT"]
    },
    {
      "name": "Serilog.Sinks.SentrySDK",
      "url": "https://github.com/antoinebou12/Serilog.Sinks.SentrySDK",
      "description": "Sink Serilog .NET vers Sentry pour centraliser journaux et erreurs (plusieurs paquets NuGet).",
      "keywords": [".NET", "C#", "observabilité"]
    }
  ],
  "certificates": [
    {
      "name": "AWS Certified Cloud Practitioner",
      "date": "2027-04",
      "url": "https://www.credly.com/badges/b57717b2-640e-459b-be04-6de7062b1564",
      "issuer": "Amazon Web Services"
    },
    {
      "name": "Programme québécois d'entrepreneuriat scientifique (QcES)",
      "url": "https://verified.sertifier.com/fr/verify/37471918795197/",
      "issuer": "Sertifier"
    },
    {
      "name": "Parcours AWS Cloud Quest (Cloud Practitioner, Data Analytics, Machine Learning, Serverless Developer, Networking, Solutions Architect)",
      "url": "https://www.credly.com/users/antoine-boucher/badges",
      "issuer": "Amazon Web Services"
    }
  ]
}
