Mandats Consultants

Jean Bélanger (Physicien Industriel)

Sommaire

Professionnel multidisciplinaire qui combine 20 années d’expérience en programmation combiné à une solide formation scientifique. Candidat idéal pour des projets qui requiert de l’analyse et résolution de problème (projet de migration). Également le développement d’applications à caractère scientifique. Ci-dessous la liste des mandats que j’ai réalisés et qui couvre un large éventail de l’industrie de la technologie de l’information. 

Expertise

  • Méthodologie Orientée-Objet OO et pratiques modernes de logiciel
  • Optimisation de code utilisant les dernières avancées C++ moderne et techniques de programmation
  •  Historique de résolution de problèmes industriel complexe et support scientifique
  • Confortable dans l’analyse et la synthèse de larges quantités d’information 
  • Expérience en architecture de logiciel de type “framework” et développement par composantes
  • Expérience en simulation et modélisation physique (méthode numérique et librairie scientifique)

Mandats Consultant

Elligno Inc (Août 2023 – Présentement)

TitreProgrammeur Scientifique Senior
ProjetDamBreak++ Simulator
TechnologiesC++11/14/17, algorithme physique, Qt, enterprise architect, google unit test, Math3D
DescriptionElligno est une entreprise de consultation scientifique et technique. Expertise dans le développement des produits technologiques industriels pour rendre les entreprises plus compétitives et rentables. 
ResponsibilitésDéveloppement d’un environnement de programmation pour le prototypage rapide d’algorithmes physique pour la validation sur le problème du « DamBreak » (propagation d’une onde).
 
 ■ Développement d’un GUI pour faciliter la validation et la visualisation des résultats
 ■  Architecture logiciel OO (prototypage de différents design)
 ■  Validation des algorithmes sur des solutions connues (papier scientifique)
 ■  Rapports techniques (présentation des résultats) et documentation
■  Programmer de nouveaux algoritmes physique (publie papier scientifique)
■  Mise au point d’une démo pour l’obtention de crédit de R&D
■   Développement des affaires (partenariats, collaboration scientifique, nouveaux clients)

EA Vancouver, B.C. (Juin 2022 – Juin 2023)

Titre Programmerur C++ (contracteur)
ProjetRefactorisation à grande échelle de la librairie Math3D
TechnologiesModern C++(11/14/17), temps-réel, Google Unit Test, algèbre linéaire 3D, math 3D, Clang AST Tools kit, librairie mathématiques de haute performance
DescriptionEA Vancouver est un studio majeur du géant américain de jeux Electronic Arts (EA) qui possède de nombreux studios dans le monde entier.
Frostbite: Core Systems Group (Foundation) 
Frostbite est une équipe centralisée, c’est le moteur de développement de jeux multiplateforme de pointe d’EA.
ResponsibilitésLa librairie math3D (ibliothèques mathématiques de haute performance) est au cœur du moteur de jeux (Renderer, Animation, Physique, Shader, Camera …) on doit travailler avec diverses équipes de jeux et groupes d’ingénierie. 

But: restructurer le moteur Frostbite pour permettre la dépréciation des anciennes bibliothèques Math qui sont toujours prises en charge dans le code.

Mon rôle en charge du projet (adapter le code, tests, validation, déploiement).  
Ce projet demandait de solides compétences en mathématiques, particulièrement connaître la structure de données du code mathématique 3D (vector, matrice, transformation, rotation), mais également en programmation C++ (metaprogramming, …). 

 Refactorisation à grande échelle en deux étapes  
