• Main Page

    I am a software developer with 19 years of experience, 10 years in C++, 5 years in C development and 4 years in Java development.

    I have done contracts for the Defence Research and Development Canada (DRDC), Honeywell Aerospace, CAE Healthcare, Siemens Healthcare, Nortel Networks, Mitel Networks, MMIST Inc., Cardia West, Solacom Technologies and others. I have done contracts on on Secure and Efficient Situational Awareness Ad-Hoc routing protocols, Global Express Aviation (GXA) project, Precision Aerial Delivery System (PADS), Unmanned Aerial Vehicle (UAV), Single-Photon Emission Computed Tomography (SPECT•CT ) diagnostic solution, full-body patient simulator and other medical devices, routing devices and IP phones. Working over QNX Neutrino RTOS, Linux, RT Linux and VxWorks.

  • Profile

    Profile

    A presentation on my professionnal career.

    Highlights

    An overview of my professional achievements.

    Skills

    An overview of some of the skills I have accumulated over the years.

    Resume

    A downloadable copy of my resume in pdf format.

  • Projects
  • Photo Albums
  • Contact Me
    Michel Belanger

    Address :
    101, rue Marie-Louise-McGregor
    Gatineau, Quebec, Canada, J8L-0E2

    Phone :
    819-319-6005

    Email :
    mail@michel-belanger.ca
Web site designed by Michel Bélanger

Profile


I am a software developer with 19 years of experience, 5 years in C development, 10 years in C++ and 4 years in Java development. I have designed and implemented C/C++ software for many different Operating Systems like QNX Neutrino, Linux and VxWorks.

For the last 9 years, I have done independent contracting in software engineering for several different companies like Defence Research and Development Canada (DRDC), Honeywell Aerospace, CAE Healthcare, Siemens, Nortel Networks, Mitel Networks, MMIST Inc., Cardia West, Solacom Technologies and others. Since 2006, I have done contracts on Secure and Efficient Situational Awareness Ad-Hoc routing protocols, Global Express Aviation (GXA) project, Precision Aerial Delivery System (PADS), Unmanned Aerial Vehicle (UAV), Single-Photon Emission Computed Tomography (SPECT•CT ) diagnostic solution, full-body patient simulator and other medical devices, routing devices and IP phones. Working over RT Linux, QNX Neutrino RTOS, VxWorks and in many cases without an operating system. The projects have ranged from hardware drivers to graphical user interface, graphical libraries, micro-controller firmware, embedded web interface, windowing infrastructure, QNX Neutrino RTOS to RT Linux product port and more.

Before becoming a consultant, I have worked 5 years for QNX Software System. I have contributed several applications to the QNX Neutrino real-time OS, I did engineering services for IBM by porting/fixing the Linux RealPlayer 8.0 Gold to QNX Neutrino and I spent 4 years in the tools group designing, programming and implementing the System Profiler, an Eclipse plugin to analyze how all the components in a complex real-time system interact with each other using events from an instrumented kernel.

Before QNX Software System I have worked 3 years for Altersys Inc, for witch I have developed and implemented several interface programs and administrators on a real-time OS for their Soft-DCS software ( Isagraf ). I have interfaced with different hardware like GPS receivers, DPSs, etc, and with several different PLCs like Allen Bradley, Omron, Fugi, Yokogaya, etc, over several different type of communication medium like TCP/IP, UDP/IP, RS-232, RS-485, EISA, PCI, VME, etc. I did also spend over a year leading a team to design, program and implement an Emergency Supervision Software for a nuclear power plant in South-Carolina.

I have started my career by working 2 years at Multimeg Inc (Comact). developing, programming and integrating production optimization and automation software on a real-time OS for hydraulic, pneumatic and electric systems on sawmills production lines across Quebec, Ontario, New-Brunswick and the U.S.A. east coast.

Career Highlights


Defence Research and Development Canada (DRDC). ( 10 months )
- Wireless Side-Channel communication protocol.
- Secure and Efficient Situational Awareness wireless Ad-Hoc routing protocol.

Honeywell Aerospace ( 6 months )
- AES (Aircraft Earth Station) controller for the GXA (Global Express Aviation) project.

Poutine Software Inc. ( 3 months )
- PS UDP for Blackberry devices - UDP/IP connectivity tester.
- PS TCP for Blackberry devices - TCP/IP connectivity tester.
- PS Scan for Blackberry devices - TCP/IP scanner utility.
- PS SSID for Blackberry devices - Wi-Fi network scanner.

