Cyril C.

Embedded Software Developer

955 dollar
Freelancer
26 years
Courbevoie, FRANCE

My experience

More

CYRIL INGENIERIEJanuary 2012 - Present

Projet : CoreFreq - Conception d’un logiciel de Perfomance pour Processeur multi-cœurs

Auteur du logiciel de Perfomance de Processeur multi-cœurs X86_64

A/ Programmation Kernel module: 
• initialisation du driver : device, region, class, arguments, 
• diverses méthodes d'allocation mémoire : page, k|v:malloc, slab cache aligned
• boucles de timers haute résolution par affinité CPU : hrtimer, smp_call_function() 
• projection sécurisée de mémoires partagés en user-space: remap_pfn_range() 
• synchronisation atomique du parallélisme d’exécution en mode Producteur/Consommateur des User-Space threads création d'une bibliothèque assembleur LOCKLESS
• handlers d'événements CPU hot-plugging et Kernel suspend/resume : register_hotcpu_notifier; les structures notifier_block et pm_ops, les affinités CPU
• établissement de la topologie CPU et Caches ; et requêtage du BUS PCI 
• le décodage des informations Processeur par CPUID et registres MSR 
• algorithmie de collecte des compteurs de cycles C-States du PMU, des TSC, SMI, Power & Energie RAPL ; P-States, Voltage VID 
• confection d’une SysGate pour la récupération périodique d'informations Kernel (RCU des tâches; usage RAM; création d'un gouverneur idle, policy cpufreq)
• traitements d'ordres User-Space par Kernel IOCTL

B/ Programmation des démons d’aggrégation et de contrôle 

• réception des pages mémoire de collecte via mmap() et en Posix threads 
• aggrégation des compteurs de cycles en indicateurs statistiques dont IPC création de boucles de stress benchmark CPU
• calcul en temps des fréquences Core, Uncore, Turbo et idle 
• décodage des ressources hardware en autre DRAM, Bus QPI, Hyper-Transport 
• découplage temporel et en double mémoires SHM des échanges producteur-consommateur, synchronisé atomiquement et par bascules flip-flop 
• double ring de gestion des ordres, respectivements driver et démons, et simultanément au traitement des signaux UNIX

C/ Programmation IHM de monitoring 

• bibliothèque de fenêtrage accélérée triple buffering (algorithme de jeux) 
• contrôleur de la solution et interractions utilisateurs (via traitement Ring) 
• rendu de l’ensemble des indicateurs statistiques et des informations Processeur
• fonctionnement en mode CLI et export des indicateurs en JSON

Environnement : Kernel Linux compatible 3.x et 4.x ; langage C et inline ASM; suite de compilation standard gcc, libc ; debugging gdb, valgrind ; versionning GI

Projet : Xfreq Conception d’une GUI de monitoring Processeur multi-cœurs

Programmation User-Space du Démon et de l'IHM sous X-Window 

 * collecte des compteurs du PMU est similaire à celle de CoreFreq mais se réalise via l'interface standard (msr.ko) par read/write de mot 64 bits 
* décodage du SmBIOS, CPUID et MSR pour l'obtention d'informations hardware
* énumérations des données d'usage Kernel au travers des devices FS et IOCTL
* mode producteur-consommateur des threads serveurs et GUI via SHM
* conception de Widgets, boutons Event, décorations et graphiques 2D sur la base de la Xlib + technique de double buffering pour limiter le flickering
* du multi-threading est employé pour dissocier le rendu, les évènements Xlib, les échanges SHM avec le démon

Environnement : Posix threads Linux et FreeBSD ; langage C et inline ASM; compilation gcc, clang ; x-lib, libc ; debugging gdb, ddd, valgrind ; ide Code::Blocks

Projet: Raspberry-Pi

Étude du mini-computer ARM

* programmation de son assembleur ARM 
* rendus OpenGL (coniques)
* distribution Linux de la charge de compilation ARM via distcc sur x86