1. Première étape (automatisation) 
— (qui consiste en une série de scripts (ClangAST Tools kit) qui analyse le code et fait une partie des changements. 
Ex : exécute des scripts (ClangAST) sur un sous-secteur de la base de code, vérifie la base de code. 

2. Deuxième étape (adapter le code) 
— La conversion, par exemple, des systèmes d’animation Frostbite d’une API mathématique à un autre n’est pas triviale. ( plusieurs changements qui ne sont pas pris en compte par les scripts) nécessite de nombreuses astuces mathematiques mais également en programmation C++ (metaprogramming, …).  
Finalement la validation des changements, exécuter les tests unitaires et fonctionnels sur toutes les plates-formes (XBox,PS5, …), compile le code, effectue un test du curseur, etc.

 ■ Programmer/modifier des scripts au besoin (selon les problèmes rencontrés) 
 ■  Adapter certains algorithmes afin être compatible avec la nouvelle version 
 ■  Application des scripts Clang AST (ajout de nouvelles fonctionnalités)   
 ■  Fixer les problèmes informatique et mathématique suite aux changements  
 ■  Rouler les tests et procéder à la validation des changements sur toutes les plateformes 

Morgan Stanley (Octobre 2021 – Février 2022)

TitreConsultant Programmerur
ProjeteFX Trade Capture System
TechnologiesC++11, Unix, bash script,
DescriptionApplication financiere (banque d’investissement) eader mondial
ResponsibilitésSystème électronique utilisé par les courtiers pour exécuter les commandes et suivre la progression de chaque commande. L’application est obsolète et sera remplacée par une nouvelle version. J’étais chargé de corriger des bugs pour prendre en charge la transition. Environnement de travail de production avec des délais serrés.
 
 ■ Bash cripting et programmation C++;
 ■  Programmation de nouvelles fonctionnalités;
 ■  Uinit test et tests fonctionnels;  
 ■  Suivi de bugs fix en production;
 ■  Bugs fix et test intégration;

Elligno Inc (Décembre 2020 – Septembre 2021)

TitreProgrammeur Scientifique Senior
ProjetDamBreak++ Simulator
TechnologiesC++11/14/17, algorithme physique, Qt, enterprise architect, google unit test
DescriptionElligno est une entreprise de consultation scientifique et technique. Expertise dans le développement des produits technologiques industriels pour rendre les entreprises plus compétitives et rentables. 
ResponsibilitésDéveloppement d’un environnement de programmation pour le prototypage rapide d’algorithmes physique pour la validation sur le problème du « DamBreak » (propagation d’une onde).
 
 ■ Prototypage d’un GUI pour faciliter la visualisation des résulttats
 ■  Architecture logiciel OO (prototypage de différents design)
 ■  Validation des algorithmes sur des solutions connues (papier scientifique)
■  Automatisation des tests unitaires dans l’environnement de programmation 
■  Bugs fix et test intégration

Zimmer Biomet Inc. (Mars 2020 – Novembre 2020)

TitreConsultant Programmerur
ProjetRobotics application (soins sante) (ROSA release)
TechnologiesC++11, Qt, Qml, Boost unit test
DescriptionEntreprise biomédicale qui développe une plateforme robotique pour assister les chirurgiens dans la planification et l’exécution de chirurgies complexes (mise en place de la prothèse). 
ResponsibilitésJ’ai intégré l’équipe responsable de la “release” officiel du produit principal “ROSA” (support programmation) soutenir l’équipe pour rencontrer les échéanciers.  
 
 ■ Programmation Qt et QML (ajout de nouveaux éléments graphiques) 
 ■  Migration de fonctionnalités dans la nouvelle architecture () 
 ■  Intégration du module de traduction Qt dans la nouvelle architecture.  
 ■  Documentation technique afin d’être conforme aux exigences médicales 
 ■  Bugs fix et test intégration

OpenMindCapital  (Février 2019 – Février 2020)

TitreConsultant Technique et Scientifique
ProjetApplication financière (programmation et simulation)
TechnologiesR, Java, MatLab, Java Swing UI, Git, NetBeans, algorithm development, RStudio
DescriptionEntreprise de Gestion de portefeuille qui développe à l’interne une plateforme de simulation destinée à assister les traders dans la construction de portfolios afin d’évaluer le risque selon la stratégie.
ResponsibilésResponsable de la maintenance de la plateforme de simulation: programmation de nouvelles fonctionnalités, programmation algorithme, support technique et autres tâches connexes.    

Principales réalisations au cours de mon mandat 
■ Mis au point une librairie d’outils de programmation sous forme de scripts R qui a permis de faciliter et d’automatiser la production de rapports financiers avec un minimum de manipulation.  

■ Re-factoring majeur de l’architecture du module FTP dans une approche plus modulaire de type API. Ceci a permis de rendre l’ajout le support de plusieurs fournisseurs facilement intégrable/modifiable et une standardisation des paramètres lors de l’initialisation de la connexion.      

■ Intégrer un processus de documentation automatiser des procédures pour l’utilisation plateforme de simulation, guide de l’usager) sous plusieurs formats accessibles dans intranet de la compagnie.