CAE Healthcare ( 13 months )
- OO platform layer for the STM32F37x ( ARM cortex-M4 ) micro-controller.
- Resource manager for a micro-stepping motor controller with motion engine and SPI (L6480).
- Resource manager for a Digital I2C Humidity and Temperature sensor (Si7005).
- Resource manager for a Smart push-button on/off controller with Smart Reset™ (STM6601).
- Resource manager for a Dual Smart Battery System Manager (LTC1760).
- Resource manager for a Self Contained 802.11 b/g/n Module with Networking Stack (RS-9110-N-11-22).
- TCP/IP and UDP/IP test application, running under Linux, for WIFI connectivity.

Siemens ( 4 months )
- Make project code compliant to ANSI C/ISO C++.
- Port the build infrastructure from command line to IDE tools ( Momentics ).
- Solved issues/bugs of the Symbia project and the Ecam project.

MMIST ( 40 months )
- High Availability Manager to launch and monitor processes and services under QNX Neutrino.
- Auto-On firmware on a PIC19F2423 micro-controller from Microchip Technology Inc.
- OO platform layer for the STM32F103 ( ARM cortex-M3 ) micro-controller.
- OO platform layer for the STM32F205 ( ARM cortex-M3 ) micro-controller.
- Auxiliary Power and Engine Controller firmware on a STM32F103 micro-controller.
- Stepper Controller Unit firmware on a STM32F103 micro-controller.
- Embedded web interface with CGI binaries to monitor and program the Sherpa.
- Embedded web interface with CGI binaries to monitor, program and control the Bravo.

Mitel Networks ( 12 months )
- Video Driver and Graphic Driver for Mitel 5324, 5340, 5360 and 5540 IP phones.
- Integration of PEG graphic library on VxWorks

Nortel Networks ( 12 months )
- Customization of Nortel IP phone AG2000 UI for a specific client.
- New windowing infrastructure in Unistim 3.0 for AG2000 Release 7.0.

CardioWest™ ( 3 months )
- Graphical engine for a prosthetic heart monitoring system

M5T ( 2 months )
- HTTP proxy server respecting RFC 2616

Solacom Technologies ( 4 months )
- Telephony programmable digital switch ported from QNX Neutrino to Fedora Linux

QNX Software System ( 5 years )
- OS graphical tools (scientific calculator, network configuration utility, directory search utility).
- Graphical utility to searches files/sdtin for lines matching a given regular expression
- Linux Real Player 8.0 gold port to QNX Neutrino
- QNX System Profiler ( 6.3.0, 6.3.0 SP1, 6.3.0 SP2 and IDE 4.0 )
- Eclipse SWT based chart engine

Altersys ( 3 years )
- Emergency supervision software for a nuclear power plant.
- An SQL database graphic editor under Photon
- Device drivers for different hardware, PC104 cards, GPS Systems synchronization,
- Data acquisition system over the PCI bus and the VME bus
- Device drivers for PLC over Ethernet TCP/IP, Ethernet UDP/IP, RS232 and RS485 Serial
- Quality control software under QNX Photon for all Altersys device drivers

Multimeg ( 2 years )
- Bring the cant linear optimizer to a level of performance/reliability unmatched on the market
- Engineer, design and program a high speed side boards optimizer


Technical Skills


Sectors : Aerospace, Telecommunication, Operating System, Tools, Nuclear, Medical, Pharmaceutical, Industrial Automation, Military.

Languages : C/C++, Java, HTML, CSS, JScript, XML, CGI, HTTP, shell script.

Operating Systems : QNX Neutrino, VxWorks, Linux, RT Linux, Solaris, MQX, RTX.

Software development : High Level Application, Graphic User Interface, Development Tools, Graphical Library, Low Level Hardware, Network Communications, Database, Multimedia, Resource Managers, Device Drivers, Micro-Controllers embedded firmware.

Hardware : ARM Cortex-M3, ARM Cortex-M4, PIC processor, X86, Interrupt Handlers, Interrupt Vector table, WIFI, Ethernet, USART, SPI, I2S, I2C, SMBus, PCI, PWM, RTC, DMA, SDADC, ADC, DAC.

Object Oriented Programming : Object Oriented Design, Object Oriented Development.

Developer Tools : : Eclipse, WindRiver Workbench, CrossStudio for ARM, uVision IDE for ARM, NetBean, Visual C++, QNX Momemtics, Raisonnance Ride7, Exata Network Emulator, GCC Tool chain, Microsoft Visual Studio for C++ and for Web, CVS, SVN, IBM Rational tools( QuestCase, ClearQuest ), IBM Lotus Notes, IBM Doors. JTAG Flasher/Debugger, oscilloscope, function generators.

