Mohammed - Consultant technique C
Ref : 191212F001-
91300 MASSY
-
Consultant technique, Data Scientist, Développeur (43 ans)
-
Bientôt freelance
Expériences professionnelles
CGI(C++ MULTITHREADING/CLIENT/SERVEUR ) AVRIL 2022 (9 MOIS)
Consultant C++
Mission consiste à :
- Conception et gestion d’un catalogue BNF
- Développement Client/serveur en C++ et webservice Soap/Rest du gestionnaire du catalogue BNF
- Rédaction des documents systèmes, des documents fonctionnels et de la conception
Environnement Technique: C++11, STL, Git, , Eclipse, Windows 10, linux Ubuntu, Windows10 webservice Soap/Rest
STORMSHIELD(SECURITE RESEAUX) JANVIER 2021 (16 MOIS)
Consultant C++/Documentation
Mission consiste à :
- Reverse engineering du code de source du firewall développé en C++
- Réécrire des modules du Firewall en respectant les normes exigées pour la certification
- Rédaction des documents systèmes, des documents fonctionnels et de la conception pour la certification
Environnement Technique: C++11, STL, Git, , Eclipse, Windows 10, linux Ubuntu,
Jan 19-Nov 19
Juin 18-Dec 18
Nov. 17-Juin 18
Mai. 17-Nov.17
Juil. 15-Avr .17
Avril 15 –Juill 15
Mars 13 – Fev 15
IT-CE (Finance)
Projet Credoc/Remdoc : Remise Documentaire Import/Export (Finance)
Mission consiste à :
Spécification et Conception du différentes fonctionnalités du Credoc/Remdoc
Développement du diffèrent modules en C++, C , PL/SQL
Développement des scripts de traitement de fichiers d’entrée et de paramétrage et des scripts de lancement, en Bash.
Test et Validation
Environnement Technique: C++,C, Pl/SQL, Windows, Linux, Bash
Quadribot
Projet scooter autonome
Mission consiste à :
Spécification et Conception de l’architecture de l’application et ses différents réseaux de communication.
Développement, bas niveau, d’une application client/Serveur, en C/C++, temps réel Modbus
Développement, bas niveau, d’une application client/Serveur CAN, en C/C++.
Test et Validation
Environnement Technique: C, C++, Modbus,CAN, Pthread, Eclipse, Linux
Client Siemens
Projet Simech
Mission consiste à :
Spécification et Conception des nouvelles fonctionnalités dans Simech.
Développement, bas niveau, Application client/Serveur, en C,/C++ , temps réel Modbus
Développement du coupleur en C, C++ et Pthread (Thread Posix).
Environnement Technique: C, C++, Modbus, Pthread, Eclipse, Linux.
Ansaldo
Projet Instruct : "BI-Standard SNCF "
Mission consiste à :
Spécification et Conception du logiciel coupleur, un logiciel qui assure la communication entre le logiciel LCAP (Logiciel applicatif gérant les mouvements du train SNCF) et les équipements externes ; plusieurs types de communication (Serie, Profibus et Ethernet).
Développement du coupleur en C, C++ et Ada (temps réel)
Environnement Technique: C, C++, Ada, Eclipse, RTC (outil de gestion des Version IBM) et DOORS (Outil de rédaction des documents IBM)
Client Schlumberger
Projet Instruct : "système de control de pompe pétrolière "
Mission 1 consiste à :
Développement, dans un contrôleur de pompe, un gestionnaire des alarmes et des logs en C/C++.
Maintenance et développement d'un Framework d'automatisation de test, en Bash et Python.
Environnement Technique: C, C++, Bash, GCC, gdb (GCC debugger), Eclipse, Linux Ubuntu, Windows, git
Mission 2 consiste à :
Développement d'un Emulateur de S1 Drive de Toshiba (drive contrôlant la vitesse du moteur de la pompe en se basant sur les données collectées, en temps réel, de l'environnement) :
- Développement du protocole Modbus (partie serveur) en Python
- Développement de l'émulateur de S1 Drive en Python
Environnement Technique: python, Linux Ubuntu, Windows, git, Modbus
Client Leosphere
Projet Angela : Profinet Network
Mission consiste à :
Mettre en place une solution profinet, définition du choix hardware et software
Configuration d’un réseau profinet RT contenant un master Hilcher et un slave HMS (convertisseur CAN-Profinet IRT) en utilisant ‘’SYCON.net’’ d’Hilscher et ‘’Communicator CAN’’ d’HMS
Configuration d’un réseau profinet RT contenant un Master et un slave Hilscher en utilisant ‘’SYCON.net’’ d’Hilscher.
Spécification, conception et développement d’une application profinet Master basée sur l’API Profinet d’ Hilscher et le langage C
Spécification, conception et développement d’une application profinet slave basée sur l’API Profinet d’ Hilscher et le C++
Test et validation
Environnement Technique: C, C++, Profinet (Protocol de communication industriel temps réel), CAN, SYCON.net, ’Communicator CAN’’, GCC, gdb (GCC debugger), Eclipse, Linux Ubuntu, Windows, SVN.
Client : S2M
Profinet Communication Sniffer : Développement d’une application embarquée, un analyseur de paquets Profinet échangés entre un PC embarqué Siemens (Master) et des FPGAs (les esclaves).
Mission consiste à :
Conception et développement d’un Sniffer Profinet, en C avec programmation système RMOS et API Profinet :
Tester la connexion Profinet entre le Master et les esclaves
Analyser les Paquets échangé périodiquement, communication temps réel IRT.
Développement de la partie Server sur le MBCSI
Test et Intégration des clients avec la Com
Environnement Technique : C, Profinet (Protocol de communication industriel temps réel), GCC, gdb (GCC debugger), gdb server, Eclipse, OS temps réel (RMOS).
Data Logger Driver : Développement d’un driver Linux traçant l’accès au Data stockées sur un serveur Linux
Mission consiste à :
Conception et développement d’un driver linux, un nouveau module de kernel, le datalogger
La modification du driver USB Storage de linux kernel (ubuntu 14.04)
Compilation du kernel linux
Installation et Lancement du datalogger au démarrage
Environnement Technique : C, Linux kernel 3.13.0, Ubuntu 14.04, Linux Kernel Programming, USB Protocol, VFS (virtual File System), make, kernel compilation.
Projet V2 (11 mois) : projet d’extraction de Gaz dans la mer (Statoil & Shell)
Mission consiste à :
Spécification, Conception et Développement, en C (sous Eclipse), d’une application embarquée de communication entre un PC Embarqué Siemens, plateforme multiprocesseurs, et des interfaces utilisateurs : Application multi-clients/serveur, application multiprocessus, multithreads avec communication TCP/IP.
Spécification, Conception et Développement, en C (sous Eclipse), d’une application embarquée de communication entre un PC Embarqué Siemens, plateforme multiprocesseurs, et des microcontrôleurs, SPV et DSP : Application multi-clients/serveur, application multiprocessus, multithreads avec communication PROFINET.
Spécification, Conception et Développement, en C (sous Eclipse), d’une application embarquée de communication entre un PC Embarqué Siemens, plateforme multiprocesseurs, et un automate Siemens : Application multi-clients/serveur, application multiprocessus, multithreads avec communication Modbus-TCP/IP.
Spécification, Conception et Développement d’une application embarquée système RMOS, un gestionnaire de processus ; de leur création, lancement et synchronisation
Spécification, Conception et Développement, en C++ et QT d’une interface avec communication TCP/IP avec le PC embarqué Siemens, elle envoie les commandes et elle reçoit et affiche l’état de système
Développement pour l’amélioration des performances d’une application embarquée de communication PROFINET, protocole de communication industriel temps réel, en C et sur un réseau de terrain Profinet.
Optimisation de code et ordonnancement
Débogage à distance de V2 avec GDB server.
Test et intégration.
Configuration et adaptation du RMOS, OS temps réel, pour V2
Environnement Technique : C/C++, Profinet (Protocol de communication industriel temps réel), MODBUS, TCP/IP (IPV4), UDP, OS temps réel (RMOS)Linux, Windows, GCC, gdb (GCC debugger), Pthread,QT, Eclipse.
Projet ASGARD (7 mois) : projet d’extraction de Gaz dans la mer du Nord pour (Statoil, SKF)
Mission consiste à :
Conception et Développement d’une technique de débogage à distance temps réel pour l’application ASGARD, application multiprocessus embarquée temps réel tournante sur un OS temps réel RMOS et sur un PC embarqué Siemens. La technique est développée sous Linux en utilisant les outils de débogage GDB Et Valgrind et l’outil de désassemblage Objdump.
Développement pour l’amélioration des performances d’une application embarquée de communication PROFINET, protocole de communication industriel temps réel, en C et sur un réseau de terrain Profinet.
Conception et développement d’une application d’écriture temps réel sur un compact-flash de la machine RMOS, en C avec programmation système RMOS.
Optimisation de code et ordonnancement
Configuration et adaptation du RMOS, OS temps réel, pour ASGARD
Environnement Technique : C/C++, Profinet (Protocol de communication industriel temps réel), MODBUS, TCP/IP (IPV4), UDP, GCC, gdb (GCC debugger), Pthread, QT, Eclipse, OS temps réel (RMOS), Linux, Windows.
Oct11 - Fev13
ICF Team
Ingénieur HPC et Réseaux
Projet : Une nouvelle Solution VPN
Mission : Étude et développement pour l’amélioration des performances de la solution VPN de ICF Team
Étude de l’architecture et du code source du VPN
Conception et développement d’une application client/serveur TCP/IP, programmation avec les sockets, en C sous Linux.
Conception du Modèle de Parallélisme pour les deux parties du VPN, Client et Serveur
Optimisation de code
Implémentation de parallélisme pour les deux applications client et serveur, en C avec la Pthread
Sous Linux
Test et Intégration : Réaliser des tests avec des fichiers volumineux à envoyer sur le réseau en calculant le taux de transfert de données sur le réseau et le temps d'exécution.
Environnement Technique: C/C++, Linux, TCP/IP (IPV4), UDP, GCC, Valgrind, gdb (GCC debugger), Pthread, OpenMp, Sockets, OpenSSL
Fev 11 – Aout 11
Mars 06 – Dec 10
Université Paris-sud
Attaché d'Enseignement Temporaire
Programmation en langage
Compilation Avancée : Théorie et pratique
Architecture des processeurs
Système d’exploitation : Théorie et pratique
Linux pour les débutants
Environnement Technique : C/C++, linux, Lex, Yacc
INRIA
Ingénieur R&D HPC et Compilation
Clients: Philips, NXP et NVidia
Projet ACOTES (Advanced Compiler Technologies for Embedded Streaming):
Projet Européen qui s'intéresse à proposer un langage de programmation spécialisé et un compilateur performant pour les applications de flux de données (Streaming Applications) de type DSP (Data signal Processing), Multimédia, etc.
Mission : Conception et Développement d’un Framework de Parallélisme et d’Optimisation des Applications de Flux de Données pour ACOTES.
1-Specification (chez Philips et NXP – Pays-Bas)
Définition détaillée des spécifications de parallélisme (à gros grain et à gras fin) et d’optimisation du code de 'streaming applications '.
Etudier la modélisation des applications de flux de données de Philips et NXP
2- Conception et développement de Parallélisme et d’Optimisation des Applications de Flux de Données (chez INRIA)
Conception d’une nouvelle modélisation de Streaming Applications, inspirée des réseaux de Kahn. Un modèle à grain fin, qui aide bien le compilateur à gérer les ressources mémoire et registres disponibles et à respecter les contraintes des systèmes embarqués.
Conception des algorithmes de parallélisme, à gros grain et à grain fin, et d’optimisation en se basant sur la programmation entière, les graphes de dépendances et les techniques d’optimisations de boucles (en prenant en compte les contraintes des applications embarquées).
Développement de Parallélisme des taches avec Pthread & OpenMP.
Conception et développement du framwork ' Prolog-Epilog Merging ', en C, C++ et Assembleur
Conception et Développement d’un générateur de code pour la technique ' Prolog-Epilog Merging ', en C et assembleur.
3- Test et validation (chez Imperial College)
Réalisation des tests unitaires et globales du framwork, sur des Benchmarks de Type DSP, Telecom ET Multimedia (GNU radio, 802.11a (Nokia) et polyphase image upscaling de Philips)
Évaluation de performance.
Environnement technique : C, C++, X86, PowerPC, CELL, GPU, Linux, Assembleur, Ocaml, Lucid Synchrone, Pthread, CUDA GCC, ICC (Intel C++ Compiler), Valgrind, GCC Debugger, Programmation Linéaire
Jan 04-Juin 04
IBM
Stage : Développement d'un noyau
Conception et Développement du boot du système sur le PC en Assembleur
Intégration d’un gestionnaire de mémoire écrit en C.
Conception et développement de l’ordonnanceur en C
Implémentation des drivers (clavier et écran) en assembleur
Environnement technique : C, GCC, X86, linux, assembleur, valgrind, Gdb
Formation
2011
Docteur en Informatique Industrielle – Université Paris-Sud
2006
Master en Informatique Industrielle– Université Paris-Sud
Option : Infrastructures et Systèmes
2004
Ingénieur en Informatique Industrielle, Université de Tlemcen
Systèmes : Linux, Windows
Développement des drivers sous Linux : USB Protocol, VFS (Virtual Files Système), kernel module développement, Kernel Compilation
OS Temps Réel : RMOS
Développement Réseaux : Applications client/serveur TCP/IP et UDP
Outils réseaux : wireshark
BDD : PL/SQL
Outils de gestion de configuration : SVN, git
Développement Réseau de Terrain : Applications client/serveur temps réel Profinet et Modbus
Architectures: X86, GPU, CELL, SIMD, MIMD
Outils de débogage/compilation : Valgrind, Valgrind-Cachegrind, gdb (GCC debugger), GCC, options d’optimisation de GCC, LEX, YACC, ICC (Intel C++ Compiler), GCC-PG, GPROF
Développement des compilateurs
Programmation Linéaire et entière
Programmation vectorielle
HPC (High Performance Computing): CUDA, MPI, OPENMP et Pthread
Optimisation de code et ordonnancement
Editeurs : Latex et VI
Méthodes : Cycle en V, Merise, UML
Langues
Anglais : courant