Yann Bourdeau

Concepteur de logiciel


8500 Jean Brillon #311

Lasalle, Québec, Canada, H8N 2J9

Téléphone 438-499-4607

Courriel: yann.bourdeau@mac.com


PROFIL PROFESSIONNEL

Je suis un développeur de logiciel attentionné et rapide qui travaille en Java, Python et C++ sur des projets de grande envergure. J’ai su apprendre rapidement les protocoles SIP (Session Initiation Protocol) et RTP (Real-Time Transport Protocol) pour pouvoir les utiliser dans un contexte de serveur. D’ailleurs, je n’ai aucun problème à entreprendre des projets informatiques qui sont nouveaux pour l’entreprise et les terminer avec succès. Je sais m’impliquer dans une équipe pour qu’elle soit enrichie par mes conseils et idées.


Spécialités: C++, Python, Java, base de données relationnelle (Oracle, MySQL, PostgreSQL), UNIX (Linux, Solaris) et Windows.

EXPERIENCE PROFESSIONNELLE


COFOMO, Montréal                                   09/2019 à


Conseiller Informatique


Mandat de 05/2020 à
Hydro-Québec (IREQ)

- Responsable de concevoir le parallélisme d’une application Python.
- Documenter l’installation et l’environnement virtuel d’une application Python.
- Proposer des améliorations aux programmes des chercheurs de normes de génie logiciel.
- Réusinage de certaines parties d’une application Python dont les logs.
- Fait une application web en Python avec Flask et JQuery.
- Fait un serveur d’arrière-plan en Java avec Spring Boot 2 et en déploiement dans OpenShift sur AWS.

Mandat de 09/2019 à 05/2020
Hydro-Québec (HILO Énergie)

Faire des applications de fonction en Python destiné à être roulé dans Databricks pour générer des rapports à partir de données Cosmos DB.
- Migrer les précédentes applications Python dans des notebooks Databricks.
- Modifier le modèle énergétique en Python du chercheur qui roule dans Databricks pour utiliser des données dans Cosmos DB en lecture et écriture
- Fait un programme en Java avec Java Azure SDK de préparations de de données sur Cosmos DB.
- Faire petits programmes en Python avec Python Azure SDK de population/déplacement de données IoT touchant l'infonuagique avec Microsoft Azure (IoT hubs, Event Hubs, Cosmos DB et SQL) pour tester la solution en développement.
- Fait des Microsoft Stream Analytics de transformation dans Microsoft Azure.

NoviFlow, Montréal                                   10/2015 à 09/2019


Développeur de logiciel Sénior


- Fait la conception et le code sur le Driver. Une application qui fait l’abstraction entre le P4Code et l’application Cybermapper. Ceci est fait en C++17 en utilisant GRPC.
- Fait la maintenance sur des applications RYU en Python avec REST pour pousser la configuration et REDIS pour persister.
- Fait une application de commutation (BGP et OSPF) basée sur dans une image Docker. J’ai aussi fait une petite application en C++ qui répond au changement du noyau Linux commutant les routes qui roule dans une autre image docker.
- Intégrer la précédente application dans le GatewayMapper comme un module d’extension FIB(Forward Information Base).
- Ajouter les fonctionnalités expérimentales de NoviFlow dans les contrôleurs ONOS et ODL. Ceci est fait en Java avec les systèmes de construction BUCK(ONOS) et Maven(ODL).
- Ajouter les fonctionnalités expérimentales de NoviFlow dans OVS. Ceci est fait en C et un système de construction Make. - Fait une interface de gestion pour gérer les applications en Java avec Spring Boot.
- Intégrer une application ODL dans Neutron de OpenStack qui utilise nos commutateurs à la place de OVS.
- Fait des modifications en Java sur ONOS (contrôleur Open Flow) pour supporter plusieurs commutateurs Ethernet (Switch) dans l’application BGPRouter. Utilise Git, Eclipse, Maven pour réaliser ce projet.
- Fait une interface Web pour gérer l’application BGPRouter avec Spring MVC dans un conteneur Apache Karaf. Utilise les technologies Git, Eclipse, Java, Maven.
- Fait une application de gestion de licences des commutateurs en Java, Spring Boot, Spring MVC et Spring Security.
- Implemented an internal resource management web application in Python Flask.


mnubo, Montréal                                   01/2013 à 10/2015


Concepteur de Logiciel


