Jean Belanger (Industrial Physicist)

Summary

Mandate realized in the IT industry for the last 20 years cover a wide range of industrial settings.

Expertise

  • Writing efficient code by using modern C++ features, and programming techniques
  • Strong technical professional combining computer skills and scientific background
  • Ability to analyze and synthesize large quantities of information (problem solver)
  • Experienced in Object-Oriented architecture using design patterns to develop reusable component
  • Experienced in physics-based simulation (numerical method and scientific library)
  • High-level mathematical, engineering and scientific support to solve complex problems

Consultant Work

Elligno Inc (August 2023 – ongoing)

TitleSenior Scientific Programmer
ProjectDamBreak++ Application (Scientific Programming Environment)
TechnologiesMath3D, 3D programming (linear algebra 3D), Modern C++, real-time, high performance math libraries, Google Unit Test, bash scripting, numerical simulation
DescriptionElligno is a scientific consulting company (for small and large sized organizations) supporting companies in their project and business product development.
ResponsibilitiesResponsible for the development of the DamBreak++, a programming environment aimed to understand physics via modern modeling techniques and using new software development paradigms. The software architecture features a layer of base abstraction that users can use to implement new algorithms quickly, accelerating the implementation of physical algorithms for testing and validating. In industrial applications it is not rare that we must modify or change algorithms for the sake of correction or improvements during the development or execution of a numerical simulation.
 
I am currently working on the migration of the first prototype of the application to Modern C++17/20.  Read more

Main Tasks

■ Optimization technique that use fast-floating type for efficiency;
■ Software documentation  (Use Cases, class diagrams, simulation results);
■ Developed new numerical algorithms to validate the design;
■ Write technical reports about the use of the new architecture;
■ Merged many versions of the prototype into one API;
■ Re-write some algorithm (pieces of code by using new features of C++17/20);
■ Developed a GUI to facilitate testing and visualizing simulation results;
■ Development of a Math3d library (environment to test 3D model, physics 3D);

EA Vancouver B.C. (June 2022 June 2023)

TitleContractor Developer C++
ProjectLarge scale refactoring to allow the deprecation of older Math 3D libraries that are still supported in the code
TechnologiesMath3D, 3D programming (linear algebra 3D), Modern C++, real-time, high performance math libraries, Google Unit Test, bash scripting, large system, Clang AST tool
DescriptionElectronic Arts Inc. is a leading global interactive entertainment software company. EA delivers games, content and online services for Internet-connected consoles, personal computers, mobile phones and tablets.
ResponsibilitiesMember of the Core Systems Group (Foundation), multi-platform game development engine (Frostbite engine)

The mathematical library is the heart of video games and is used by all components of the game (Animation, rendering, physics, camera, etc.). The project consists of restructuring the engine to allow the deprecation of obsolete 3D Math library still supported in the Core Engine System, rewriting some algorithms, convert math type from one Math API to another one and merging several versions (3 versions of the library were used by the distinct groups).  

This is a high-performance mathematical library that uses advanced template trickery for optimization. Converting, say, the Frostbite animation systems from one Math API to another is non-trivial. This project requires both advanced knowledge of programming, particularly in scientific programming, but a good knowledge of 3D mathematics (linear algebra): vector, quaternion, … 

Due to the large amount of code to be parsed, refactoring would be impossible with a traditional find-and-replace regexp. Automation was done by using Clang AST (Abstract Syntax Tree) tool (wrapped in python scripts). 
Refactoring was done in two phases: the first phase consists of running scripts replacing old types with new ones (renames types, function signature …). The second step is the difficult part, what was left out by the script. This task required digging into the code, finding bugs, and fixing them, also failures due to missing dependencies that are generated, validating result make sure nothing was broken and, finally test for different platforms (XBox, PS5, PC, …). 

Typical workflow
■ run Clang scripts on subsector of code base (analyze code)   
■ fix functions call and types make it work in the new environment
■ address issues what was left out by the scripts (manual task … merge, name mangling, …missing dependencies) 
■ run unit tests 
■ check platforms compile  
■  repeat until that area of the codebase is clean 
■ code review 