Others : DO-178, Cross-Platform development, Widgets, Localization , Telephony, IP addressing, Local area networks, Network Security, Web Server, HTTP Server, Virtual Private Networks, Real-time, Kernel instrumentation, Multi-threaded application, Socket programming, TCP/IP Server/Client, UDP/IP Server/Client, Raw IP Server/Client, FTP Server/Client, Inner Process Communication, Real-time signals, Interrupt handlers, Data streaming, Sybase Database, MySQL database.


Projects



Defence Research and Development Canada (DRDC) ( October 2014 – July 2015 )


C++ development ... As a resource to the Resilient Tactical Networks Group of the Cyber Operations and Signals Warfare Section at Defence Research and Development Canada, I was called to implement different network protocols designed by D.R.D.C. and add the implementations to the Exata Networks Simulator.

Projects



Honeywell Aerospace (August 2014 – February 2015)


Global Express Aviation


C++ development ... As a resource to Honeywell Aerospace R&D team, I was called to contribute in the design and development of the software for the GX Aviation (Global Express Aviation) project. Targeting both passenger aircraft and business jets, GX Aviation is a global high-speed in-flight connectivity service that will provide data rates to the aircraft of up to 50Mbps. Using GX Aviation, passengers will be able to do everything from real-time social media updates and emails to live-streaming TV, all while in flight, and from virtually anywhere in the world, over both land and sea.

Projects



CAE Healthcare (March 2013 – March 2014)


Patient simulator project


C++ development ... As an external resource to CAE Healthcare R&D team, I was called to contribute in the design and development of the software for the advanced full-body interactive birthing patient simulator. The birthing patient simulator offers the functionality required to train in a wide range of midwifery and obstetric skills. The delivery system has been designed to replicate delivery in a realistic and reliable manor with different possible scenario for the baby going through the birth canal.

Projects



Siemens (August 2012 – September 2012)(January 2013 - February 2013)


Symbia project


C++ development ... As an external resource to Siemens R&D team on the Symbia project, I was called to solve issues the team was having in trying to make the code ANSI/ISO C compliant. The latest GCC compiler under Neutrino 6.5.0 is a lot stricter in enforcing ANSI/ISO C. Once I made the project code compliant to ANSI/ISO C, adjusted the build infrastructure, tested and debugged the software, the Siemens team was able to continue evolving their software. The Symbia™ is an advanced and highly integrated diagnostic SPECT•CT solution, it expands the role of nuclear medicine into routine surgical planning, orthopedics, advanced cardiology and much more.

Ecam project


C++ development ... As an external resource to Siemens R&D team on the E.Cam project, I was called to solve issues the team was having in trying to make the code ANSI/ISO C compliant. The latest GCC compiler under Neutrino 6.5.0 is a lot stricter in enforcing ANSI/ISO C. Once I made the project code compliant to ANSI/ISO C, adjusted the build infrastructure, tested and debugged the software, the Siemens team was able to continue evolving their software. The E.Cam system is a proven performer featuring variable angle capability, on the fly uniformity corrections, advanced flexible display applications, and excellent image quality. This is a full service camera that is tailored for the heavy patient load of hospitals and yet can still be extremely effective in working through a pure cardiac imaging schedule.

Projects



MMIST Inc.


Bravo project (June 2010 - June 2012)


C++ development ... As part of MMIST's Software group, I was called to contribute in the design and development of the software for the Snowgoose Bravo, an Unmanned Aerial Vehicle (UAV). The system could launch itself without the need for ground support equipment, enabling, through GPS-guidance, not just delivery of cargo, but also cargo extraction. The Bravo provides a near Vertical Takeoff and Landing (VTOL) aircraft. It was designed to autonomously airdrop multiple 100-pound cargo bundles into hostile or denied areas, then returning to base where it can be re-equip for its next mission. The system also featured WIFI Ethernet networking, Iridium satellite communication and RF communication.

Sherpa project (Mars 2009 – June 2010)


C++ development ... As part of MMIST's Software group, I was called to contribute in the design and development of the software for their Sherpa™ Precision Aerial Delivery System (PADS). The Sherpa™, a GPS-guided aerial delivery systems, enable safe, accurate delivery of cargo from a variety of fixed / rotary-wing aircraft. The system featured an optional Radio Frequency remote manual control, with ability to reprogram the target point in-flight with the push of a button. The system also featured WIFI Ethernet networking and RF communication.

Projects



Mitel Network (February 2008 – January 2009)


C++ development ... As part of Mitel's firmware group, I was called to contribute in the design and development of the firmwares for their next generation IP phones. The Mitel IP Application phones features unified communications, speech recognition, PC integration, contact center, and remote voice and data applications delivered by Mitel IP Communications Platforms.

Projects



Nortel Networks (August 2007 – December 2007)


C++ development ... As part of Nortel security and graphic group, I was called to contribute in the design and development of the firmware for their next generation Enterprise IP phones.

