Marc-Antoine Ouimet

Développeur logiciel
English
Français

Expérience professionnelle

  1. -

    Développeur Java Full Stack

    Alithya

    Participer à la modernisation d'un grand système logiciel legacy (approximativement 4 millions de lignes de code).

    • Java
    • JProfiler
    • Python
    • Groovy
    • Spring Boot
    • Apache Tomcat
    • AWS
    • PostgreSQL
    • Korn Shell
    • COBOL
    • Réduire de 80% le temps d'exécution de certains tests de système en profilant et en corrigeant des hotspots.
    • Réduire de 30% le temps de compilation du système modernisé en implémentant des scripts Python basés sur des heuristiques pour identifier et éliminer les doublons de code Java.
    • Débogage de tests de système, identification et résolution de problèmes de traduction automatisée de Micro Focus COBOL vers Java en utilisant des journaux d'événements et des sauvegardes de la base de données.
    • Rédaction de documentation destinée aux clients, décrivant des résultats de recherche et développement de nouvelles fonctionnalités dans le système modernisé.
    • Compléter le programme d'accréditation AWS Mainframe Modernization Refactor (L1, L2, L3).
  2. -

    Stagiaire en développement logiciel

    Famic Technologies Inc.
    • Réimplémenter l'intégralité d'une solution logicielle pour simplifier son architecture, corriger des bugs et en renforcer la sécurité.
      • .NET Framework 4.8
      • WPF
      • MVVM
    • Implémenter des formulaires Web dynamiques pour faciliter la saisie de données et un tableau de bord pour la gestion de ressources pour des tâches de compilation.
      • .NET 7.0
      • Blazor
      • Microsoft SQL Server
      • Entity Framework 6
      • FluentValidation
      • Bootstrap 5
    • Conception et implémentation d'un mécanisme de sécurisation de fichiers sur un CDN.
      • Apache 2.4
      • PHP 7
      • JWT
    • Ajustements et améliorations de la spécification des exigences logicielles, et création de diagrammes.
      • UML
      • Entreprise Architect
    1. -
    2. -
    3. - Prix d'excellence d'assistant de cours

    Assistant de cours d'informatique

    Université McGill

    Développer des scripts d'automatisation, animer des heures de questions, corriger des devoirs et des examens, et analyser les devoirs soumis pour détecter les cas de plagiat dans le cadre d'un cours d'introduction au paradigme de programmation fonctionelle et à la théorie des langages de programmation.

    • OCaml
    • LearnOCaml
    • Bash
  3. -

    Assistant de cours d'informatique

    Université McGill

    Participer à l'élaboration des travaux pratiques, répondre aux questions sur des forums de discussion, animer des heures de questions et des sessions interactives de conception et vérification de programmes avec des étudiants dans le cadre d'un cours de développement logiciel orienté objets.

    • Java
    • Gradle
    • JUnit

Expérience de recherche

  1. -

    Assistant de recherche en langages de programmation

    Université McGill

    Prendre part à l'implémentation du langage de preuve Beluga. Réimplémentation de l'analyseur lexical, de l'analyseur syntaxique et d'une partie de l'analyseur sématique pour supporter le développement incrémental de preuves dans Beluga. Correction de bogues, mise à jour de la spécification des exigences logicielles, et implémentation de nouvelles fonctionnalités.

    • Beluga
    • OCaml
    • Bash
    • dune
  2. -

    Assistant de recherche en informatique

    Université McGill

    Prendre part à un projet de recherche visant à adapter la mécanisation de Standard ML de Twelf vers Beluga et fournir des retours sur l'efficacité d'utilisation des projets Beluga et Harpoon. Rédiger des rapports de bogue et un rapport technique sur les limitations de certaines décisions de design de l'implémentation de Beluga.

    • Beluga
    • Twelf
    • OCaml

Compétences

Langages de programmation

  • C#
  • Java
  • OCaml
  • TypeScript
  • JavaScript
  • SQL
  • Python
  • C++
  • C
  • Bash

Frontend

  • Svelte
  • Blazor
  • Razor
  • Tailwind
  • Sass
  • Pug
  • Bootstrap
  • jQuery
  • HTML
  • CSS

Backend

  • REST API
  • CRUD
  • ASP.NET MVC
  • Microsoft SQL Server
  • Entity Framework
  • PetaPoco
  • Node.js
  • Express.js
  • Postman
  • JWT
  • Apache HTTP Server

