-
TDK InvenSense
- Staff Software Engineer
2014 - maintenant
Responsable de l'intégration Android/Linux de sensors motion/audio/fingerprint dans les appareils Android/Linux (smartphone, tablette, drone, ...).
Conception, architecture, développement de logiciels systèmes et kernel pour Linux embarqué et Android :
- Drivers Linux kernel (i2c, spi, iio, mfd, sysfs, char device, debugfs, firmware loading)
- Integration Android (frameworks et HALs Sensors, ActivityRecognition, SoundTrigger, Fingerprint)
- Build et integration dans l'AOSP Android (git, repo, Makefile, shell script)
- Gestionnaire de versions : Git, Redmine, Jira, GitLab, Jenkins
* Support Android pour la nouvelle famille de puces Firefly (icm30xxx) : linux driver, Sensors HAL, ActivityRecognition HAL
* Nouveau build system utilisant git/repo pour générer des ROM AOSP pour les plateformes de développement Android. Factorisation du code pour supporter de multiples puces, de multiples plateformes, et multiples versions d'Android
* Leader technique pour l'intégration dans le Google ContextHub (CHRE) (firmware driver + host integration)
* Intégration Android pour des sensors audio+motion: linux ALSA driver, SoundTrigger HAL
* Intégration Android pour sensor fingerprint: Linux driver, TEE driver, Fingerprint HAL
-
Movea
- Software System Engineering
Tours
2012 - 2014
Responsable de l'intégration des briques logicielles de l'IP Motion/Data Fusion dans les appareils sous Android : smartphone, tablette et set-top box.
Conception, architecture et développement de logiciel sous Linux embarqué et Android. Définition de protocole de communication, drivers Linux, intégration dans la stack Android (libsensors et activity_recognition HAL), stack logicielle custom pour les sensors vendor specific, génération de ROM AOSP.
Intégration et adaptation dans des produits clients grand public.
Développement firmware temps-réel SensorHub sur cible cortex-M4 FPU (STM32F401).
- Implémentation logicielle de la Data Fusion sous forme de démon système sous Android et Linux.
- Support host Android 4.4 par une implémentation de la stack HID Sensors avec IIO devices et support HID over I2C dans le kernel Linux.
- Support host Android 5.0 avec protocole propriétaire par IIO devices dans le kernel Linux.
- Intégration dans les systèmes Android 4.4 et 5.0 par implémentation des HAL sensors et activity_recognition et par une API dédiée pour les fonctionnalités étendues (Gestures, Pedestrian Dead Reckoning, Activity Monitoring, ...).
- Responsable du développement du support host et du référence design de la solution SASH-1
- Chef de projet sur un partenariat Sensor Hub avec ST Microelectronics.
- Support et expertise technique chez le client en Chine
- Gestion de configuration, intégration, livraison client avec Bazaar, Git, Redmine, GitLab, Jenkins
-
OPEN
- Ingénieur Conception
Levallois-Perret
2012 - 2012
Mission de 2 mois pour le Centre de Services en interne :
développement d'un BSP complet (bootstrap-bootloader-kernel-rootfs) pour une carte numérique de traitement d'un nouveau compteur électrique haute tension pour Enerdis. Architecture ARM9 sur processeur Atmel AT91SAM9G25. En partant du code disponible chez Atmel, adaptations des composants AT91Bootstrap, barebox, linux 3.6, buildroot, système de fichiers UBIFS. Complétion du support device-tree pour l'architecture sélectionnée, afin de pouvoir utiliser un seul noyau pour toutes les variantes de la carte (contraintes d'approvisionnement multi-sources). Intégration et écriture de drivers manquants watchdog et RTC. Aide au choix des composants hardware suivant le support Linux et les contraintes logicielles.
(ARM9, Atmel, barebox, linux, buildroot, UBIFS, devicetree, watchdog, RTC)
Mission de 3 mois chez Bull, Echirolles :
développement et tests en sous-traitance pour IBM sur AIX (version 61V et 71H) architecture POWER (6 et 7) sur des problématiques de RDMA avec Infiniband. Travail sur le module kDAPL, portage de uDAPL dans le noyau AIX. Tests, deboggage, validation de kDAPL avec comme provider l’API IBM Infiniband sur carte Galaxy et Mellanox, et OFED sur solution ROCE (softROCE et carte Mellanox).
(IBM, AIX, POWER, RDMA, Infiniband, DAPL, OFED, ROCE)
Mission de 2 mois pour le Centre de Services en interne :
reprise, fin des développements et fiabilisation pour le projet T-NG (Téléassistance Nouvelle Génération par ADSL) en vue de la phase d'expérimentation chez des personnes volontaires. Portage du BSP sur un noyau Linux 3.2, intégration dans OpenWrt avec système d'intégration continue Jenkins, choix dongle USB WiFi et intégration du driver.
(OpenWrt, i.MX25, JFFS2, Linux, Jenkins, WiFi)
-
OPEN
- Expert M2M - Responsable activité Télésanté
Levallois-Perret
2010 - 2012
Expert au sein du Centre de Compétences M2M.
Expertise technique M2M dans le domaine du logiciel embarqué et des télécoms. Études, spécification, architecture, conception, réalisation de prototypes, aide à la réponse à appel d'offre, support Linux et bootloader de nouvelle carte matériel, réalisation de logiciels embarqués systèmes et applicatifs, études des protocoles de communication, installation et déploiement de serveurs UNIX, ...
Travail sur la conception d'une solution M2M verticale, d'une passerelle de relève industrielle, d'une passerelle santé, sur la télérelève et la télémaintenance de machines industrielles,
et sur la domotique (Linux, OpenWrt, S3C2410, i.MX25, APN privé RADIUS, GPRS/3G, ethernet, WiFi, radio 868MHz, OpenVPN, OpenWebNet, Protocol Buffer)
Responsable de l'activité Télésanté à travers 2 projets financés réalisés avec de multiples partenaires (PME, groupe, université, association) : le projet T-NG (Téléassistance Nouvelle Génération) financé par l'ANSP et le projet SALSAT (SAnté Lien Social Autonomie Technologie) labellisé Minalogic sur l'hospitalisation à domicile. J'ai eu pour rôle d'assurer la coordination entre les partenaires, le suivi de projet en interne, et de concevoir et assurer la réalisation technique.
Participation au projet européen JADE (FP7) sur la définition de critères communs (matrice SWOT) sur les problèmes de la dépendance des personnes âgées et les technologies associées. Présentation de la société et des projets santé en anglais au cours d'un workshop à Canterbury (UK).
-
OPEN
- Ingénieur Analyste
Levallois-Perret
2008 - 2010
Mission de 6 mois chez Schneider Electric (Meylan) :
évolutions sur le logiciel embarqué du relais de protection Sepam 80 pour modifier des algorithmes de protection et supporter avec le même code le relais de protection de gamme intermédiaire Sepam 60. Architecture bi-processeur avec mémoire partagée double port, système temps réel Nucleus.
(C, assembleur, Coldfire, H8S, DPRAM, Nucleus, Lauterbach, Omicron, génie électrique)
Mission de 4 mois pour le Centre de Compétences M2M en interne :
support de la carte SODIMM2410 de Pragmatec (S3C2410, ARM9, SDRAM, Flash, Ethernet, Audio) dans la distribution OpenWrt (uClibc et EGLIBC).
Intégration de plusieurs composants Open Source suivant les besoins clients (I/O analogiques et digitales, support son, support USB avec drivers, Wifi, serveur audio, pile SIP, serveur HTTP, ...).
Développement d'un superviseur générique d'applications UNIX multithreadées.
Développement d'un applicatif pour le projet Infodio de la SNCF (diffusion de messages audio en utilisant le protocole SIP par GPRS et 3G)
Développement d'une centrale domotique Wifi de pilotage de volets roulants en radio fréquence par interface Web pour FranciaFlex.
(S3C2410, ARM9, Linux, uClibc, EGLIBC, OpenWrt, Ethernet, Wifi, série, Audio, SIP, GPRS, PPP)
Mission de 1 an chez Schneider Electric (Eybens) :
développement sur le logiciel embarqué du relais de protection Sepam 80 pour supporter la norme IEC61850 (gestion normalisée de disjoncteurs sur réseau ethernet) à travers un module de communication connecté au bus CAN. Architecture bi-processeur avec mémoire partagée double port, système temps réel Nucleus.
(C, assembleur, Coldfire, H8S, DPRAM, Nucleus, Lauterbach, Omicron, Modbus, CAN, ethernet, TCP/IP, SNMP)
-
Thales Services
- Ingénieur d'Études Temps Réel
Courbevoie
2008 - 2008
Intervention de 1 semaine chez Trixell, Moirans :
installation de postes de travail Linux. Intégration dans un réseau Microsoft, et accès graphique distant par SSH et X à des applications sur serveur Linux.
(Linux, Fedora, Red Hat, Active Directory, SSH, X)
Mission de 1 mois chez Total, St Martin d'Hères :
intégration d'un système de monétique basé sur un serveur d'application WebSphere, une base Oracle, un serveur web Apache, et des applications Java, sur système Solaris 10 Sparc.
(Solaris, WebSphere, Oracle, Apache, Java)
Mission de 1 mois chez France Telecom, Meylan :
traduction vers l'anglais de documents d'architectures et de spécifications de logiciels et d'interfaces.
-
Teamlog
- Ingénieur d'Études
Levallois-Perret
2006 - 2008
Mission de 1 mois chez Purple Labs, Le Bourget du Lac :
intégration des logiciels de la stack téléphone mobile basée sur Linux (LiMo). Génération des binaires, d'un LSP, tests et validation.
(Linux, scripts shell, python, Gentoo, SVN)
Mission de 1 an chez eServGlobal, Meylan :
conception de logiciels C et C++ UNIX (POSIX) et support pour la surveillance et la maintenance de plateformes de télécommunications sous Solaris et Linux.
(Solaris, Linux, POSIX, socket, thread, IPC, Net-SNMP, SQLite)
Mission de 4 mois chez Cybersys, Meylan :
conception et intégration d'un système Linux embarqué pour une carte réseau basée sur un Xilinx Virtex-4 FX.
(Linux 2.6, PowerPC, drivers ethernet, PHY, I2C, série, scripts)
-
Teamlog
- Stagiaire
Levallois-Perret
2006 - 2006
Construction d'une distribution Linux embarqué :
état des distributions et outils pour les systèmes Linux embarqués et portage d'une plateforme PowerPC sur Linux 2.6.
(Linux, C, PowerPC, RS-232, RS-485, buildroot, uClibc, busybox)
-
LIS, Grenoble INP
- Stagiaire
2003 - 2003
Tatouage Haute Capacité de Vidéos Numériques :
conception d'un programme en C++ réalisant les opérations de tatouage par QIM dans le cadre du projet RNRT ARTUS.
(Linux, gcc, MPEG-2, YUV, perception visuelle)
-
TIMA, Grenoble INP
- Stagiaire
2002 - 2002
CAO pour l'Électronique Moléculaire :
conception en VHDL d'un FPGA ou ASIC pour la résolution exacte du problème à N corps.
(Solaris, Leonardo, Synopsys)