Morgan Stanley (October 21 March 22)

TitleConsultant Programmer
ProjecteFX Trading System
TechnologiesC++17, Boost unit test, real-time, SQL, bash scripting, large system
DescriptionMorgan Stanley is a world leader in finance. Electronic system (eFX) developed to execute trades through a software system using the FIX (Finance Information Exchange) protocol. Brokers use this to fill orders and track the progress of each order throughout the system.
ResponsibilitiesThe application is being deprecated and will be replaced by a new re-designed with modern technologies. I was assigned to fix bugs to support the transition towards the latest version of the trading system. Work in a production environment with tied deadlines.

■ Bash scripting to test and validate fixes
■ Integrated new features (in the legacy code) requested by brokers
■ Code analysis (workflow) of a complex and large code base (no documentation) and minimal supervision
■ Perform unit test and system functional test

Zimmer Biomet Inc. (March 20 – November 20)

TitleConsultant Programmer
ProjectRobotics application (health care) (ROSA release)
TechnologiesC++11, Qt, Qml, Boost unit test
DescriptionThe Company designs, develops, and markets medical software, instruments and computerized systems designed to help orthopedic surgeons increase accuracy in knee implant surgery.
ResponsibilitiesIntegrated the Core Technology group supporting the team in delivering the next generation of the major product ROSA.
■ GUI programming (add new functionnalities)
■ Bugs fix to support the major release of the main product ROSA;
■ Integrated Qt Internationalization package with Dynamic Translation ‘’handle Language Change’’
■ Perform unit test and system functional test
■ Documentation and system test;

OpenMindCapital  Inc (February 2019 – February 2020)

TitleScientific and Technical Consultant
ProjectFinancial application (programming and simulation)
TechnologiesR, Java, MatLab, Java Swing UI, Git, NetBeans, algorithm development, RStudio
DescriptionOpenMindCapital is a quantitative and technology driven portfolio manager. Company develops an application a risk management and simulation platform designed to assist in the construction of efficient portfolios. It is written in Java and provides UI modules for easy navigation and report creation.
ResponsibilitiesI was responsible for technical aspects financial app this include support, maintenance and development of new functionalities.
■ Design, implementation and tests of algorithmic trading programs
■ Develop simple or complex software functionality but with limited scope
■ Collaborate with the team to define, design, and ship new features
■ Help maintain code quality, organization, documentation and automatization

R package development
Developed a library (package) written with R language to automate the creation of financial report. Goal was to provides a set of services that will help task of creating report.The package provides services to read data from simulation platform and put it in a format more easily manageable to compute, plot of statistical data. User can create a report with pre-defined set of functions to extract, visualize and make graphical output that can be inserted in a report.

Programming (simulation platform)
■ Refactored the FTP library (simulation application): re-design new class to support multiple connection and data provider in more modularity approach;
■ UI programming to the main application (added new report functionalities to main app). Implemented new functionnalty in the report builder;

Financial Algorithmic development
■ Implemented/Integrated a new algorithm that compute the rank of a stock portfolio (measuring portfolio performance);
■ shell cmd function to calculate some stock parameter value by simply writing functions … strategy );

Adetel Group Inc (April 2018 – February 2019)

TitleProgrammer-Consultant
ProjectMajor Porting/upgrade streaming engine (video surveillance)
TechnologiesC++, OO, real-time Boost, STL, GStreamer (video streaming) GNU library
DescriptionMPM10 CCTV (Control Console Television Video) console a real-time complete video surveillance solution used by Montreal public transit transportation (STM).
ResponsibilitiesOperators in the control room console can watch remotely constant stream of information from CCTV and surveillance cameras through access of the so-called NVR (“network video recorder”) and to be able to monitor, search, playback, camera viewer, remote live video, recording, and video file verification tool.

