NET/ C++ / Algorithmique avancée
En parallèles de la mission en cours, formation de 4 classes d’étudiants (2ème, 3ème et 4èmes années) sur les nouveautés du Framework 4.5, ainsi que des cours d’algorithmique avancée, passage des oraux, et correction des projets personnels.
Les cours ont concerné :
- Les principes de l’ergonomie moderne avec les applications universelles.
- Programmation parallèle en .NET
- Azure, la technologie du Cloud Microsoft. Correction des projets Azure des étudiants.
- Les technologies WCF et Web API.
- Algorithmes avancés (application du Master Theorem, mesure de la complexité des algorithmes, algo dynamique, glouton, structures arborescentes)
C++, C#, Transact-SQL
Projet 1 : La société IMT (IMA Télésurveillance) vend des solutions de télésurveillance de sites et de personnes fragiles. Elle gère l'installation du matériel sur les sites et les déclenchements d'alarmes grâce à des plates-formes de télésurveillance. En prévision de la mise en place de nouvelles applications, la société IMT m'a confié la refonte de l'architecture de transfert des flux avec l’application de gestion des alarmes.
ï® Proposition d’une architecture « orientée événement » permettant un silence réseau dans le cas d'absence de donnée à traiter.
ï® Remplacement des solutions existantes qui balaient les bases SQL pour détection d'ajouts/modifications/suppression, qui surchargent les serveurs de base de données et ajoute du traffic réseau.
ï® Développement de la solution complète en collaboration avec l’équipe de développement interne. Développement d'un concentrateur de redirection des données, d’une sentinelle d’extraction et d’un service de gestion de flux, avec historisation.
ï® Mise en place de notifications par WebService sur déclencheur SQL Server.
ï® Développement d’un client Angular2 de supervision temps réel des flux, la consultation des historiques et la relance des flux
Projet 2 : Conception et réalisation d’une application temps réelle de gestion des interventions sur site. L’application permet la remontée des comptes rendus d’interventions en temps réel depuis le terrain par une application mobile vers les opérateurs sur les plates-formes de télésurveillance, ainsi que la communication par chat de l’opérateur avec les différents intervenants sur le terrain.
ï® Proposition et réalisation d’un client Web avec Angular2, communiquant par WebSocket avec le serveur
ï® Réalisation du serveur .NET, qui interagit avec l’application de gestion des alarmes.
ï® Architecture reposant sur Reactive X, ASP.NET SignalR, ReactJS
Projet 3 : L'actimétrie est l’analyse des mouvements corporels. La société IMA utilise les systèmes d'alarmes et de domotique pour collecter des données actimétrie des occupants d’une habitation. Ma tâche a été de concevoir et développer l'application temps réel permettant la collecte des messages de chaque détecteur et la distribution vers des serveurs RabbitMQ destinées à des sociétés tierces, vers un client Web Angular2 via SignalR, vers une base de donnée.
ï® Développement d'une application serveur basé sur ReactiveX connecté directement aux centrales et chargée de la distribution et des données
ï® Développement d'un client Angular2 permettant l'affichage d’un dashboard des centrales et des statistiques mises à jour en temps réel : occupation des pièces, températures des pièces, etc.
ï® Application temps réelles utilisant ReactiveX permettant un parfait découplage des composants (RxJS coté Web et Rx.Net coté serveur). Datas poussées en temps réel du serveur vers les clients Web grâce à SignalR.
ï® Utilisation des patterns IoC offrant une même implémentation pour deux web services (interne et externe)
NET, Entity Framework
Meteodyn est une société spécialisée dans l’ingénierie du vent, elle développe depuis 10 ans un logiciel permettant d’évaluer la production énergétique d’un parc d’éoliennes. Ce logiciel prend en compte la topographie et la rugosité du terrain et la météo afin de déterminer le meilleur placement des éoliennes.
La société a décidé de réaliser une refonte complète de ce logiciel renommé WindUnified, et m’a confié la réalisation de la persistance de leur modèle métier, local et distant. L’application doit être capable de fonctionner avec la plupart des bases de données du marché de ses différents clients, en mode offline/online.
ï® Présentation d’une d’une POC technique, basée exclusivement sur des projets open-source.
ï® Mise en place d’une solution permettant un coût quasi-nul de maintenabilité des bases de données, avec une migration automatisée des bases de données suivant l’évolution du modèle.
ï® Développement d’une surcouche générique d’Entity Framework ajoutant les fonctions de persistance exigées par le client.
ï® Mise en persistance du modèle métier pour les bases SQL Server 2012, SQL CE, PostgreSql (Linux), MySQL (Linux), Oracle (Linux), et développement des tests fonctionnels automatisés pour chacune des bases.
ï® Mise en place d’un paramétrage permettant de scinder le modèle afin de distribuer la persistance sur plusieurs bases relationnelles, de différente nature.
ï® Développement d’un mécanisme de synchronisation générique entre les données locales et les données distantes, avec gestion des conflits et concurrence d’accès.
ï® Autre: travail dans une équipe de 8 personnes, délais serrés avec deadline pour la livraison du produit (en Octobre 2015).
La société IMT (Inter-mutuelles Téléassistance), filiale du groupe IMA gère les réceptions de déclenchements d’alarmes des sites abonnés. Suite à l’achat de la société Serena par le groupe IMA, dont le rôle est la télésurveillance des personnes fragiles, mon rôle a été de mettre en place les flux de données de la filiale vers le système de gestion centrale de IMT.
ï® Mise en place d’un flux de données entre le CRM de la filiale (SQL Server, Web services) avec le système de gestion des alarmes de IMT (bibliothèque C).
ï® Réalisation du mappage entre le modèle de données source et le modèle métier du système de gestion des alarmes, et développement en C# de la conversion des données.
ï® Migration des anciennes bibliothèques VC++ 6 en composants COM, les rendant ainsi interopérables avec le service .NET 4.5 de gestion du flux
ï® Reprise des données pour le nouveau CRM de la filiale Serena
ï® Enjeu : délai serré avec date butoir de mise en production
Développement d’une PIC (plate-forme d’intégration continue) pour l’ensemble des applications Visual Studio réalisées en interne ou par les centres de services (Atos Origin, Cap Gemini, Steria). Cette plate-forme sert à assurer la compilation permanente de 150 applications, à remonter les informations de qualimétrie du code source, et à effectuer le packaging.
ï® Mise en œuvre d’une POC métier basée sur Maven, Hudson et Nexus, avec gestion des dépendances et une granularité de versioning au niveau de chaque librairie (.exe, .lib, .dll) .
ï® Assurer le rôle de référent C++/ C#
ï® Écriture du document des cas d’utilisation en collaboration avec le client
ï® Production des différents livrables : Manuel utilisateur, Dossier de cas d’utilisation de la PIC, installation du poste de développeur, le dossier de recette de la PIC, manuel d’installation de la PIC
ï® Développement de plugins pour Maven en Java, notamment pour la mise à jour automatique des versions release et versions de développement.
ï® Mise en place des règles qualité d’analyse du code C# StyleCop et FxCop
Réalisation d’un module de type data mining
ï® Mise en œuvre d’un parseur HTML plus performant que les solutions existantes (Jericho, HTML agility pack), reposant sur ANTLR v4 effectuant le parsing en une seule passe des documents HTML.
ï® Mise en place de Nutch, permettant de télécharger les pages html
ï® Text mining algorithm utilisant un algorithme de type GSP
ï® Solution développée sous Netbeans
Sercel, société numéro un de la fabrication du matériel de prospection pétrolière réalise son nouveau produit phare le 508. Afin de permettre à un laboratoire mobile de traiter en temps réel un très grand nombre de traces sismiques, mon rôle a été de proposer, concevoir et développer une solution permettant la distribution des traitements sur un nombre configuré de serveurs Linux.
ï® Proposition et conception UML de la solution proposée
ï® Définition des interfaces Corba permettant les échanges de données entre processus dis...