Autres technologies

  • Git
  • TFVC
  • CI/CD
  • TDD
  • UML
  • WPF
  • XAML
  • MVVM
  • Visual Studio
  • Unity
  • npm
  • opam
  • dune
  • NuGet
  • Gradle
  • JUnit
  • NUnit
  • Linux
  • GitHub Actions
  • Entreprise Architect
  • DNN
  • Scikit-learn
  • pandas
  • Matplotlib
  • Jupyter Notebook
  • LaTeX
  • Beamer
  • TikZ

Projets

Contributions à Beluga

  • OCaml
  • opam
  • dune
  • Bash
Projet de maîtrise en implémentation de languages de programmation. Réimplémentation de l'analyseur lexical, l'analyseur syntaxique et d'une partie de l'analyseur sématique pour supporter le développement incrémental de preuves dans Beluga. Correction de bogues, mise à jour de la spécification des exigences logicielles, et implémentation de nouvelles fonctionnalités.

Site Web personnel

  • SvelteKit
  • Node.js
  • JavaScript
  • Tailwind
Un site Web généré statiquement avec SvelteKit pour afficher mon CV et des articles de blog. Développement, écriture et déploiement de pages offrant des explications approfondies sur des sujets en mathématiques, cumulant 5000+ vues uniques.

Compilateur d'un sous-ensemble de C

  • Java
  • MIPS
  • C
  • JUnit
Réalisation d'un compilateur pour un sous-ensemble de C. Implémentation et test d'un analyseur lexical, d'un analyseur syntaxique, d'un analyseur sémantique, d'un générateur de code en MIPS et d'une liveness analysis pour la compilation de programmes écrits dans un sous-ensemble de C.

Ray tracer

  • Java
Un ray tracer avec multithreading effectuant le rendu réaliste d'images avec des réflections, réfractions, surfaces quadratiques, métaballes avec ray marching, et area lights.

Perceptron multicouche Fashion-MNIST

  • Python
  • Scikit-learn
  • pandas
  • Matplotlib
  • Jupyter Notebook
  • TensorFlow
Implémentation d'un réseau de neurones à propagation avant (perceptron multicouche) avec normalisation, régularisation des données, et optimisation par l'algorithme du gradient stochastique. Ce réseau a atteint 88.12% d'exactitude de test sur l'ensemble de données Fashion-MNIST, comparativement à 90.94% atteint par un réseau neuronal convolutif implémenté avec TensorFlow.

fvalue

  • Python
Une librairie Python permettant de formatter des quantités physique avec arrondissement sans biais, et paramétrisation du nombre de figures significatives, pour les rapports de laboratoire.

find-files-by-patterns

  • TypeScript
  • Node.js
  • CI/CD
Une librairie Node.js open-source en TypeScript, et déployée avec GitHub Actions, cumulant 1000+ installations. Permet de traverser efficacement le système de fichiers et de chercher des fichiers au moyen du paradigme de programmation fonctionelle.

Prototypes de jeux vidéo

  • C#
  • Unity
Implémentation de prototypes de jeux vidéo avec Unity dans le cadre d'un cours de développement de jeux modernes. Comprend l'implémentation de:
  • génération procédurale de labyrinthes,
  • collisions 2D, et
  • planification de tâches d'agents en fonction d'objectifs (goal-oriented action planning).

Éducation

  1. -

    Université McGill

    Maîtrise en sciences (M.Sc.) informatiques, concentration en implémentation de langages de programmation. CGPA: 3.84/4.00

    Thèse: Parsing, Lexical Scoping and Incremental Development for a Dependently-Typed Programming Language

  2. -

    Université McGill

    Baccalauréat en sciences (B.Sc.) informatiques cheminement honor. CGPA: 3.84/4.00 Prix d'excellence à l'admission Hydro-Québec First Class Honours in Computer Science

    Rapport de recherche: Towards a Mechanization of Standard ML in Beluga using Harpoon

  3. -

    Collège de Bois-de-Boulogne

    Diplôme d'études collégiales (DEC) en sciences informatiques et mathématiques. CRC: 36.446

  4. -

    Académie Ste-Thérèse

    Diplôme d'études secondaires (DES). Médaille académique du Gouverneur général

Me contacter