To migrate (porting) the application to a newer version of GStreamer to fix issues addressed by the customer. GStreamer library (GNU) is an open source multimedia framework which provides services for editing, rendering video/audio content. Purpose of the migration (upgrade) was to support new type of cameras for new Azure vehicle cars they bought. Also, to fix issues addressed by STM with the original version of the application.

■ C/C++ programming in the GLib framework of GNome;
■ Perform Code analysis;
■ Script programming for install process;
■ Upgrade some external lib and drivers;
■ Programmed new features reuired by customer
■ Adapt code to support GStreamer newer version;
■ Fix issues and bugs,test and validate;
■ Planification (schedule) and workload estimate;

Technology 20-20 (June 16 – Feb 17)

TitleConsultant Software Developer C++/3D
ProjectVirtual Reality prototype (IKEA VR Extract)
TechnologiesBoost, STL, 3D math (linear algebra), C++11/14, Autodesk FBX, algorithm programming
DescriptionIKEA is evaluating bringing more realism in the interior design with the help virtual reality that will allow people to not only experience a full 360° view, but to also experience walking around the virtual models and feel measurement.See video on ’YouTube’.https://www.youtube.com/watch?v=1S0GO5kbMYo,https://www.youtube.com/watch?v=Figi0Wcz2oE
ResponsibilitiesCurrently developing a prototype to design kitchen using virtual reality technology to evaluate the feasibility of using virtual reality to achieve higher truly three-dimensional (3D) interior design of a kitchen.My mandate was to create an application that takes a 3D model in the proprietary format and convert it to Autodesk FBX format that can be visualized by a virtual reality engine such as UNREAL. The prototype was released in February 2017 in 3 different stores (Canada, Asia and Europe).

Tasks
■ Extracted scene graph data model from proprietary format 3D environment information needed to reproduce the whole 3D environment (meshing with polygons) in the new FBX Autodesk format;
■ Developed a library for reading/writing 3D scene graph and convert to FBX;
■ Adapted algorithm for parsing scene graph;
■ Refactored some of the algorithm in a modular approach (API);

CAE Inc. (Sept. 15 – April 16)

TitleSystem Software Engineer
ProjectsModeling And Simulation of Electro-Optical Sensor Systems
TechnologiesC++, Boost, STL, Real-Time, Object-Oriented, Distributed System, Google unit test
DescriptionCAE (www.cae.com) is a global leader in providing advanced simulation and controls equipment and integrated training solutions for customers in the civil aviation, military and marine markets.System Engineer in the Electro-Optics group to support the integration of new sensor models in the simulation environment designed for use in (UAS: Unnamed Aerospace System) training system.
ResponsibilitiesMy responsibilities include participation in the, contributions to software development, system simulation and analysis.

■ Integrate new sensor model in the programming simulation environment (OO framework);
■ Refactored packages for better integration to support new features of image sensor;
■ Perform unit test and system functional test;
■ Documentation and system test;

Elligno Inc. (March 14 August 15)

TitleScientific Programmer
ProjectsNumerical simulation
TechnologiesOON, numerical simulation, C++11/14, Boost, STL, Qt, 3D Modeling (OpenGL), Google unit test, Matlab
DescriptionDevelopment of a physics library which is an object-oriented of Dam-Break solution algorithms written in C++
ResponsibilitiesDamBreak++ Physics SimulatorProject is based on an Object-Oriented framework with main objective is to provide a programming environment for the rapid prototyping of mathematical/physics based algorithm using classes at a high abstraction level. In many industrial project, physicist need to experiment, test different alternative and this kind of library is needed to facilitate and accelerate the prototyping phase for programming numerical physics based algorithm.

■ Rewrite some of the numerical algorithm using optimized data structure;
■ Re-factored simulation code and migrated prototype to C++11 to obtain a more scalable and maintainable new generation;
■ Validated the code by using known solution taken from literature;
■ Set up guidelines and policies for automation (unit testing, documentation);
■ Write technical report and make presentation of the software packages;
■ Development of a GUI to facilitate testing and visualizing simulation result;
■ Performed manual testing as needed, create test cases and defect recorded;
■ Design, develop, debugs, performance optimization, and integrate third party library;
■ Review, research, analyze, and evaluate new software techniques, tools for simulation;