Bo-Duc Transport (Mars 2017 – Avril 2018, …)

TitreConsultant
ProjetSystème gestion de transport afin d’automatiser le travail du répartiteur
TechnologiesC++11/14, architecture, OO, Boost library, Qt API
DescriptionEntreprise de transport routier (flotte de camions pour la livraison de nourriture pour animaux de ferme)
ResponsibilitésMise au point d’une application dans le domaine du transport routier qui permet d’automatiser le travail du répartiteur (sous forme visuelle et interface usager).  Le travail du répartiteur se fait manuellement (réception des bons de commandes) et production de bons de livraison. Compagnie veut automatiser ce travail (la chaine de la réception à la livraison) et des rapports. 
 
Mis au point une architecture logicielle pour l’extraction des données et la production de rapports. Architecture logicielle de type Orientée-Objet. L’environnement est sous de composantes avec une librairie d’algorithmes qui supporte plusieurs types d’extraction. Intégration d’un outil pour l’extraction a partir de fichier de format PDF.

■ Mise au point d’une librairie pour les algorithmes
■  Développement interface usager (GUI);  
■ a completer

Adetel Group Inc (Avril 2018 – Février 2019)

TitreProgrammeur-Consultant
ProjetMigration majeur et mise à jour d’une application de vidéo surveillance 
TechnologiesC++, OO, real-time Boost, STL, GStreamer (video streaming) GNU library
DescriptionAdetel développe des applications dans le domaine du transport de passagers par train.  A titre de consultant, j’ai travaillé sur la migration du module de vidéo streaming utilisé par l’application MPM10, console pour la surveillance vidéo en temps-réel du métro de Montréal STM (Société de Transport de Montréal).
ResponsibilitiesLa librairie GStreamer (GNU) est un framework multimédia open source qui fournit des services d’édition et de rendu de contenu vidéo/audio. Le but de la migration (mise à niveau) était de prendre en charge un nouveau type de caméras pour les nouveaux véhicules Azure achetés.

■ Analyse du code afin d’identifier les changements pour la migration; 
■  Programmation avec le Framework GNome et de la librairie GLib; 
■ Débogage et fix de bogues Programmation de nouvelles fonctionnalités; 
■ Participe aux tests de validation. Test (benchmark test) de régression;  
■  Développement interface usager (GUI);  
■ Intégration de la librairie de GStreamer dans l’environnement de developpement; 

Technology 20-20 (Juin 2016 – Février 2017)

TitreConsultant Developeur Logiciel C++/3D
ProjetIKEA VR Extract
TechnologiesBoost, STL, 3D math (linear algebra), C++11/14, Autodesk FBX, algorithm programming
DescriptionIKEA envisage d’intégrer la réalité virtuelle dans leur application en ligne de design intérieur de cuisine afin de rendre l’expérience du design plus réaliste.
ResponsibilitiesPrototype de la nouvelle génération de l’application de design d’intérieur de cuisine afin d’évaluer la faisabilité de l’utilisation de la réalité virtuelle pour obtenir un design intérieur véritablement tridimensionnel (casque 3D) d’une cuisine et ainsi rendre l’expérience plus réaliste. Le prototype est sorti en février 2017 dans 3 magasins (Canada, Asie et Europe). Voir vidéo sur ’YouTube’
.https://www.youtube.com/watch?v=1S0GO5kbMYo,
https://www.youtube.com/watch?v=Figi0Wcz2oE
 
Mon mandat était de développer un module qui permet de convertir les modèles 3D (cuisine au complet) à partir du format interne de la compagnie vers le format FBX, afin d’être visualisé par un moteur de réalité virtuelle tel qu’UNREAL.

Tâche principale 
Extraire les données du modèle 3D format interne (représentation graphique de la pièce) et de reproduire l’équivalent avec la technologie FBX. Cuisine 3D est un containeur de modeles 3D tels que chaises, armoires, etc. … connecté par une relation hiérarchique de nœuds (info géométrique, orientation, position).

Pour plus de details voir page PortFolio/simulation.

