Jean-Philippe Boivin

Jean-Philippe Boivin

B. Ing, M. Sc.

Name:Jean-Philippe Boivin
Date of birth:August 8th, 1994
Address:Montréal, QC, Canada
Phone:
Email:contact@jpboivin.me

Education

2018 - 2019

1. Master of Science in Software Engineering

Université de Sherbrooke, QC, Canada
2013 - 2017

2. Baccalaureate in Computer Engineering

Université de Sherbrooke, QC, Canada
2011 - 2013

3. Diploma of Collegial Studies in Mathematics...

Collège Bois-de-Boulogne, QC, Canada

Professional Experience

2019 - present

1. Ubisoft Montreal – Storm Multiplayer Engine

Generalist Programmer
2015 - 2019

2. Ubisoft Montreal – Storm Multiplayer Engine

Intern — Programmer
  • Redesigned the protocol stack
  • Developed a video chat system
    • Video capture and rendering
    • Conversion between image formats (sometimes using the libyuv library, the Accelerate framework or SSE2/AVX2 intrinsics)
    • Bilinear downscaler using OpenMP
    • Encoding and decoding of the video stream to transmit it over a network
    • Cross-platform: Windows, macOS, iOS, Android, PlayStation 4, Xbox One
  • Developed features for the engine’s voice chat
    • Audio capture module for macOS and iOS
    • Audio capture and playback modules for Stadia
    • Speech synthesis (text-to-speech) module for Windows, PlayStation 4 and Stadia
    • Speech recognition (speech-to-text) module for Stadia
  • Developed a .NET wrapper (C#) for the Storm SDK (C++)
  • Developed a sample game and companion using Storm.NET and Unity3D
    • Cross-platform: Windows, macOS, iOS, Android, PlayStation 4, Xbox One
  • Ported the 2D rendering library to Vulkan for Stadia

Note. I worked in the Storm team for 12 months during my bachelor degree (3 internships of 4 months each) and 4 months during my master degree (1 internship).

2014 - 2015

3. Ubisoft Montreal – Quazal Rendez-Vous

Intern — Programmer
  • Developed a REST API (Platform as a Service) for Rendez-Vous
    • Developed new features and APIs (history, login, etc)
    • Integrated the encryption keys obtention through a secured API (RSA, AES, X.509 certificates)
    • Deployed and tested the web service in several environments
  • Developed a distributed architecture for online services (Quazal Rendez-Vous)
    • Added the registration of nodes in Zookeeper

Note. I worked in the Rendez-Vous team for 8 months during my bachelor degree (2 internships of 4 months each).

2012 - 2013

4. Fluential Inc.

Programmer
  • Developed the dialog manager engine with other developers
    • Documented a solution for a centralized database (using Amazon S3)
    • Designed and integrated a binary file format to package the engine data
    • Ported and integrated Python scripts in the C++ engine (stemmer, spell checker, etc.)
    • Developed some base modules (logging, configuration, threading, etc)
    • Developed an object-oriented wrapper over the SQLite C library

Note. I worked at Fluential for 12 non-consecutive months.

Educational Projects

01.2018 - 04.2018

1. Interconnected smoke detectors

Université de Sherbrooke, QC, Canada
  • Developed in C++1z (w/ CMake)
  • Master-nodes architecture running on rPI (using MQ-2 and MQ-9 sensors)
    • Discovery protocol using UDP (Networking TS)
    • Auto-configuration of nodes using TLS (LibreSSL w/ kqueue and epoll)
    • Periodic sensor’s data transmission and commands transmission using MQTT (mosquitto)
  • Read about the solution here: Détection intelligente de la fumée
05.2018 - 08.2018

2. Digital image processing

Université de Sherbrooke, QC, Canada
  • Implemented multiple digital image processing algorithms
  • Used Intel intrinsics to speed-up the algorithms (SSE, SSE2 and SSE4.1)
  • Algorithms: grayscale, sepia, gaussian blur
09.2018 - 12.2018

3. Ambient Intelligence Lab

Université de Sherbrooke, QC, Canada
  • Security management of Hope BigData Platform

Check the project official website for more information about AmI Lab.

01.2017 - 12.2017

4. Mobile applications for restaurants

Université de Sherbrooke, QC, Canada (for Cluster Systems, Inc.)
05.2016 - 08.2016

5. Web-based version control repository

Université de Sherbrooke, QC, Canada
  • Developed in Java using GWT and GWTP
  • Supporting Git repositories using JGit and Gitolite
09.2014 - 12.2014

6. Networked Laser Tag game

Université de Sherbrooke, QC, Canada
  • Developed in Java using Apache Tomcat for the web interface
  • Client-server architecture using UDP
  • Streaming of the player’s camera on the web interface using VLC
  • SQLite database for tracking scores of previous games
01.2013 - 04.2013

7. Role-playing game w/ online features

Collège Bois-de-Boulogne, QC, Canada
  • Developed in Java using Swing for the graphical interface (2D)
  • Client-server architecture using TCP
  • Basic key-exchange using RSA to encrypt the password

Personal Projects

2016 - 2016

1. Grand Theft Auto: Vice City – Unity3D Port

  • Developed parsers for Vice City file formats (COL, IDE, IPL, IMG, ADF, SFX, etc)
  • Developed importers for Vice City models (DFF) and animations (IFP)
  • Developed importer for Vice City metadata (gta_vc.dat) – loading the whole world inside Unity3D

Note. This project is incomplete. When it was stopped, the map was imported, cars could be imported (no wheels) and characters could be imported (animations working, but not when moving).

 

2011 - 2014

2. SqueezeIt – File Archiver

  • Developed a prototype in C++/CLI using Windows Forms
    • Plugins architecture to support multiple formats
    • Supporting BAR archives and BZip2 archives
  • Developed a basic version in C++ using Qt4 (and Qt5)
    • Plugins architecture to support multiple formats
    • Supporting BAR archives
    • Supporting most archive formats by using libarchive
  • Developed a custom archive format (Boivin ARchive — BAR)
2008 - 2012

3. Conquer Online 2.0 – Server Emulator

  • Developed a server emulator for Conquer Online 2.0 (MMORPG)
    • Multiple emulators in C# over the years, one basic emulator in C++ using Qt4
    • Client-server topology over TCP/IP
    • MySQL database used by some emulators
  • Developed a server emulator for the AutoPatch of Conquer Online 2.0
    • Developed in C++ using Qt4
    • Client-server topology over TCP/IP
  • Developed multiple tools (mostly in C#, one ported to C++)
    • Tool to unpack/pack custom archive formats used by the game
    • Tool to edit the list of maps used by the game
    • Tool to encrypt/decrypt protected files used by the game
  • Implemented multiple ciphers and algorithms used by the game (in C# and C++)
    • Custom XOR cipher (network) — also implemented using SSE2 and AVX2
    • Blowfish
    • CAST-128
    • RC5
    • Diffie-Hellman key exchange