Sylvain - Administrateur système C

Ref : 161124F001
Photo de Sylvain, Administrateur système C
Compétences
C
C++
PERL
SQL
Expériences professionnelles
  • Développeur

    Thales SIX
    Jan 2019 - Jan 2020

    Langages : C, C++, Perl, Bash
    Travail réalisé : Maintenance en conditions opérationnelles d’un des logiciels de paramétrage des modems satellites.

    Ajout de correctifs, et tests :
    Modification de la base de code (ancienne, et volumineuse – millions de lignes de code, en comptant le « socle » applicatif, partagé avec d’autres produits) pour corriger des bugs, ou répondre à des demandes client. Tests unitaires, et tests fonctionnels sur plateforme dédiée reflétant la configuration du client.
    Relation client, en anglais, tant pour obtenir les besoins (ou des détails sur les besoins exprimés), ou pour obtenir des détails sur les problèmes rencontrés. Réalisation de protocoles de tests à faire exécuter par le client quand les données (sensibles, car militaires) ne peuvent être envoyées pour permettre une réplication du problème sur nos systèmes.

  • KERTIOS
    Jan 2018 - Jan 2019

    Développement applications Web en interne

    Langages : HTML, PHP, Javascript, SQL (MySql)
    Travail réalisé : Développement d’applications internet, tant à usage interne que pour des clients de la société KERTIOS.

    Conception et développement d’applications :
    Choix de l’architecture technique, et du modèle de données
    Création de la structure en base de données, ajout des contraintes, index, etc.
    Développement du code applicatif côté serveur (PHP) et client (Javascript, y compris AJAX), écriture des requêtes SQL
    Tests des fonctionnalités

  • Développeur

    Evistel
    Jan 2016 - Jan 2018

    Langages : C, C++, Perl, Bash, SQL (sous Postgres), makefile
    Travail réalisé : Le but était de reprendre le développement d'une plate-forme logicielle complexe (Open Software Platform), afin d'y ajouter de nouvelles fonctionnalités. Cette plate-forme inclut de nombreux logiciels couplés plus ou moins fortement entre eux, et comprend un interpréteur pour un langage propriétaire développé en interne par Evistel.

    Etude et documentation de l’existant :
    Le code principal de la plate-forme avait été écrit rapidement, et sans tenir compte des bonnes pratiques usuelles (code copié-collé en de nombreux endroits, code mort laissé en place, absence de documentation des fonctions, certains cas limite non pris en compte, etc.) J’ai documenté au fur et à mesure que je déchiffrais les fonctions.
    Les sources n’avaient pas été versionnées proprement. Ou, plutôt, la dernière version n’avait pas été archivée correctement dans les dépôts CVS du projet, et il n’y avait pas de procédure d’installation clairement définie pour le projet. J’ai écrit un script pour automatiser la récupération des sources et des dépendences (bibliothèques et autres projets propriétaires utilisés par la plateforme), créer l’arborescence, les liens symboliques, etc. Désormais, le projet s’installe en une seule commande.

    Modification de l’existant, modularisation :
    La plateforme OSP est principalement un interpréteur pour le langage propriétaire OSPL, sur lequel sont greffés des « modules » spécifiques à tel ou tel protocole (envoi de SMS, facturation de tel ou tel service, etc). Ces modules étaient fortement couplés avec le système, dans l’ancienne version (compilés en dur, mentionnés dans les sources du programme principal, etc), et n’étaient donc pas réellement modulaires. Une grosse partie de mon travail a consisté en une modification de l’architecture du logiciel, pour permettre de charger les modules dynamiquement (plusieurs dizaines de milliers de lignes de code à modifier).

    Ajout d’un module SQL :
    Pour ajouter à la plateforme OSP la possibilité d’accéder à des bases de données SQL via le langage OSPL, j’ai réalisé un module fournissant une abstraction de haut niveau, générique, vers une base de données SQL. Seule l’implémentation de ce module pour Postgres a été réalisée, mais l’architecture choisie permettra d’ajouter facilement le support de MySql, Oracle, SQL Server, ou toute autre base de données SQL, si le besoin s’en fait sentir dans le futur.

  • Développeur

    Ingenico
    Jan 2016 - Jan 2016

    Langages : C, Perl, Bash, PL SQL (sous Postgres)
    Travail réalisé : Le but était d’analyser des codes de réplication de transactions, écrits en C, et de fournir un code équivalent, sous forme de modules Perl, compatibles avec un “moteur” écrit en Perl. En effet, les codes écrits en C n’avaient pas été pensés pour les volumétries actuellement rencontrées, et, au final, étaient bien moins performants que les modules Perl écrits en remplacement.

    Etude et documentation de l’existant :
    Un “moteur” en Perl, et des plugins pour certaines applications (Carte Bleue, American Express, etc. - les plus forts volumes, en transactions/jours) étaient déjà écrits, mais aucune documentation n’était fournie. J’ai donc dû analyser le code, et documenter les fonctions, ainsi que déterminer les entrées-sorties attendues pour les plugins.
    Le code C n’était pas non plus documenté, il a donc fallu comprendre de quelle manière il agissait, surtout que chaque développeur avait son propre style, ses propres “standards” de livraison, etc (méthodes d’installation très différentes, au cas par cas, et ne marchant généralement pas du premier coup)

    Réalisation des plugins :
    Ecriture des plugins, en optimisant autant que possible, pour ne pas ralentir tout le processus.
    Amélioration du moteur, que ce soit par ajout de fonctionnalités, ou en factorisant le code, créant des bibliothèques, etc.

    Assurance Qualité :
    Ecriture d’outils de tests: Comme nous n’avions pas de jeu de test extensif (les tests sont normalement réalisés par une équipe dédiée, chez Ingenico), écriture d’outils prenant les flux de production, et en faisant une copie vers l’environnement testé, afin de comparer les résultats de la réplication “en production” (version en C) et de la réplication en Perl (que nous testions).


    Magillem 3 mois 02/2017 -> 04/2017
    Développeur

    Langages : Perl, Java, Shell Windows (CMD), Apache Ant, Lexer “JFlex”
    Travail réalisé : Le but premier était l’adaptation d’un script Perl, qui convertissait des spécifications électroniques, écrites selon un format spécifique à ST Microelectronics (dans des fichiers Word, Excel, ou Adobe FrameMaker (MIF)), vers le format XML « IP-XACT », qui est un standard industriel ; afin de réaliser les mêmes tâches en Java.

    Au final, l’essentiel du travail a tourné autour de la réalisation d’une API permettant de lire et écrire le format MIF (Maker Interchange Format), utilisé par Adobe FrameMaker, afin de pouvoir inclure ce format dans le modèle Java préexistant, et le rendre interopérable avec les autres formats gérés par l’application Magillem.

    Analyse des besoins, et des spécifications :
    Recherche de documentation sur le format MIF, réalisation de tests et de « retro-engineering » quand cela était nécessaire (par exemple, parce que la documentation officielle ne permettait pas de savoir réellement ce que faisait le logiciel dans tel ou tel cas).
    Analyse des scripts Perl existants, pour voir de quelle manière certaines informations étaient gérées.

    Conception d’API :
    Mise en place d’une structure arborescente, proche du DOM, pour représenter les fichiers MIF.
    Extension de ces classes et interfaces, pour coller au plus près des balises du format MIF, avec une philosophie « extensible » : Ce qui n’est pas encore implémenté apparaît de manière générique, mais l’ajout de classes permettant de le reconnaître, plus tard, ne casse pas l’existant, il facilite simplement l’ajout de nouvelles fonctionnalités.
    Utilisation intensive des concepts objets avancés (interfaces, héritage, généricité) pour réduire la quantité de code nécessaire, augmenter la robustesse, et la réutilisabilité du code produit.
    Optimisation du code (ajout de systèmes de gestion de cache complexes, pour réduire les coûts des nombreux parcours d’arbre successifs)

    Assurance Qualité :
    Ecriture de tests unitaires et fonctionnels.
    Mesure de performances (vitesses de traitement, selon divers algorithmes).
    Rédaction de documentation :
    Documentation complète de l’API générée, y compris exemples de code.

    Automatisation de la livraison
    Génération de livrables via l’écriture de fichiers ANT.
    Ecriture de scripts BATCH (.BAT) pour le shell Windows.

    » Ingenico Durée : 3 mois
    Langages : C, Perl, Bash, PL SQL (sous Postgres)
    La société Ingenico est une grande entreprise Française (6000 employés), à rayonnement mondial (présence dans 170 pays). Elle développe des terminaux de paiement (matériel ET logiciel), et entretient une importante infrastructure informatique, en interne, pour servir d’intermédiaire entre les clients et les différents réseaux bancaires ou assimilés. Sa part de marché mondiale, pour les terminaux de paiement, était estimée à 45% en 2014.
    Travail réalisé : Le but était d’analyser des codes de réplication de transactions, écrits en C, et de fournir un code équivalent, sous forme de modules Perl, compatibles avec un “moteur” écrit en Perl. En effet, les codes écrits en C n’avaient pas été pensés pour les volumétries actuellement rencontrées, et, au final, étaient bien moins performants que les modules Perl écrits en remplacement.

    Etude et documentation de l’existant :
    ● Un “moteur” en Perl, et des plugins pour certaines applications (Carte Bleue, American Express, etc. - les plus forts volumes, en transactions/jours) étaient déjà écrits, mais aucune documentation n’était fournie. J’ai donc dû analyser le code, et documenter les fonctions, ainsi que déterminer les entrées-sorties attendues pour les plugins.
    ● Le code C n’était pas non plus documenté, il a donc fallu comprendre de quelle manière il agissait, surtout que chaque développeur avait son propre style, ses propres “standards” de livraison, etc (méthodes d’installation très différentes, au cas par cas, et ne marchant généralement pas du premier coup)
    Réalisation des plugins :
    ● Ecriture des plugins, en optimisant autant que possible, pour ne pas ralentir tout le processus.
    ● Amélioration du moteur, que ce soit par ajout de fonctionnalités, ou en factorisant le code, créant des bibliothèques, etc.
    Assurance Qualité :
    ● Ecriture d’outils de tests: Comme nous n’avions pas de jeu de test extensif (les tests sont normalement réalisés par une équipe dédiée, chez Ingenico), écriture d’outils prenant les flux de production, et en faisant une copie vers l’environnement testé, afin de comparer les résultats de la réplication “en production” (version en C) et de la réplication en Perl (que nous testions).

  • Magillem
    aujourd'hui

    Langages : Perl, Java, Shell Windows (CMD), Apache Ant, Lexer “JFlex”
    La société Magillem est une PME (environ 50 salariés) qui édite une solution de gestion documentaire, ciblant principalement l’industrie électronique, et le monde juridique. Elle compte dans ses clients de très grands comptes, comme Intel, ou ST Microelectronics, par exemple.
    Travail réalisé : Le but premier était l’adaptation d’un script Perl, qui convertissait des spécifications électroniques, écrites selon un format spécifique à ST Microelectronics (dans des fichiers Word, Excel, ou Adobe FrameMaker (MIF)), vers le format XML « IP-XACT », qui est un standard industriel ; afin de réaliser les mêmes tâches en Java.
    Au final, l’essentiel du travail a tourné autour de la réalisation d’une API permettant de lire et écrire le format MIF (Maker Interchange Format), utilisé par Adobe FrameMaker, afin de pouvoir inclure ce format dans le modèle Java préexistant, et le rendre interopérable avec les autres formats gérés par l’application Magillem.
    • Analyse des besoins, et des spécifications :
    • Recherche de documentation sur le format MIF, réalisation de tests et de « retro-engineering » quand cela était nécessaire (par exemple, parce que la documentation officielle ne permettait pas de savoir réellement ce que faisait le logiciel dans tel ou tel cas).
    • Analyse des scripts Perl existants, pour voir de quelle manière certaines informations étaient gérées.
    • Conception d’API :
    • Mise en place d’une structure arborescente, proche du DOM, pour représenter les fichiers MIF.
    • Extension de ces classes et interfaces, pour coller au plus près des balises du format MIF, avec une philosophie « extensible » : Ce qui n’est pas encore implémenté apparaît de manière générique, mais l’ajout de classes permettant de le reconnaître, plus tard, ne casse pas l’existant, il facilite simplement l’ajout de nouvelles fonctionnalités.
    • Utilisation intensive des concepts objets avancés (interfaces, héritage, généricité) pour réduire la quantité de code nécessaire, augmenter la robustesse, et la réutilisabilité du code produit.
    • Optimisation du code (ajout de systèmes de gestion de cache complexes, pour réduire les coûts des nombreux parcours d’arbre successifs)
    • Assurance Qualité :
    • Écriture de tests unitaires et fonctionnels.
    • Mesure de performances (vitesses de traitement, selon divers algorithmes).
    • Rédaction de documentation :
    • Documentation complète de l’API générée, y compris exemples de code.
    • Automatisation de la livraison
    • Génération de livrables via l’écriture de fichiers ANT.
    • Écriture de scripts BATCH (.BAT) pour le shell Windows.

  • La société GFI

    GFI
    aujourd'hui

    La société GFI est une grande SSII (plus de 9000 salariés), qui réalise des prestations allant du développement logiciel à la tierce maintenance applicative (TMA). GFI ayant racheté l'unité « Business Solutions » (BuS) de la société Thales, elle a naturellement hérité de contrats de maintenance précédemment assurés par Thales BuS pour de nombreux logiciels utilisés chez Thales.
    Travail réalisé : TMA sur l'application MARCO POLO (gestion des ordres de mission, des notes de frais, des réservations de voyages/hôtels/etc., pour la quasi-totalité des entités du groupe Thales) - Support utilisateur, réalisation de correctifs mineurs, surveillance d'exploitation, réalisation de tests, création de scripts d'automatisation, reporting, gestion des relations éditeur, conduite du changement, etc.
    • Support utilisateur :
    • Réponse aux demandes d'assistance (aide à l'utilisation, investigation des bugs rencontrés)
    • Génération de reportings spécifiques (extraction de données de la base Oracle)
    • Surveillance d'exploitation, maintien en condition opérationnelle :
    • Correction de problèmes ponctuels (fichier mal intégré / mal transféré, relance de traitement échoués, etc.)
    • Gestion des mises à jour (mise en production de mises à jour logicielles livrées par l'éditeur de la solution, modification des données de référence livrées par Thalès, adaptation du logiciel en cas de modification externes, évolutions du besoin, etc.)
    • Recette des livraisons reçues, maintien de serveurs de test / intégration / pré-production, pour gérer le changement.
    • Analyse de logs, transmission des anomalies à l'éditeur, communication avec les équipes chargées de l'hébergement du logiciel (serveurs d'application J2EE, et autres machines sous Linux), des serveurs BDD Oracle, du réseau, de la sécurité Thales, etc.
    • Création et modification de scripts shell, ou Perl, pour automatiser les traitements récurrents. Création et modification de scripts SQL et PL/SQL pour extraction et modification de données de la base Oracle.
    • Rédaction de documentation :
    • Rédaction de manuels d'utilisation pour les scripts produits ou mis à jour
    • Création de procédures détaillées pour pouvoir refaire aisément ce qui a pris du temps à réaliser une première fois (à destination de l'équipe TMA et/ou du Help Desk Thales)
    • Documents liés aux modifications (demandes de modification, mise à jour des descriptifs de l'état des systèmes, etc.)

    Langages : Perl, SQL (Oracle), PL/SQL, bash
  • Retail Explorer
    aujourd'hui

    La société Retail Explorer est spécialisée dans la veille concurrentielle dans le milieu de la grande distribution. Elle répertorie les prix « catalogue » et les prix constatés dans les supermarchés / hypermarchés / supérettes, et sur les sites internet de ces enseignes, afin de proposer des études statistiques et des rapports spécifiques, à la demande.
    Travail réalisé : Conception et développement d'un logiciel traitant de fortes volumétries de données, les traitant et insérant les données « intéressantes » en base, puis générant des rapports quotidiens se basant sur les données en base.
    • Moteur de traitement des données :
    • Conception largement réalisée en autonomie (Méthode S.C.R.U.M., peu de spécifications pré-établies)
    • Traitement de nombreux fichiers texte, volumineux (de l'ordre de plusieurs millions de lignes par jour)
    • Développement intégralement en Perl, pour profiter du moteur d'expressions régulières
    • Optimisation de performances
    • Utilisation de base de données (MySQL), via Net::MySQL et DBI.
    • Tâches annexes :
    • Administration base de données (création/modification des tables requises, index, triggers et procédures stockées...)
    • Administration UNIX, en marge du projet (création des arborescences de données utilisées, mis en place d'utilisateurs, de taches programmées, etc.)

    Langages : Perl, SQL (MySQL), bash
  • Bull S.A.S.
    aujourd'hui

    BULL est un constructeur Français d'ordinateurs. Ces dernières années, son offre s'est spécialisée sur le calcul haute performance, dont il est un des leaders mondiaux (plusieurs des supercalculateurs les plus puissants au monde ont été réalisés par BULL).
    Travail réalisé : Membre de l'équipe "Vérification" du département R&D HPC (High Performance Computing) de Bull pour les nouveaux supercalculateurs du futur.
    • Développement d'outils de test (outil BTF):
    • Conception, refactoring d'existant
    • Développement en Perl / scripts shell (bash / sh)
    • Développement de tests pour les produits Advanced Edition (HPC) de Bull.
    • Développement en Perl / C++
    • Utilisation de bases SQL
    • Sous les systèmes BullxLinux et RedHat
    • Passage de tests, détection de bugs, assurance qualité.

    Langages : C++, Perl, bash, SQL
  • AirPX
    aujourd'hui

    AirPX est une start-up développant et commercialisant une solution innovante de prédiction de pannes dans le domaine aéronautique, en se basant sur l'observation de mesures réalisées par les enregistreurs de vol, et les pannes ayant été détectées par le passé.
    Travail réalisé : Traduction de programmes écrits en code R vers Java ; développement d'outils en Java.
    • Programmation Objet en langage Java
    • Recherche (reconnaissance graphique limitée)

    Langages : bash, Java, SQL, R
  • OGDPC
    aujourd'hui

    L'OGDPC (Organisme Gestionnaire du Développement Professionnel Continu) est un GIP (Groupement d'Intérêt Public) constitué entre l'état et l'Assurance Maladie, dont la mission principale est de veiller à ce que l'obligation de formation continue annuelle qu'ont les médecins et les autres professionnels de santé soit appliquée, et applicable (information, labellisation de formations, distribution d'aides à la formation, etc.)

    Travail réalisé : Développement d'un site internet, d'un intranet, et de plusieurs extranets pour l’Organisme pour le développement de la formation continue pour les professionnels de santé.
    • Conception du site
    • Conception de bases de données, optimisation pour de nombreuses consultations
    • Développement du site
    • Assistance aux utilisateurs

    Langages : HTML, PHP, Javascript, SQL
Études et formations
  • ISTY (Institut des Sciences et Techniques des Yvelines), option recherche (cours en commun avec le Master 2 COSY (Optimisation, Parallélisme))

Autres compétences
Langues
Anglais : courant
Allemand: bases
Japonais : notions

COMPETENCES CLES
» Systèmes et bureautique
• DOS, Windows , Unix (principalement Linux et FreeBSD)
• MS Office, OpenOffice

» Langages maîtrisés
• C/C++, Java
• Scripts: Perl, shell linux (bash / sh)
• HTML, CSS

» Langages moins bien maîtrisés (plus ou moins rouillés) :
• Scripts batch DOS/windows (command / cmd)
• PHP, XML/XSD/XSL
• Assembleur x86

» Langages ayant été pratiqués (pas de départ de zero, donc):
• QBasic, Prolog.

» IDE et Outils
• Eclipse, QtCreator, JCreator, DevC++, Visual Studio (C/C++)
• VI, Make, GCC
• SVN/Trac, Valgrind, Mantis, Redmine, Git/Github/Gitlab

» Bases de données
• MySQL
• Postgres
• Oracle

» Concepts
• POO & Design Patterns, programmation dynamique
• Multithreading, communications réseau (TCP/IP, Sockets…)
• Sécurité de l'information & cryptographie (DES, AES, RSA)
• Parallélisme (OpenMP, MPI)

D'autres freelances
Administrateur système C

Ces profils pourraient vous intéresser !
CV Ingénieur systèmes embarqués
Kény

Ingénieur systèmes embarqués

  • VERSAILLES
UNIX LINUX FLUTTER C++ C K SHELL QT PYTHON
Disponible
CV Administrateur système LINUX
Romain

Administrateur système LINUX

  • LE PLESSIS-ROBINSON
LINUX REDHAT LINUX UBUNTU ANSIBLE DEVOPS PYTHON C NAS SAN VMWARE
Disponible
CV Administrateur Bases de Données LINUX
Dominique

Administrateur Bases de Données LINUX

  • NEUVE-ÉGLISE
LINUX SCRIPT SHELL SIP ORACLE PYTHON SQL PL SQL MICROCONTROLEUR C Arduino
CV Ingénieur Développeur C/C++
Albéric

Ingénieur Développeur C/C++

  • PLÉLAN-LE-PETIT
C C++ PHP GIT GITLAB LINUX SQL JAVASCRIPT
Disponible
CV développeuse web
Wafa

développeuse web

  • STRASBOURG
C SQL LINUX PYTHON ANGULARJS DJANGO NODE.JS JAVASCRIPT
Disponible
CV Développeur JAVASCRIPT
Michel

Développeur JAVASCRIPT

  • LORIENT
JAVASCRIPT C HTML PHP MYSQL CSS SQL
Disponible
CV Architecte LINUX
Armand

Architecte LINUX

  • BAGNOLET
LINUX PYTHON BASH ANSIBLE DOCKER GIT C
CV Administrateur réseaux CISCO
Godwin Julio

Administrateur réseaux CISCO

  • LENS
LINUX MYSQL HTML5 CISCO C PYTHON PHP CSS JQUERY IPV6
CV Administrateur système WINDOWS
Sylvain

Administrateur système WINDOWS

  • LYON
WINDOWS LINUX PYTHON C++ C SQL JAVASCRIPT HTML CSS
CV Développeur C++ PYTHON JAVASCRIPT
Arnaud

Développeur C++ PYTHON JAVASCRIPT

  • MARSEILLE
EXCEL LINUX C++ SQL PYTHON JAVASCRIPT C CSS NODE.JS Vue.js