Nortel Networks (January 2007 – July 2007)


C++ development ... As part of Nortel security and graphic group, I was called to contribute in the design and development of customizations required into the Nortel's Unistim (Unified Networks IP Stimulus) 2.0 firmware for a Nortel client from the financial sector using the AG2000 Nortel Enterprise IP phones.

Projects



CardioWest™ (Mai 2007 – July 2007)


C development ... As a Software Engineering Consultant, part of a team of software engineering consultant contributing in the design and development of the software for a Companion TAH-t Pneumatic Drive System. The CardioWest™ TAH-t is a pneumatic, biventricular, implantable bridge-to-transplant system for full cardiac replacement, taking the place of the failing heart in patients at imminent risk of death. The Companion powers the TAH-t in the Operating Room and is used throughout the patient's hospital recovery until the patient receives a human heart transplant.

Projects



Media5 Corporation (November 2006 – December 2006)


C++ development ... As a Software Engineering Consultant, part of a team of software engineering consultant contributing in the design and development of new features for M5T's SIP-based communications software solutions.

Projects



Solacom Technologies (August 2006 – November 2006)


C development ... As a Software Engineering Consultant, I was called to port the multi-process/multi-threaded software of a programmable telephony switch from an QNX Neutrino proprietary architecture using QNX Neutrino native inner program communication to POSIX and TCP/IP communication over Linux.

Projects



QNX Software System


System Profiler project (April 2002 – February 2006)


JAVA development ... As prime software developer ( of a group of one developer ) on the QNX System Profiler project, I architect, design and implement a graphical tool to analyze how all the components in a complex Real-Time system interact with each other using events from an instrumented kernel. The System Profiler is an Eclipse editor plugin with several extension points and Eclipse views all written in Java.

Application Group (January 2001 – Mars 2002)


C/C++ development ... As senior software developer on the application group, I was called to maintain and enhance existing application and create new ones. I created multiple OS tools like the graphical localization utility (timezone, language, keyboard), the graphical scientific calculator, graphical the network configuration utility, the graphical directory search utility and the graphical utility to searches files/sdtin for lines matching a given regular expression. I did custom engineering for IBM in porting/fixing the Linux Real Player 8.0 gold to QNX Neutrino.

Projects



Altersys Inc.


Emergency supervision software (October 1999 – December 2000)


C development ... As senior software developer, lead architect and technical lead, I was called to manage a group of 4 full time software developers and up to 6 software engineering consultants to architect, design and implement an emergency supervision software for a nuclear power plant in South-Carolina ( Carolina Power & Light Co. ) .

Driver group (Febuary 1998 – September 1999)


C development ... As a software developer in the driver group, I was called to developed and implemented several interface programs and administrators on a real-time OS for their Soft-DCS software ( Isagraf ). I have interfaced with different hardware like GPS receivers, DPSs, etc, and with several different PLCs like Allen Bradley, Omron, Fugi, Yokogaya, etc, over several different type of communication medium like TCP/IP, UDP/IP, RS-232, RS-485, EISA, PCI, VME, etc.

Projects



Multimeg Inc. / Comact (May 1996 – January 1998)


C development ... As software developer, I was called to develop, program and integrate production optimization and automation software on a real-time OS for hydraulic, pneumatic and electric systems on sawmills production lines across Quebec, Ontario, New-Brunswick and the U.S.A. east coast.

Projects



Poutine Software Inc.


PS UDP (May 2014)


C++ development ... PS_UDP is a simple utility based on the UDP datagrams. Its main purpose is to test the UDP/IP connectivity. It allows you to send UDP/IP packets from your smart phone to a host and to receive UDP/IP packets from a host onto smart phone. It is a debugging tool for software developers.

Using : the Qt UI framework, the POSIX Socket API and the POSIX Threads API

PS TCP (June 2014)


C++ development ... PS_TCP is a simple utility based on the TCP datagrams. Its main purpose is to test the TCP/IP connectivity. It allows you to send TCP/IP packets from your smart phone to a host and to receive TCP/IP packets from a host onto smart phone. It is a debugging tool for software developers.

Using : the Qt UI framework, the POSIX Socket API and the POSIX Threads API

PS Scan (July 2014)


C++ development ... Scanner using the operating system network functions (TCP / IP three-way handshake ). The scanner does not require special privileges. It allows you to scan the network for hosts with open TCP/IP ports, and then scan these hosts more intensively.

Using : the Qt UI framework, the POSIX Socket API and the POSIX Threads API

PS SSID (July 2014)


C++ development ... Wi-Fi network scanner. Displays the results of the last scanning of the Wi-Fi networks done by the device and will update the information on each system event for new results.

Using : the Qt UI framework, the POSIX Socket API and the POSIX Threads API