■ Analyse du code afin d’identifier les changements pour la migration
■  Analyse du code source, identifier les parties de code pouvant être réutiliser
■ Débogage et fix de bogues Programmation de nouvelles fonctionnalités
■ Participe aux tests de validation. Test (benchmark test) de régression
■ Mise à niveau de certaines librairies de la compagnie pour le support du projet
■ Mise au point d’un environnement pour tester et valider le rendu des modèles)
■ Programmation d’un algorithme qui permet de construire le ‘’scene graph’’ complet dans le nouveau format FBX

CAE Inc. (Septembre 2015 – Avril 2016)

TitreIngénieur système
ProjetModélisation et simulation de systèmes de capteurs électro-optiques
TechnologiesC++, Boost, STL, Real-Time, Object-Oriented, Distributed System, Google unit test
DescriptionCAE (www.cae.com) est un leader mondial en simulation
ResponsibilitésIngénieur système dans le groupe Electro-Optics pour soutenir l’intégration de nouveaux modèles de capteurs dans l’environnement de simulation conçu pour être utilisé dans le système de formation (UAS : Unnamed Aerospace System).
 
■ Ma principale tâche était de résoudre des bugs de l’application principale 
 ■ re-structure de la librairie d’image de polarisation pour une meilleur intégration) support de nouvelles fonctionnalités 
■ Documentation et test unitaires, fonctionnels et système 
■ Re-factoring de certaines parties de code pour les rendre conforme avec le reste de l’architecture

Elligno Inc. (Mars 2014 Août 2015)

TitreProgrammeur Scientifique Senior
ProjetDamBreak++ Simulateur
TechnologiesOON, numerical simulation, C++11/14, Boost, STL, Qt, 3D Modeling (OpenGL), Google unit test, Matlab
DescriptionDéveloppement d’un environnement de programmation scientifique pour la programmation d’algorithme physique
ResponsibilitésDamBreak++ Simulator est un environnement de programmation pour le prototypage rapide d’algorithmes physiques. Dans les projets industriels, les physiciens doivent expérimenter, tester différentes alternatives et ce type d’application facilite et accélère la phase de prototypage (validation sur le problème du bris de barrage).

■ Re-écriture de certaines parties de code et migration vers C++11/14 pour une nouvelle génération de code optimisée
■ Design d’architecture et prototypage (évaluation de nouvelles techniques)
■ Rédaction de rapports techniques (nouvelle architecture)
■ Automatisation des tests unitaires et de la documentation
■  Effectuer des tests manuels selon les besoins, créer des cas de test et tests de validation (fonctionnels) base sur des solutions connues pris de la littérature scientifique
■ Présentation de l’architecture API

RAPPORT TECHNIQUE
A C++ Differential Equation Solver using Object-Oriented Numeric” – J. Belanger, Elligno technical report no. TR1-2014-05

Morgan Stanley (Novembre 2012 Février 2014)

TitreIngénieur Système Logiciel 
ProjetApplication financière (système de transactions temps-réel)
TechnologiesUnix (IBM AIX), Perl, C++, SQL (Sybase), threading
DescriptionMorgan Stanley est une banque d’investissement multinationale américaine et une société de services financiers
ResponsabilitésMembre du groupe BigMac, application centrale du système de transactions (hub), base de données de toutes les transactions qui entrent et qui sont utilisées par plusieurs groupes: opération, trader, …), La stabilité du système est d’une importance capitale. L’équipe est en charge du support et de la maintenance de l’application (maintenir la stabilité du système). 

■ Participer au développement de l’application (algorithmes, fonctionnalités)
■ Programmation des scripts (maintenance) et la production de rapports financiers sur une base quotidienne
■ Support temps réel (production) réagir aux problèmes à mesure qu’ils surviennent au cours de la journée de négociation

L3 MAPS (Mars 2012 Octobre 2012)

