Ingénieur logiciel

Ingénieur logiciel passionné et autonome, avec un amour pour l'exploration, un sens aigu du détail et un goût pour la transmission du savoir. J'aime par dessus tout créer des outils ouverts, fiables et extensibles, donnant aux utilisateurs de nouvelles possibilités.

Architecte IT confirmé avec 8 années d'expérience de conception, transformation et migration d'infrastructures de grande échelle, avec une attention particulière aux problématiques transverses, et une approche systémique centrée sur les besoins métier.

Je souhaite combiner mon savoir-faire en analyse et structuration de systèmes complexes, afin de concevoir des solutions logicielles professionnelles proches des utilisateurs finaux.

Savoir-faire clés

Langages essentiels
C++17, C11, Python 3, JavaScript ES6.
Technologies
Connaissance large de nombreux domaines.
  • programmation système, réseau, embarqué, bases de données, web, algorithmes usuels.
Bases de nombreux autres.
  • structures de données exotiques, calcul parallèle, rendu 3D, NLP, …
Architecture
  • Analyse des stakeholders.
  • Identification des quality attributes.
  • Patterns d'architecture courants.
Craftsmanship
  • Autodidacte confirmé, sachant synthétiser et partager le savoir.
  • Approche systémique de la résolution de problèmes.
  • Goût prononcé pour les solutions élégantes.
  • Travail en environnement Agile.
Outils de consulting
  • Écoute et pensée analytique.
  • Coaching et formation.
  • Présentation.
  • Excellente capacité rédactionnelle.

➥ Mon expérience en infrastructure et opérations IT est un atout pour la conception de logiciels. Voir CV.

Expérience

Reverse-engineering – développement de driver

Projet OpenSource, implémentant le support Linux complet des claviers Logitech RGB, y compris les effets dynamiques en réponse aux actions de l'utilisateur.

  • Reverse-engineering du protocole propriétaire via capture des échanges USB.
  • Réalisation d'une couche d'abstraction matérielle et d'une interface Python.
  • Conception et implémentation d'un service s'appuyant sur une architecture en plugins et un interpréteur LUA afin que les utilisateurs puissent écrire leurs propres animations.
  • Optimisation des chemins de code critiques en utilisant la vectorisation SIMD.
  • Integration avec l'écosystème bureau Linux pour une bonne expérience utilisateur. Ex. : detection du branchement d'un nouveau périphérique, du verrouillage de la session, …

  • WireShark
  • VirtualBox
  • CMake
  • Cython
  • C++17
  • LuaJIT
  • HID protocol

Architecture logicielle

Botcrypto s'apprêtait à mettre en ligne une solution de trading automatisée ciblant les investisseurs particuliers. Mais les tests montraient des problèmes de performance suffisamment importants pour bloquer le lancement.

  • Identification des contentions et analyse des causes.
  • Redesign de l'architecture sur un modèle en microservices.
  • Remplacement des outils maison par les standards du marché.
  • Suivi du développement en tant qu'architecture advisor, participant aux décisions d'architecture et aux revues périodiques.
  • La solution redesignée présente une multiplication par 1000 de sa capacité de traitement, à matériel équivalent.

  • Python 3
  • asyncio
  • Docker
  • PostgreSQL
  • redis
  • websockets

Automatisation de déploiement et intégration

n/c

Un consultant indépendant utilisant des services personnalisés (dont applications 3-tier, VPN, personal cloud storage) pour son activité souhaitait s'assurer de la disponibilité de ses outils de travail et de la sécurité de ses données, dans des contraintes budgétaires serrées.

  • Identification des services, formalisation de l'architecture et des configurations.
  • Mise en œuvre d'une solution d'automatisation des déploiement pour reconstruire les environnements en cas de défaillance, éliminant les besoins en redondance.
  • Classification des données, mise en place de chiffrement et de sauvegardes et développement des scripts ad-hoc.
  • Lors d'une défaillance majeure en 2016, tous les services étaient disponibles en moins d'une heure après le délenchement du plan de reprise, et aucune donnée ne fût perdue..

  • Python
  • Ansible
  • OpenVPN
  • PostgreSQL

Refonte et maintenance

Un plugin pour Django, avec une large base d'utilisateurs et un développement à l'arrêt nécessitait un nettoyage et une mise à jour, centrés sur deux problèmes de fond :

  • Les incompatibilités avec les nouvelles versions de Django introduisaient une dette technique inmaintenable.
    • Circonscription des couplages forts, abstraction des fonctionnalités portées par les dépendances et encapsulation des incompatibilités.
    • Après la refonte, le nombre moyen de modules affectés par une release a été divisé par 3.
  • Des incohérences dans l'API publique, exposée à une grande quantité d'utilisateurs rendaient les évolutions difficiles.
    • Conception d'une nouvelle API avec un accent sur l'utilisabilité et l'orthogonalité.
    • Mise en œuvre d'une dépréciation progressive de l'ancienne API sur plusieurs versions.
    • La transition n'a causé aucune augmentation du nombre de tickets ouverts.

  • Python 3
  • Django
  • Django-REST-framework
  • Travis-CI

Consultant en Architecture IT

Expert infrastructure spécialisé sur les problématiques transverses, la rationalisation and la virtualisation serveur. Un total de 19 missions menées à bien entre 2005 et 2011.

J'ai travaillé essentiellement aux transformations résultant de l'introduction de la virtualisation x86 dans les datacenters, tant sur les aspects techniques qu'organisationnels.

Des missions très diverses, incluant :

  • Veille technologique, études d'opportunité, estimations de ROI, schéma directeur des infrastructures, architecture technique du SI, planification et coordination de migrations, audits, diagnostics et recherche de root cause, développement d'outils spécifiques.

  • ITIL (Foundation-certified)
  • Service-Oriented Infrastructure

➥ Pour le détail de mon expérience en tant qu'architecte IT, veuillez voir mon autre CV.

Éducation

  • Ingénieur diplômé de l'ESIEE Paris, majeure informatique, promotion 2005.

    • J'ai représenté mon école à la conférence annuelle de l'Asciel (anciennement Gixel), au cours de laquelle j'ai présenté un rapport sur l'état de l'art de l'électronique dans le domaine de la sécurité du territoire.
    • J'ai conçu un contrôleur GPIO à base de FPGA pour une plateforme Motorola 68k embarquée.
    • J'ai implémenté un OS embarqué pour 68010, incluant du multitâche préemptif, et des primitives IPC.
  • DEA en Informatique Fondamentale et Applications à l'UPEM.

Centres d'intérêt

  • Blockchain : fondé une association loi de 1901 pour promouvoir les technologies Blockchain auprès du grand public, et particulièrement l'usage d'actifs numériques comme vecteur d'échange.
  • Hacking community : participation régulière au HackSXB, une communauté de makers sur Strasbourg. Je développe actuellement un framework de bot Discord en Python asynchrone pour une communauté de 10 000 utilisateurs.
  • Activité de veille : démarche personnelle autour de l'ingénierie logicielle, des technologies et du monde du business.
  • Ce site, solidabstractions.com, en react.js pour partager certaines expériences en développement.
retour en haut