{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "meta": {
    "siteRoot": "https://antoineboucher.info/CV",
    "locale": "en",
    "alternateLocale": "fr",
    "htmlCv": "https://antoineboucher.info/CV/index-en.html",
    "htmlCvFr": "https://antoineboucher.info/CV/index-fr.html",
    "pdfCv": "https://antoineboucher.info/CV/cv-en/resume.pdf",
    "pdfCvFr": "https://antoineboucher.info/CV/cv-fr/resume.pdf",
    "markdownCv": "https://antoineboucher.info/CV/resume.md",
    "markdownCvFr": "https://antoineboucher.info/CV/resume-fr.md",
    "jsonCvFr": "https://antoineboucher.info/CV/resume-fr.json"
  },
  "basics": {
    "name": "Antoine Boucher",
    "label": "Software Engineer — Platform and graphics",
    "email": "antoine@antoineboucher.info",
    "phone": "+1 438 491 8831",
    "url": "https://antoineboucher.info/CV/index-en.html",
    "summary": "Platform and graphics engineer: backends, cloud operations, and developer tooling. Interactive graphics (C++/OpenGL, Blender); current stack includes Java/Kotlin, Python, Docker/Kubernetes, and 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": "Secure cloud platforms",
      "url": "https://i-mc2.ca/en/",
      "startDate": "2025-03",
      "endDate": "2026-02",
      "location": "Montréal, QC (Remote)",
      "highlights": [
        "Split a monolith into per-service repos and ran 5 GitLab CI/CD pipelines with dedicated runners on two GKE clusters in GCP; Terraform handled networking and observability for repeatable cloud releases",
        "Added JUnit and Playwright E2E coverage across 5 Java microservices; wired Android builds into the Terraform-managed GKE stack on GCP",
        "Built scripted cybersecurity risk analysis across 1000+ risks and 181+ threat categories with weighted scoring and an Angular triage UI"
      ]
    },
    {
      "name": "Polytechnique Montréal",
      "position": "Teaching Assistant — DevSecOps (LOG 8100)",
      "url": "https://www.polymtl.ca/",
      "startDate": "2024-09",
      "endDate": "2026-01",
      "location": "Montréal, QC (On-site)",
      "highlights": [
        "Built and maintained the GitLab workspace (repos, CI/CD templates, runners, workflows) for approximately 20 concurrent teams",
        "Coached Docker and Kubernetes build, deploy, and debug under LOG 8100 with OWASP-driven lab scenarios",
        "Refreshed DevSecOps-aligned lab artifacts, graded practicals, and coached resubmissions"
      ]
    },
    {
      "name": "École de technologie supérieure (ÉTS)",
      "position": "Teaching Assistant",
      "url": "https://www.etsmtl.ca/",
      "startDate": "2024-02",
      "endDate": "2026-04",
      "location": "Montréal, QC (Hybrid)",
      "highlights": [
        "Delivered labs, integrator-project support, and office hours on mobile/UX, integrator-project, and distributed-data tracks (TCH 057, IND 500, TCH 099, GTI 660, GTI 320)",
        "Authored and refreshed SQL, MongoDB, Kafka, and PostgreSQL exercises with rubrics aligned to course outcomes",
        "Unblocked integrator teams on architecture and backend/data; kept Azure-backed course infrastructure running"
      ]
    },
    {
      "name": "IONODES",
      "position": "Cloud Developer",
      "url": "https://www.ionodes.com/",
      "startDate": "2023-05",
      "endDate": "2023-08",
      "location": "Laval, QC (Hybrid)",
      "highlights": [
        "Designed a three-tier Auth0 subscription model for organization-scoped IoT access",
        "Integrated Sentry in C# with Serilog for structured production errors",
        "Advanced ONVIF and WebRTC streaming at IoT scale with Azure DevOps feature flags"
      ]
    },
    {
      "name": "Intact",
      "position": "Back End Developer (Co-op)",
      "url": "https://www.intact.ca/",
      "startDate": "2022-01",
      "endDate": "2022-05",
      "location": "Montréal, QC (Hybrid)",
      "highlights": [
        "Delivered a 6-step signup flow and mobile-app observability on Kotlin/Spring Boot microservices serving 10,000+ active users",
        "Implemented Kotlin login and MFA APIs for client mobile apps",
        "Extended the ELK stack with Kibana dashboards and harmonized microservice error codes"
      ]
    },
    {
      "name": "Algolux",
      "position": "Engineering Intern",
      "url": "https://torc.ai/",
      "startDate": "2017-05",
      "endDate": "2018-08",
      "location": "Montréal, QC (On-site)",
      "highlights": [
        "Built C++/CUDA/OpenCV imaging tooling for camera/ISP validation and produced an approximately 12,000-image outdoor vision dataset"
      ]
    }
  ],
  "education": [
    {
      "institution": "École de technologie supérieure (ÉTS)",
      "url": "https://www.etsmtl.ca/",
      "area": "Information Technology Engineering",
      "studyType": "Master's Degree",
      "startDate": "2023-08",
      "endDate": "2026-08",
      "location": "Montréal, QC, Canada",
      "courses": [
        "Thesis: real-time surface wear in interactive physics simulations, with dynamic friction and textures"
      ]
    },
    {
      "institution": "École de technologie supérieure (ÉTS)",
      "url": "https://www.etsmtl.ca/",
      "area": "Information Technology Engineering",
      "studyType": "Bachelor's Degree",
      "startDate": "2018-09",
      "endDate": "2023-04",
      "location": "Montréal, QC, Canada",
      "courses": [
        "AlgoÉTS (ÉTS algorithmic trading club): President (Jan 2023 — Jan 2025); club infrastructure, web, and trading/data projects",
        "Academic focus: software engineering, distributed systems, databases, and team-based integrator projects"
      ]
    }
  ],
  "skills": [
    {
      "name": "Languages",
      "keywords": ["Java", "Kotlin", "Python", "C++", "JavaScript", "TypeScript"]
    },
    {
      "name": "Backend and APIs",
      "keywords": ["Spring Boot", "microservices", "C#", ".NET", "Android", "GraphQL", "Django"]
    },
    {
      "name": "Graphics and 3D",
      "keywords": ["OpenGL", "GLSL", "real-time rendering", "Blender", "CUDA", "OpenCV"]
    },
    {
      "name": "Web",
      "keywords": ["Angular", "React", "Vue.js"]
    },
    {
      "name": "Cloud and platform",
      "keywords": ["Docker", "Kubernetes", "Terraform", "GCP", "Azure", "AWS"]
    },
    {
      "name": "CI/CD and delivery",
      "keywords": ["Git", "GitLab CI/CD", "GitHub Actions", "Azure DevOps"]
    },
    {
      "name": "Data",
      "keywords": ["PostgreSQL", "MongoDB", "Redis", "Kafka", "SQL"]
    },
    {
      "name": "Testing and observability",
      "keywords": ["Playwright", "JUnit", "ELK", "Grafana", "Prometheus"]
    },
    {
      "name": "Security and practice",
      "keywords": ["Linux", "OWASP", "DevSecOps", "Agile", "SCRUM", "Kanban", "UML", "open source"]
    }
  ],
  "projects": [
    {
      "name": "uml-mcp",
      "url": "https://github.com/antoinebou12/uml-mcp",
      "startDate": "2022",
      "endDate": "2026",
      "description": "Open-source MCP server that turns architecture prompts into UML and related diagrams (Mermaid, PlantUML, Kroki) for Cursor and ChatGPT.",
      "keywords": ["MCP", "Python", "LLM tools", "technical documentation"]
    },
    {
      "name": "MediaBoxDockerCompose",
      "url": "https://github.com/antoinebou12/MediaBoxDockerCompose",
      "description": "Docker Compose homelab stack for media library automation (Servarr, Plex/Jellyfin, monitoring) with companion install scripts.",
      "keywords": ["Docker Compose", "homelab", "Linux"]
    },
    {
      "name": "TrueMapData",
      "url": "https://github.com/ETSim/TrueMapData",
      "description": "Accepted contributions on ETSim package structure, release flow, and TrueMap support in surfalize for surface-metrology workflows.",
      "keywords": ["research tooling", "Python"]
    },
    {
      "name": "ipc-toolkit",
      "url": "https://github.com/antoinebou12/ipc-toolkit",
      "description": "Contribution to anisotropic friction in the IPC Toolkit simulation codebase (C++/Eigen, Python ipctk bindings).",
      "keywords": ["C++", "simulation", "physics"]
    },
    {
      "name": "hass_renpho",
      "url": "https://github.com/antoinebou12/hass_renpho",
      "description": "Maintained Home Assistant HACS integration for Renpho weight and body-composition sensors.",
      "keywords": ["Home Assistant", "Python", "IoT"]
    },
    {
      "name": "Serilog.Sinks.SentrySDK",
      "url": "https://github.com/antoinebou12/Serilog.Sinks.SentrySDK",
      "description": ".NET Serilog sink connecting logs and errors to Sentry across multiple NuGet package ids.",
      "keywords": [".NET", "C#", "observability"]
    }
  ],
  "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": "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"
    }
  ]
}