Projet: mnubo m2m cloud platform.

     - Plateforme qui gère l’information d’un objet dans une base de données. Cela permet de faire l’analytique sur les objets entreposés.


     -Subscriber Data Server.

           Serveur que gère l’information des abonnés d’un système téléphonique en C++ sous Linux utilisant MySQL. Ceci est un projet maintenu par notre entreprise, mais qui appartient à Tekelec.


Tâches:

-  Maintenance évolutive du Subscriber Profile Repository en C++. Ce produit contient l’information des utilisateurs pour le serveur de politique téléphonique.

Participer à la conception d’une application avec une interface REST pour transiger avec la plateforme. Fait en Java en utilisant Jersey, Tomcat, Maven, TextMate et Git.

Participer à la conception du Portal de la plateforme. Fait avec Java, JavaScript, Tomcat, Maven, Stripes, Hibernate (MySQL) et Git. Cette interface sert de portal pour les autres applications de la plateforme.

Participer à la conception de l’application Panelo. Fait avec Java, JavaScript, Tomcat, Maven, Stripes, Hibernate (MySQL) et Git. Cette interface sert à gérer les objets dans la plateforme.

Installation et configuration d’un serveur Jenkins pour automatiser les constructions et les tests unitaires.

Correction de bogues dans la plateforme qui sert d’interface avec la base de données NOSQL Cassandra. Fait avec Java, Maven, TextMate et Git.


Tekelec, Montréal                                    03/2011 à 12/2012


Développeur de logiciel


Projet: Subscriber Data Server.

           Serveur que gère l’information des abonnés d’un système téléphonique en C++ sous Linux utilisant MySQL.


Tâches:

Maintenance évolutive du Subscriber Profile Repository en C++. Ce produit contient l’information des utilisateurs pour le serveur de politique téléphonique.

Conception et implémentation de deux interfaces de gestion des utilisateurs. La première interface utilise XML pour échanger les données par dessus TCP. La deuxième interface est faite avec une interface SOAP. Les deux interfaces sont en C++. Ces interfaces sont utilisées par le Diameter Signaling Router pour gérer les utilisateurs.

Fait des programmes de test en Python pour tester les nouvelles fonctionnalités.


Vantrix, Montréal                                    08/2010 à 01/2011


Développeur de logiciel


Projet:  Vantrix Media Broadcaster

             Serveurs de diffusion de média en C++ sous Linux.


Tâches:

Maintenance évolutive du Vantrix Media Streamer en utilisant les protocoles RTSP et RTMP.

Conception et implémentation du service de « blackout management ». Ce service permet de changer la source d’un flux vidéo par un autre.


Isacsoft, Montréal                                    07/2009 à 08/2010


Développeur de logiciel


Projet:  Grille multimédia

             Grille multimédia pour les bibliothèques.


     MondoCom

     Système de notification (courriel, SMS, téléphone) pour les bibliothèques.


Tâches:

Conception et implémentation de Grille multimédia en langage Python.

Conception et implémentation de MondoCom en langage Python.

Aide à l’implémentation du serveur de téléphonie Internet Asterisk de la compagnie.


BroadSoft, Montréal                                    06/2007 à 10/2008


Développeur de logiciel


Projet :  BroadWorks

     Solution complète VOIP (Voice Over IP).


Tâches

Maintenance du serveur de résolution de numéro téléphonique en langage Java et utilisant le protocole SIP et la base de données TimesTen sous Linux et Solaris.

Maintenance du serveur de média en langage C++ et utilisant les protocoles SIP et RTP sous Linux et Solaris.

Maintenance du serveur de génération de statistiques de centres d’appels en Java et utilisant la base de donnée MySQL sous Linux et Solaris.



Tektronix, Montréal                                   03/2006 à 06/2007     

Minacom  (maintenant intégré par Tektronix)


Développeur de logiciel


Projet :   PowerProbe 6000 Sonde Linux qui sert à évaluer la qualité des liens VOIP et téléphoniques.


Tâches

Implémentation de la machine à état générique qui sert à gérer les Tests en C++.

Implémentation de la classe d’abstraction (interface) de la couche de signalisation et de son implémentation en C++. Les protocoles utilisés sont MGCP et SIP.

Maintenance corrective et évolutive de la sonde sous Linux en C++ et utilisant la base de données PostgreSQL sous Linux.


Étude à temps plein                                    01/2003 à 12/2005

Baccalauréat en informatique et génie logiciel



Oracle Corporation, Montréal                              09/1999 à 10/2002

Steltor (maintenant intégré par Oracle)


Concepteur de logiciel


Projet:     Corporate Time Server Serveur de Calendrier qui permet la gestion d’évènements pour un      groupe      d’utilisateur


