Expérience professionnelle
Trustonic–Sophia Antipolis Août.2018–à ce jour Ingénieur logiciel embarqué
Mission J'ai intégré l’équipe Core Product au qui s'occupe des développements produits. J'ai réalisé plusieurs taches liésau développement d'une nouvelle Release TEE Trustonic (TEE: Trusted Execution Environment). Ce TEE est dédié à la protection des applications et basé sur la technologie TrustZone. Environnement technique
Langages: C, C++, Java, Python
Outils: Git, Svn, JIRA, crucible, build système Maven
Matériels: Board Hikey 960
Protocoles: Adb Réalisations
Développement d’une nouvelle version du TEE Trustonico Architecture système TEE ( Trust zone, Normal world –Secure world –Crypto) oMise à jour du kernel-linux: Passage en kernel 4.17 & Support du SPDX/Check patcho Développement d’une API de test pour tester les TA (Trusted Applications) -Crypto benchmarko Architecture du système de build maven –ajout de nouveau composants et gestion de dépendances o Amélioration d’une application de test développée en JAVA et d’un frameworkde test (Python): Automatisation des tests à l’aide des Intentes –Usage de la mémoire interne de l’application pour un accès rapide au système de fichiers.
Ingénico-BordeauxFév.2018 –Juillet20186 moisIngénieur logiciel embarqué
MissionAu seind'Ingénico, j'ai contribué au développement d’un nouveau produit. Il s’agit d’un nouveau terminal de paiement à base d'une tablette Android. Ce nouveau terminal intègre deux OS;une OS Android (AXUIM) et une OS Linux (TETRA). Ma tache principale consistaità développer une application Autoinit exécutée coté TETRA qui s'interagitavec une autre application Autoinit Android via un protocoleProtobuf. Le but de ce cette application est l'initialisation et le paramétrage du terminal au démarrage coté Android et coté TETRA
Environnement technique
Langage: C++, Python
Outils: Git, Svn, Jira, Bitbucket, Filezila
Matériels: Cortex A5 CPU, terminaux de paiement
Protocoles: Protobuf, AdbRéalisations
Développement application Autoinit –From ScratchoDéfinition de l’architecture logicielle de l’application AutointoDéfinition du protocole Protobufentre la partie Android et la partie Linux oDéveloppement d’un «Boot strap» service, «Initilization service» et «TMS call service» oConnexion au service Autoinit Android depuis l’application Autoinit Linux oImplémentation d’un service TMS Call pour télécharger les applicationset les fichiers de paramètres oFormatage d’un fichier Json pour exporter le résultat de l’auto-initialisationoMontage d’un Serveur de simulation sous une VM: Exécution des TMS Call via ETH-WIFI oDécodage et traitement des actions Protobuf venant d’Android oPréparation d’une démonstration fonctionnelle oTests unitaires -Intégration continue –Livraisons réguliers –gestion de version –Documentation oSuivi des tickets JIRA, code review et bugfixMissionAu sein du département EEA, j’ai contribué au développement d’un produit de «monitoring» utilisé dans le domaine des installations pétrolières. Il s’agit d’un produit qui permet de remonter les données du fond de la mer vers la surface à travers des modems acoustiques. Mon travail consistait à intégrer une nouvelle technologie de modems acoustiques «Evologics» dans ce produit. J’ai réalisé des tâches de conception de protocoles, développement, configuration des modems, gestion de Vielle/Réveil ainsi que des tests de validation.
nvironnement technique
Langage: C, C++
Systèmes/OS temps réel: FreeRTOS, TI-RTOS
Outils logiciels: IAR, CCS, SVN
Matériels: MSP432
Protocoles: UART, RS232, commandes AT, Modems acoustiquesRéalisations
Intégration de la gestion des modems Evologics dans les Data LoggeroConception d’un protocole dédié aux échanges acoustiques (Configuration/Transmission/Réception)
oDéveloppement de la couche de gestion des nouveau modems «Evologics»oDéveloppements des drivers de configuration des modems en commandes AT.oGestion des cycles Veille/Réveil des modems à l’aide d’un module WakeUPoGestion des alarmes: Envoi des trames «alarmes» à travers les modems acoustiques.oRéalisation des tests de validation à l’aide de deux modems Evologics.oRédaction d’un rapport détaillé de tests
Portage de la solution sur une plateforme à base d’un MCU MSP432 & RTOSoIntégration de la solution sur une nouvelle plateforme dotée d’un système temps réeloGestion de configuration/Transmission/Réception en temps réel.oDéveloppement d’un protocole «Request To Talk» entre les modems de fond et surfaceoDéveloppement de l’Envoi/Réception des Instant messages.oDéveloppement du protocole de synchronisation:▪Réception trames de synchronisation, ▪Calcul du temps de propagation.▪Ajustements de l’horloge system.oRéalisation des tests unitaires de validation.oRédaction d’un rapport détaillé de tests et d’un fichier de configuration.
NTEL –Sophia Antipolis Mars 2016 –Oct. 20171,8 anIngénieur logiciel embarqué
MissionAu sein du département NDG(New Device Group), j’ai contribué au développement de différentsproduits high-tech destinés au marché des montres connectés. Il s’agit de plusieurs Smart Watch basées sur le systèmeAndroid-Wear et un noyau linux.Environnement technique
Langage: C, C++, Python, Shell
Systèmes/OS temps réel: Android-Wear, Kernel linux, FreeRTOS, RTX
Outils logiciels: IAR, GCC, PyCharm, JIRA, Git/Repo, Jenkins, NI Teststand
Matériels: ARM Cortes M4 (EFM32)
Protocoles: UART, SPI, Bluetooth, WifiRéalisations
System-Debug (Smart watches Android Wear –Kernel Linux)oAndroid-Wear/Linux system debugging : Logcat, dmesg, Kernel Panics et drivers SysFsoMise en place d’un systèmeAdb Over wifi –Wpa_supplicant, isc-dhcp-serveroAmélioration de l’algorithme de calibration du Sensor Accéléromètre –GyrooDéveloppement d’un Daemon en C++ au niveau HAL (outil de diagnostic):▪Raw Data polling ( Batch processing )▪Développement Socket server (Data Collector)▪Développement Socket client (Application graphique en Python) oInterface Graphique pour tracer les courbes d’évolution des paramètres HR (Python)
oCode review ; Bug reporting et assignment des JIRAs ; Google dogfooding
SW Manufacturing (Smart watches Android Wear –Kernel Linux) oTest OS SW Release destiné à la production (OS de test basé sur un noyau linux)oGénération des ROMpour la production(Google Build, TestOS Build et Bootloader)oBring-up SW supportsursite à Escatec Suisse & Malaisie oCodage des scripts de tests (Tests des différents capteurs et des I/O du produit)oAnalyse/Résolution de défaillances pendant la productionoSupervision de l’audit Fonctionnel du produit final (Out-of-Box Audit)oGestion de la ligne de production (Déploiement du SW de test, Adb Over Wifi...)oMise en place d’un systèmeautomatisé de test –séquences NI TeststandoMise en place d’un systèmede test à base de relais
Développement Spec client (Cardio fréquence maitre sportif-noyau RTX)oSys-Debug d’un systèmetemps réel à base du noyau RTXoAmélioration des performances produit (Fiabilité de calcul HR, bug fix)oAmélioration de l’algorithme de calcul HR –Timing OptimisationoCodage et tests des spécifications client (Algorithmes HR et UI flow) -C embarqué sur MC
EZ-WHEEL –Angoulême Oct. 2013 à Fév.2016 2,4 ansIngénieur logiciel embarqué
MissionAu sein du service bureau d’étude, j’ai pris en charge toute la partie conception et développements logiciels des produits, la gestion de projets logiciels et tests des produits en qualification.J’ai aussi amélioré la partie communication sans fildes produits basé sur le protocole ZigBee et la norme IEEE802.15.4. Environnement technique
Langage: C, C#
OS temps réel: FreeRTOS
Outils logiciels: IAR Embedded Workbench(Compilateur C et Debugger), TortoiseSVN
Matériels: ARM Cortex M3(STM32F), MSP430, Chip radio CC2520
Protocoles: IEEE 802.15.4, ZigBee, Ymodem, USB, I2C, UART, SPIRéalisations
Rédaction CDC & spécifications logiciel / architecture
Analyse / réponse CDC client& Résolution des problèmes SAV (Retours produits)
Réalisation de test de validation (unitaire/intégration/validation) et rapport
Ecriture plan de test logiciel / produit
Adaptation produits spécifiques clients
Amélioration produits (Fiabilité, réductionde cout, correction des bugs connus...)
Gestion de subversion des projets software sur TortoiseSVN
Développement en langage C sur microcontrôleur Texas Instrument MSP430 avec l’IDE IAR Embedded Workbench (Compilateur C et Debugger)
Développement en langage C sur microcontrôleur STM32 Cortex M3 & M4 avec l’IDE IAR Embedded Workbench (Compilateur C et Debugger)
Réduction de la consommation due à la communication Radio des produits sans filoOptimisation des algorithmes de traitements des données (InterruptionsFIFO, FIFOP)oConfiguration du chip radio CC2520oIntégration du mode mise en vielle radio
Normalisation de la pile radio interne selon le standard ZigBee -IEEE 802.15.4oDéveloppement de l’algorithmeCSMA/CA slotté
Amélioration de la fiabilité du Protocol radio (Puissance d’émission, perte de trames, algorithme CSMA/CA)
Portage d’une pile Radio (Stack SimpliciTI) sur un microcontrôleur STM32 Cortex M4
Développement d’un BootLoaderpour μC MSP430 et μC STM32oSystème de boot microcontrôleur avec le Protocol YmodemoMise à jour boot avec liaison USB et USART Intégration de l’outil de diagnostic (Trace OS) de FreeRTOS sur un système en temps réeloTraçage de l’historique d’exécution des taches oCaractérisation temporelle du système temps rée
lIntégration du module DMA pour la gestion des périphériques microcontrôleur oGestion des ADC & DAC avec DMAoGestion de communication SPI-UART avec DMA
HAGER -ObernaiMars 2013 à Sept. 20137 moisIngénieur logiciel embarqué
MissionDans le cadre de mon stage, j’ai contribué à un projet d’innovation des produits modulaires de protection. J’ai fait partie de l’équipe électronique embarqué qui se charge de l’intégration de nouvelles fonctionnalités intelligentes dans les produits différentiels de protection « Projet Smart Product »Environnement technique
Langage:C, SPICE, MATLAB
Outils:MPLAB X, Matlab/Simulink, ModelSim
Matériels:PIC16F1937, carte évaluation pour microcontrôleur PIC16Réalisations
Conception basée sur un PIC16 pour le traitement de signal analogique de défaut.
Caractérisation des produits différentiels de protection à assistance électronique (Coupure circuit si courant de défaut)oTests aux limites de fonctionnement oTests variation de la température oTraçage des courbescaractéristiques des produits de protection
Dimensionnement microcontrôleur (Taille mémoire et périphériques) et choix d’une plateforme hardware
Développement d’une fonction de mesure de courant de défaut selon la température
oFonction Interpolation de la courbe de courant de défaut en se basant sue 3 mesures ADCoFonction mesure températureoFonction estimation (Interpolation mathématique) du courant de défaut oFonction commande interrupteur : Coupure circuit si dépassement seuil de déclanchement
Développement d’une fonction pré alarme de déclanchement des produits différentiels (Pré alarme visuel)
Affichage du courant de défaut sur un afficheur LCD pour la gamme de produits « Smart Product»
Suivi de l’avancement des taches collaborateurs sous Excel
Validation du logiciel, Tests unitaires (TU)
Test et validation du prototype final (essaies dans les cas extrêmes
EDF -Paris Fév. 2012 à Août 2012 7 mois Ingénieur systèmes embarqués
MissionDéveloppement et implémentation d’un protocole de communication radio fréquence appelé OCARI sur cible FPGA doté d’un SystemOnChip. Il s’agit d’une Pile protocolaire composée d’une partie matérielle (VHDL) et d’une partie logicielle (C). Ce Protocol est utilisé pour gérer les communications radio fréquence à très forte contraintes temporelles au sein d’un réseau de capteurs sans fil.Environnement technique
Langage:C, VHDL
Os temps réel : FreeRTOS
Outils:Eclipse, LiberoIDE, Matlab/Simulikn, ModelSim.
Matériels:2 FPGA SmartFusion A2F200 avec cible ARM CortexM3, Sinfer Fresscale. Protocoles: ZigBee, IEEE 802.15.4, SPIRéalisations
Etude des spécifications et exigences temporelles du protocoleOCARI(L’étude est réalisée en s’appuyant sur la norme IEEE 802.15.4)
Développement des couches basses de la pile protocolaire OCARI (Couche de liaison, Couche MAC, couche physique) en langage C en s’appuyant sur le document de spécifications.oRoutines d’émission/réception des trames RFoRoutines décodage et d’ordonnancement de trames radiooCouche de gestion de temps (horloges, Systick, délais d’attente, ....)oCouche liaison de données (gestion d’association aux réseaux sans fil)oRoutines d’interruptions (Interruptions matérielles et logicielles)
Développement de la partie matérielle en VHDL (Communication SPI avec le chip radio)
Simulation (testbench) des blocs VHDL avec ModelSim
Intégration des IP Core (ARM Cortex M3)dans la cible Smart Fusion
mplémentation et test d’un algorithme de gestion d’accès au médium (CSMA/CA)
Réalisation d’une étude de performances du protocole développé :oEtude de l’interopérabilité matérielle du protocole : Communication avec autre type de plateforme comme l’ASIC)oEtude de l’interopérabilité logicielle (passerelle WIFI-OCARI) duprotocoleoEtude de performances temporelles (Temps hard to hard, temps de réception, temps d’envoi)
Validation du protocole à travers des tests en temps réel au sein d’un réseau sans fil composé de deux stations ASIC et la station FPGA
Rédaction d’un rapport technique englobant les phases de développement du protocole et les tests de validation
CompétencesTechniques
Langages C, C++, Python, Shell, Java, Visual Basic, MatlabMatérielsARM Cortex M3-M4 (STM32-EFM32), PIC16-PIC18, MSP430NoyauxTemps réelKernel linux, RTX, FreeRTOSRéseaux &ProtocolesZigBee, IEEE 802.15.4, CSMA/CA, Stack SimpliciTI, Couche MAC, Couche physique, Ymodem, SPI, I2C, UART, JTAG, USB, RS232, DMAOutilsIAR, MPLAB, SoftConsole, Eclipse, PyCharm, DevC++, NetBeans, Visual StudioGestion de configurationGit/Repo, Gerrit, JIRA, Jenkins, TortoiseSVN, Crucible, SystèmesAndroid-Wear, LinuxModélisation & SimulationMatlab/simulink, Scilab, Modelsim, Cadence, Spice
Formation
2013 Master systèmes embarqués Université blaise pascale (Clermont-Ferrand, France)
2012 Master Automatique & Mécatronique, Automobile, Aéronautique ENSIERB, Université Bordeaux 1 (Bordeaux, France)
2010 Maitrise Informatique Industrielle Faculté des sciences et techniques (Maroc)
Langues
Anglais Courant