TitreConsultant
ProjetRéalité virtuelle (Système Simulation Chirurgicale)
TechnologiesC++, Sofa (librairie physique), 3D, temps-réel
DescriptionL3 MAPPS est l’un des principaux fournisseurs mondiaux de systèmes et services de solutions de contrôle et de simulation
ResponsibilitiesProjet de R&D développement d’un simulateur d’aide à la chirurgie qui est une application client-serveur en réseau (le client collecte les données et les envoie au serveur pour effectuer une analyse en exécutant un algorithme (métriques). 

J’ai développé le module pour la collection de données afin de fournir des mesures objectives pour évaluer les compétences techniques des stagiaires pour accomplir une tâche durant une simulation enregistrant ainsi les scores globaux et spécifiques à la tâche.

Parallèlement à ma tâche principale, je supervisais un employé (problèmes techniques) et m’assurer que le projet avance selon les échéanciers. J’ai également participé au développement du module des algorithme (métriques). 

■ Architecture de la librairie (design OO) 
■ Présentation du projet (avancement du projet sur une base hebdomadaire)
■ Guide d’utilisation, documentation, participé aux revues de code 
■ Développé une librairie de ‘parser’ des fichiers xml pour la lecture et l’écriture des données
■ Support technique (membres de l’équipe) débogage
■ Intégration, optimisation de code et test de validation

Elligno Inc (Juillet 2008 Février 2012)

TitreConsultant
ProjetMigration, support technique et programmation
TechnologiesWindows, Unix, C++, Orientee Objet, simulation numerique, math3D
DescriptionElligno est une entreprise de consultation scientifique et technique
ResponsibilitiesForest Product Sector Council (FPSC, Ottawa, Ont.), CTPayment, Cofomo (mandats), Autolog

Consultant pour une agence gouvernementale federale pour le support infrastructure du réseau informatique et support aux usagers 
Consultant sur un projet de migration d’une application de transaction guichet (Windows platform vers Unix AIX (IBM)) utilise par la société de transport de Vancouver (Translink) 
 
Consultant Programmeur C++ pour une application de gestion du trafic aérien, préparé à la release, recommandations, évaluation. 

Support à la mise en production d’un système débiteuse de la coupe de bois. Profilage de code (performance), identifier les régions à problème et apporter les correctifs nécessaires.

Démarrage de mon entreprise
Parallèlement à mes contrats comme pigiste, j’ai travaillé à mettre en place mon entreprise. Site web, développement de programmes informatique, développement des affaires, demande de subventions.

■ Mise au point d’un environnement de programmation scientifique  
■ Développement d’une librairie math3D (physique3D) 
■ Préparation d’une démo pour présenter aux clients potentiels 
■ Rédaction de rapports techniques (simulation)

Les Entreprises Barrette Inc (Septembre 2007 Juin 2008)

TitreConsultant
ProjetDétection de la flache (imperfection) par imagerie (industrie du bois d’œuvre) 
TechnologiesC, C#, OO, real-time, .Net framework, librairie imagerie Halcon, Numerical Recipes
DescriptionBarrette-Chapais est une entreprise forestière chef de file dans la production de bois de sciage au Québec 
ResponsibilitésDéveloppement d’une application d’imagerie utiliser dans une scierie (algorithme pour détecter les imperfections sur une planche de bois). Permet de classer le bois selon les standards de qualité et optimiser la coupe. 

Algorithme
Le programme reçoit en entrée une image du scanner, série de points (section) qui sont transformés en une image (échelle de gris). Algorithme consiste en une série d’étapes (séquence d’instructions): segmenter l’image en sous images (applique des filtres (imagerie)) transformant ces informations en une image de sortie d’intérêt pour l’utilisateur.

 ■  Implémenté une librairie numérique pour interpolation linéaire (algorithme de fit)
 ■  Programmation du module et architecture sous forme API
 ■  GUI (Graphical User Interface) faciliter le déboggage et validation des résultats
■  Tests de validation en production
■  Tests unitaires et documentation de l’API
■  Intégration du module dans environnement de production (scierie)

Hexagram (Juin 2006 Octobre 2006)

TitreConsultant
ProjetSetDesign (logiciel 3D pour la création de scène de théâtre) 
TechnologiesQt, C++, OO, 3D (Open Inventor), OpenGL
DescriptionHexagram est un réseau de recherche-création en arts, cultures et technologies
ResponsibilitiesSetDesign est un logiciel de modélisation 3D pour assister le scénographe dans la conception de scène d’un espace à usage théâtral.

■ Lead technique, support à la commercialisation d’un logiciel de modélisation 3D
■ Support sur le produit graphique pour résoudre les problèmes de qualité et préparer le produit pour la version finale