Environnement : ArchLinux ARM ; langage C et inline ASM; suite de compilation standard gcc, libc;debugging gdb ; distcc ; OpenGL



More

Bertin ITNovember 2018 - March 2020

Projet : SHES – Hyperviseur embarqué

Programmation de Kernel module, mise en œuvre :

• Création et spécification d'un framework ( drivers + CLI ) pour :
(1) Injection de données sur backend disk et réseaux en règles JSON
(2) Call-flow en temps réel et sortie JSON
(3) Driver de cryptographie autour du bitstream FPGA ;
(4) Pilote de sonde température via I2C FPGA ;

• Résolution du Kernel Android sur Xilinx ZCU102

Etude de portage Mesa-3D sous Android-Xilinx

Environnement : Xen; Linux ; langage C ; buildroot, gcc, gdb, GIT; GitLab; Vivado SDK; minicom

More

SAGEMCOMApril 2018 - September 2018

Projet : SetTopBox - Broadcom SOC 

Programmation de Kernel module, mise en œuvre:

* Réalisation , spécification, de drivers pour la génération Hardware de nombres aléatoires
* Evolutions de la buildroot pour le portage du vidéo frame buffer et code Perl de la Toolchain 
* Résolution du crash boot Kernel Android sur plateforme embedded & eMMC/NOR 
* Intégration du kit embaqué Netflix

Environnement : Kernel Broadcom Linux ; langage C et C++; cross-compiling, buildroot, gcc, gdb, SVN, GIT; Bugzilla, Forge Sagemcom; BOLT boot loader


More

Finances des marchésApril 2017 - November 2017

Projet : Expertise sur les performances des serveurs de trading

* Spécialisation du code de CoreFreq pour l'analyse des serveurs haute-performance 
* Tunning kernel et Linux et Clock optimizations BIOS 
* Conseil développement C/C++

Environnement : Linux RHEL; CIARA, Supermicro; 10G SolarFlare, Mellanox; compilateur gcc ; libc ; deboggueur gdb ; vi; ssh


More

CYRIL INGENIERIEFebruary 2015 - July 2016

Projet Remote : Programmation Fullstack d'une application mobile pour une Start-Up

A/ Programmation MVC des vues métiers:

* composant profilage des utilisateurs et algorithmes de recherches multi-critères 
* contrôleurs de rendu du fil des évènements et des notifications de présence 
* contrôleurs messagerie privative et du tChat en 2 à 2 ou conférence 
* contrôleur de rendu de la Map ainsi que de la localisation GPS des contacts 
* contrôleurs de consultation, modification, suppression des assets utilisateurs (photos, droits d'accès) 
* contrôleurs des in-app purchase et coupons de rechargement 

B/ Développement du Backend en NodeJS et NoSQL 

* le modèle relationnel entre utilisateurs (ami, enemi, invité) 
* la conception des fonctions Backend-Database en API Cloud JS  sur Parse
* spécifications du setup d'architecture serveur et réseau AWS

Environnement : Langage objet Swift UIKit, StoreKit, MapKit, CoreLocation, Foundation, MongoDB, JS, Nginx, Amazon EC2 Linux ; ide Xcode sous OS X

More

CYRIL INGENIERIEJanuary 2008 - January 2014

Chef de Projets IT ; Telecom & Web 

(via ma nouvelle société: CYRIL INGENIERIE)

* SFR : projet de transformation des flux XML en JSON du CTI Genesys pour Canal+ 
* Orange : projet de scripting du vectoring des ACD AVAYA de NESPRESSO 
* Orange : scrum-master de la refonte Web Entreprise pour EuropCar 
* GDF-SUEZ : MOA projet de transformation des routages ACD AVAYA et nouvelle IHM agent routing
* La Banque Postale : MOA projet de couplage des ACD avec CTI et VoIP Genesys 

Environnement : CTI Genesys ; ACD AVAYA ; Agile

More

SFRJanuary 2004 - January 2007

Domaines Selfcare Web ; SI La Carte

* Rédactions d'Expressions de besoins et de la Stratégie de recette sur le nouveau portail Web de Rechargement La Carte
* Codage de traitements SQL pour la gestion de divers livrables de spécifications du produit La Carte

Environnement : Oracle SQL ; Websphere ; MS-Project; Visio


More

Bouygues TelecomJanuary 1997 - January 2003

Projet : Programmation de serveurs vocaux télécoms 

* Conception des applications vocales SVI: Auteur du "680 Arrêté de consommation", "636 fidélisation", "0.800.29.1000 code PUK" en langage C sur SVI MG/2  - Unix-DEC
 * Spécifications de routages CTI et ACD des appels au service client par n° courts GSM (614) et longs Opérateur et programmation du vectoring des ACD Lucent 
 * Études de solutions de relâchement d'appels ACD, couplée aux switch GSM MSC Ericsson (surcharge de signalisation en users data USSD)
 * Programmation en C pour Win32 et SVI MG/2 d'une IHM et d'un automate pondeuse d'appels pour tests en charge des routages SVI, ACD, CTI

Environnement : ACD Avaya Definity G3R; CTI Genesys; SVI MG2; langage C; Win32; TCP UDP; Voice Recording[Comguard KREUTLER; NICE Systems]; MS Visual-Studio


More

Natural MicroSystemsJanuary 1994 - January 1997

France, USA

Programmation C/ASM de serveurs télécoms 

* Programmation en C « from scratch » et rédaction des spécifications détaillées du Serveur Vocal Interactif Alcatel A4625 
*Programmation de Serveurs Vocaux pour France Telecom (nouvelle numérotation à 10 chiffres) ; et du SVI de l’ACERP
*Couplage CSTA du PABX Alcatel 4400 et du serveur NOVELL TSAPI
*R&D aux USA pour le développement du middleware NaturalFax et de son protocole T30

Environnement : SDK OS/2 et Win32 ; Netware ; Unix; C ; Assembleur x86 ; NSDK ; signalisation MVIP, T30, E1 ; Protocoles TSAPI, CSTA; Alcatel 4400; Socket TCP & UDP ; AG Access ; Voice Recognition ; Text To Speech

More

TAMAYAJanuary 1994 - January 1994

Stage Mémoire : Client Musée du Louvre

* Evolutions du code C de la solution de stockage multimédia par H-coding
* Contribution aux algorithmes de traitement d'images.

Environnement : Unix AIX et SUN, langage C, Microsoft Win32

My stack

Software testing

Debugging

Protocols

SIP, TCP/IP, UDP, JSON

Analysis methods and tools

Gprof, GCC, Agile Methodology, Bugzilla

Databases

NoSQL, MongoDB

Technologies

IBM WebSphere, UIKit, SDK, POSIX

Embedded and Telecom

IVR, CTI, Embedded Linux Kernel, Buildroot

Languages

ASM, Oracle PL/SQL, Lisp, Pascal, Bash, HTML, CSS, PHP, JavaScript, Delphi, Assembler, SQL, XML, C++, Java, Swift, REXX, Jscript, BASIC

IT Infrastructure

Xen, Solaris, RHEL, KVM, MacOS, Kernel, FreeBSD, Linux, iOS, Nginx, Unix, LINUX Kernel, Novell Netware, Debian, Sun Solaris

Mobile

Apple iOS SDK, Android NDK, Android

Environment of Development

Xcode, Android Studio, Turbo C, Code::Blocks, GDB

Industrial automation

Xilinx

Frameworks

OpenGL, Node.js

Computer Tools

MS Project

My education and trainings

Ingénieur - EPSI1994 - 1994

BAC+2 - BTS Informatique de gestion1991 - 1991