Marc-Antoine Ouimet

Software Developer
English
Français

Professional Experience

  1. -

    Full Stack Java Developer

    Alithya

    Participated in the modernization of a large legacy software system (approximately 4 million lines of code).

    • Java
    • JProfiler
    • Python
    • Groovy
    • Spring Boot
    • Apache Tomcat
    • AWS
    • PostgreSQL
    • Korn Shell
    • COBOL
    • Improved by 80% the runtime performance of select system test cases by profiling and fixing hotspots.
    • Improved by 30% the compilation time of the modernized system by implementing heuristic-based Python scripts to identify and eliminate duplicate Java code.
    • Debugged system tests to identify and address issues in automated translation from Micro Focus COBOL to Java using logs and database snapshots.
    • Wrote client-facing documentation outlining the results of research and development of new features in the modernized system.
    • Completed the AWS Mainframe Modernization Refactor accreditation program (L1, L2, L3).
  2. -

    Software Developer Intern

    Famic Technologies Inc.
    • Reimplemented the entirety of a software solution to simplify its architecture, fix bugs, and enhance security.
      • .NET Framework 4.8
      • WPF
      • MVVM
    • Implemented dynamic web forms to facilitate data entry and a resource management dashboard for compilation tasks.
      • .NET 7.0
      • Blazor
      • Microsoft SQL Server
      • Entity Framework 6
      • FluentValidation
      • Bootstrap 5
    • Designed and implemented a file security mechanism on a CDN.
      • Apache 2.4
      • PHP 7
      • JWT
    • Adjusted and improved software requirements specification documents, along with the creation of diagrams.
      • UML
      • Entreprise Architect
    1. -
    2. -
    3. - Teaching Assistant Award

    Teaching Assistant in Computer Science

    McGill University

    Develop automation scripts, hold office hours, grade assignments and exams, and analyze submitted assignments to detect cases of plagiarism as part of an introductory course in functional programming paradigm and programming language theory.

    • OCaml
    • LearnOCaml
    • Bash
  3. -

    Teaching Assistant in Computer Science

    McGill University

    Participate in the development of assignments, answer questions on discussion forums, hold office hours and interactive sessions about program design and verification with students as part of an object-oriented software development course.

    • Java
    • Gradle
    • JUnit

Research Experience

  1. -

    Research Assistant in Programming Languages

    McGill University

    Participate in the development of the Beluga proof assistant. Reimplementation of the lexer, parser, and a portion of semantic analysis to support incremental proof development in Beluga. Fixed bugs, updated the software requirements specification, and implemented new features.

    • Beluga
    • OCaml
    • Bash
    • dune
  2. -

    Research Assistant in Computer Science

    McGill University

    Participate in a research project aimed at adapting the mechanization of Standard ML from Twelf to Beluga and provide feedback on the usability of the Beluga and Harpoon projects. Write bug reports and a technical report on the limitations of design decisions in the Beluga implementation.

    • Beluga
    • Twelf
    • OCaml

Skills

Programming Languages

  • 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

Other 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

Projects

Contributions to Beluga

  • OCaml
  • opam
  • dune
  • Bash
Master's project in programming language implementation. Reimplementation of the lexer, parser, and a portion of semantic analysis to support incremental proof development in Beluga. Fixed bugs, updated the software requirements specification, and implemented new features.

Personal Website

  • SvelteKit
  • Node.js
  • JavaScript
  • Tailwind
A statically generated website implemented using SvelteKit to display my CV and blog articles. Developed, wrote and deployed pages providing in-depth explanations on certain topics in mathematics, accumulating 5000+ unique page views.

Compiler for a Subset of C

  • Java
  • MIPS
  • C
  • JUnit
Development of a compiler for a subset of C. Implemented and tested a lexer, a syntax analyzer, a semantic analysis with type-checking, a MIPS code generator, and a liveness analysis for the compilation of programs written in a subset of C.

Ray Tracer

  • Java
A multithreaded ray tracer that realistically renders images with reflections, refractions, quadratic surfaces, metaballs using ray marching, and area lights.

Multilayer Perceptron for Fashion-MNIST

  • Python
  • Scikit-learn
  • pandas
  • Matplotlib
  • Jupyter Notebook
  • TensorFlow
Implementation of a feedforward neural network (multilayer perceptron) with data normalization, regularization, and optimization using the stochastic gradient algorithm. This network achieved a test accuracy of 88.12% on the Fashion-MNIST dataset, compared to the 90.94% achieved by a convolutional neural network implemented with TensorFlow.

fvalue

  • Python
A Python library for formatting physical quantities with unbiased rounding and parameterization of the number of significant figures for laboratory reports.

find-files-by-patterns

  • TypeScript
  • Node.js
  • CI/CD
An open-source Node.js library written in TypeScript, deployed using GitHub Actions, with over 1000 installations. It efficiently traverses the file system and searches for files using the functional programming paradigm.

Video Game Prototypes

  • C#
  • Unity
Implementation of video game prototypes with Unity as part of a modern game development course. This includes the implementation of:
  • procedural maze generation,
  • 2D collisions, and
  • goal-oriented action planning for agent AI.

Education

  1. -

    McGill University

    Master of Science (M.Sc.) in Computer Science, specializing in programming language implementation. CGPA: 3.84/4.00

    Thesis: Parsing, Lexical Scoping and Incremental Development for a Dependently-Typed Programming Language

  2. -

    McGill University

    Bachelor of Science (B.Sc.) in Honours Computer Science. CGPA: 3.84/4.00 Hydro-Québec Admission Excellence Award First Class Honours in Computer Science

    Research report: Towards a Mechanization of Standard ML in Beluga using Harpoon

  3. -

    Collège de Bois-de-Boulogne

    Diplôme d'études collégiales (DEC) in computer science and mathematics. CRC: 36.446

  4. -

    Académie Ste-Thérèse

    High school diploma (DES). Governor General's Academic Medal

Contact