Tâches

Conception et développement du processus de synchronisation des données de calendrier du serveur au client sous Unix et Windows NT en langage C++.

Conception et développement d’un système de requête de queue pour le système de notification sous Unix e Windows NT en langage C++.

Conception et développement d’un serveur qui permet d’exécuter un programme à distance sous Unix et Windows NT en langage C.

Conception et développement de la librairie d’abstraction des communications inter-processus sous Unix et Windows NT en langage C.

développement de l’architecture à multiple trame d’exécution dans le serveur de calendrier sous Solaris et HP-UX 11.0 en langage C/C++.

Réécriture du serveur de réplication et de messagerie sous Unix et Windows NT en langage C++.

Maintenance corrective et évolutive du serveur sous Unix et Windows NT en langage C++.


Micro Tempus Inc., Montréal                              03/1999 à 09/1999


Analyste-Programmeur


Projet:     TCS (Tempus Connectivity Solution) , architecture unifiée de communication sous Unix, NOVELL      NETWARE, WINDOWS/NT, Windows 3.X, Windows 95 et OS/2.  TCS permet l’échange de      fichiers inter plates-formes. selon le modèle 0SI en utilisant les protocoles TCP/IP, LU 6.2,      NETBIOS et SPX.


Tâches

Maintenance corrective et évolutive d'un serveur de communications  (Node TCS). Maintenance effectuée en langage C sous MVS, UNIX, OS/2 et Windows NT utilisant plusieurs protocoles SNA LU 6.2 , TCP/IP, NetBios et SPX.

Responsable de réaliser la version de TCS qui utilise uniquement le protocole TCP/IP. Ceci a impliqué l’écriture d’un API  de communication pour les applications TCS en langage C++.


Planaxis Technologies, Paris, France                         10/1998 à 03/1999     

Client:     HAL 5, Paris, France


Concepteur - Développeur de Progiciels de Communication.

               

Projet:      Mise à jour d’un serveur Minitel bancaire (Espace Banque) pour l’Euro et support de l’an 2000 sur      les plateformes HP-UX et AIX. Les protocoles utilisés étaient ETEBAC et TCP/IP.

          

Tâches

Conversion de bases de données pour supporter plusieurs devises monétaires et l’an 2000 en langage C++.

Modification du système d’intégration des bases de données pour supporter plusieurs devises monétaires et l’an 2000 en langage C++.               


Micro Tempus Inc., Montréal                               09/1994 à 10/1998


Projet:     TCS (Tempus Connectivity Solution), architecture unifiée de communication inter plates-formes.


Chargé d’équipe de 4 personnes(de 02/1998 à 10/1998 )


Tâches

Supervision de l’Analyste-programmeur en charge de la maintenance de la partie client du progiciel (Workstation TCS).

Supervision de l’Analyste-Programmeur responsable de la maintenance de la partie d’un serveur de communications (nouvelle version du node TCS) qui utilise le protocole LU 6.2.

Supervision de l’Analyste-Programmeur responsable de la maintenance de la partie d'un serveur de communications (nouvelle version du Node TCS) qui gère le "routing" entre serveurs (Node TCS).

Supervision de l’analyste-programmeur responsable de la maintenance de Ia partie d'un serveur de communication (Node TCS) sous Novell Netware.


Analyste-programmeur (de 09/1994 à 02/1998)


Tâches

Maintenance corrective et évolutive de la partie client du TCS (Workstation TCS) effectuée en langage C sous MVS, UNIX, OS/2, Windows 95 et Windows 3.x.

Maintenance corrective et évolutive d'un serveur de communications  (Node TCS) ; Maintenance effectuée en langage C sous NOVELL NETWARE, MVS, UNIX/AIX, OS/2 et Windows NT utilisant plusieurs protocoles SNA LU 6.2 , TCP/IP, NetBios et SPX.

Adaptation sur UNIX d'un serveur de communication (Node TCS) ; adaptation effectuée en langage C.

Responsabilité de la conception et de l’implémentation de la couche d’abstraction du protocole LU 6.2 sur un serveur de communications (nouvelle version du Node TCS) sous MVS, Windows NT et UNIX en langage C.

     

FORMATION

2007 – 2014     UQAM, Montréal                Maîtrise en génie logiciel

2002 – 2005                    UQAM, Montréal          Baccalauréat en informatique et génie logiciel

1991 – 1994             CEGEP Ahuntsic, Montréal     D.E.C. en Informatique non complété


DIVERS

Bilingue, je parle et j’écris couramment le Français et l’Anglais.