Technical Report“A C++ Differential Equation Solver using Object-Oriented Numeric” – J. Belanger, Elligno technical report no. TR1-2004-05 ()

Morgan Stanley (November 2012 February 2014)

TitleSoftware System Engineer
Projets (Mandats)Financial application (trade-support) monitoring and supporting the technical and operational stability of the trading systems
TechnologiesUnix (IBM AIX), Perl, C++, SQL (Sybase), threading
DescriptionTop US major bank investment
ResponsibilitiesMember of trade-support group, provide real-time front trade-support working directly with the trading desks and operation team to understand and react to issues as they arise during the trading day.

Participate to the development and maintenance of the group’s application stack (writing script to monitor, including database load, cache requests, server requests, and outgoing bandwidth).

L3 MAPS (March 2012 October 2012)

TitleConsultant-Programmer
ProjectComputer-generated real-time surgical simulation
TechnologiesC++, Sofa (physics library), 3D, algorithm development, real-time
DescriptionL3 MAPPS is a leading global supplier of naval handling and visual landing aids systems, control and simulation solutions products.
ResponsibilitiesSurgery simulator Virtual reality (Training System Simulation) is a networking client-server application (client collecting the data and sending to server to perform analysis by running algorithm (metrics).

I was hired as a consultant to develop and implement data gathering algorithm library to provide objective metrics for assessing the technical skills of trainees.

Alongside my main task, I supervised an employee (technical problems) and ensured that the project progressed according to schedule. I also participated in the development of the algorithm module (metrics).
Library of validated metrics algorithms features, including the time needed to complete a task, errors, economy of motion, and psychomotor tracking, thus recording overall and task-specific scores for each student’s performance.

■ Technical support group members
■ Participated in design (architecture) of the module
■ Presentation on a weekly basis of the progress of the project
■ code review and documentation
■ Code optimization (performance)
■ Implemed a module for parsing “xml” document (reading/writing)
■ integration and validation test

Elligno Inc (January 2008 February 2012)

TitleContractor
ProjectMigration, technical support and programming
TechnologiesWindows, Unix, C++, Object-Oriented, numerical simulation
DescriptionWorked as independent contractor to provides services such as support, maintenance and programming
Responsibilities■ Consultant for government agency (technical support for the network infrastructure)
■ Programmer on migration project and support a release product.
■ Ported an application (multi-threaded) from Windows platform to Unix AIX (IBM)
■ Analyst-Programmer C++ for an Air management Traffic System (bugs fix, software evaluation and recommendation)
■ Developed a physics library algorithms written in C++
■ Implemented a math 3D library with main application in real-time physics modeling
■ Support a real-time Windows-based application that serves as a backbone in sawmill facility (Code optimization and solve performance issues)

Les Entreprises Barrette Inc (September 2007 June 2008)

TitleSoftware Developer
ProjectDefect tracking by image processing
TechnologiesC, C#, OO, real-time, .Net framework, Halcon image library, Numerical Recipes
DescriptionHardwood industry (Imagery defect tracking)
ResponsibilitiesDeveloped an image processing algorithm using a third party library (Halcon) and .Net framework for a sawmill facility.Programs featured an algorithm and image concepts, defined as a sequence of instructions that operates on a set of input images, transforming that information into an output image that is of interest to the user.Implemented a numerical library for shape fitting algorithm using numerical recipes

Hexagram (June 2006 October 2006)

TitleProgrammer
Project3D software that helps art director in the creation of theatrical scenery
TechnologiesQt, C++, OO, 3D (Open Inventor), OpenGL
DescriptionSupport on art director graphics product to solve quality issues and prepare the product for final release
Responsibilitieswritten in C++ and Open Inventor3D programmingBugs fix