Alexandre - Développeur UNIX
Ref : 080320S001-
94360 BRY SUR MARNE
-
Chef de projet, Consultant, Développeur (46 ans)
-
Freelance
Développeur infrastructure
BNP Paribas Montreuil mars – octobre 2010
• Reprise en main et évolution des outils d'infrastructure historiques BNP Paribas.
• Adaptation de ces outils pour Windows 7 (gestion UAC et séparation de la session 0).
• Outils/compétence utilisés : C++, C#, Visual Studio.
Développeur/architecte
Lotsys Suresnes janvier – septembre 2009
• Développement de la couche réseau de la future gamme de terminaux de prise de jeux de la Française des Jeux.
• Implémentation d'un parallélisme simple pour les enregistrements en masse de carnets.
• Implémentation de deux couches réseau applicatives client propriétaires (Betnet et Pro::Sys).
• Implémentation d'une interface de visualisation de vidéos streamées, basée sur MPlayer.
• Outils/compétence utilisés : C++, méta-programmation, STL, Boost, Linux, GTK+/gtkmm, Code::Blocks.
• Passage d'un Bac +5 sur cette période.
Développeur/architecte
Communications & Systèmes Le Plessis Robinson avril – décembre 2008
• Maintenance évolutive sur la PKI maison, en C++.
• Développement sur la PKI du support d'extensions pour certificats X509v3 pour support de la création de cartes à puce compatibles avec le smart card logon en environnement Microsoft.
• Nettoyage et factorisation massifs de code historique, correction de bugs multiples, en particulier de thread-safety, de memory leaks, de violations d'accès.
• Amélioration substantielle des performances de l'application (certaines tâches fréquentes comme le parsing des logs ont vu leurs performances multipliées par 10).
• Aide à la conception de la prochaine version de la PKI, en Java avec PowerAMC, destinée à être évaluée Critères Communs.
• Écriture d'un outil d'export sécurisé des données de la PKI.
• Outils/compétence utilisés : Visual C++ 6.0/MFC, Microsoft Active Directory, Netscape Directory Server, SunONE
Directory Server, Oracle, OpenLDAP, PowerAMC, UML, Java. Windows XP, Linux Fedora et Debian
Développeur
Mappy SA Paris janvier 2006 - mars 2008
• Conception et réalisation seul du webservice de photo aérienne utilisée chez PagesJaunes puis chez Mappy (qui a tenu sur quinze serveurs pendant que le service IGN ne répondait pas avec 50 machines).
• Prise en charge de la bibliothèque-serveur HTTP maison et de ses évolutions. "Nettoyage" des utilisations des
bibliothèques ATL/MFC pour revenir à un C++ plus standard, plus efficient et plus maintenable (basé sur la STL et
Boost). Tout chez Mappy est webservice, cette bibliothèque est donc centrale et vitale.
• Prise en charge partielle de la maintenance du serveur d'application maison, basé sur la bibliothèque HTTP maison.
Du C (IOCP, Winsock) légèrement encapsulé dans du C++, surplombé par un moteur XSL-T étendu embarqué (étendu par quelques fonctions cartographiques comme par exemple la reprojection, ou des accès bases de données), lui-même basé sur MSXML.
• Migration en Visual Studio 2005 puis en 64-bit de l'ensemble des applications Mappy, avec les responsables des différentes briques. Nettoyage, refactoring et optimisation massifs et profonds.
• Réécriture de l'agrégateur de données d'infotrafic, permettant de récupérer et de normaliser des flux d'infotrafic de plusieurs fournisseurs à la volée pour les fournir au plan à l'itinéraire Mappy.
• Participation à la migration de certaines données du plan de Microsoft SQL Server vers PostgreSQL.
• Réécriture des couches basses des outils Mappy pour UNIX et avec support IPv6 (Linux 2.6 et FreeBSD 6.2 ont été testés sur plates-formes x86_64, avec respectivement les API epoll et kqueue), avec des gains de performances
constatés de l'ordre de 10 à 30 % sur un matériel équivalent si aucun parsing de XML n'est effectué. Les services d'envois simples de fichiers via http, de photo aérienne et de géolocalisation ont été testés avec succès, des statistiques simples étaient loggées dans un serveur MySQL. Le projet a été abandonné.
• Prise en main de la conception de l'architecture du nouveau serveur d'application Mappy, basé sur Linux, Apache et PHP. Test de performances, optimisation de code, scalabilité, choix d'outils, compilation de paquets Debian modifiés
pour l'optimisation (Apache multithreadé avec MPM Worker, PHP et modules PHP pour aller avec...), création de bibliothèques PHP et d'extensions cartographiques sous forme d'un module PEAR. Gestion voulue temporaire par
moi d'une équipe d'experts PHP embauchés pour l'occasion. Le projet est en train d'arriver à son terme et Mappy commence enfin aujourd'hui à tourner sans Flash, plus d'un an après mon départ, on a les plaisirs qu'on peut...
• Formation à la gestion de projet et participation à des projets transverses. (En général : expliquer au marketing que
leur idée est très bonne mais mettrait deux années homme à implémenter.)
• Outils utilisés : Microsoft Visual Studio 2003/2005/2008(bêta), C/C++ (STL, Boost, ATL/MFC), Linux, GCC, Python pour les scripts de génération de données et les tests de fiabilité et de performances, libECW, jpeglib et GDAL pour le
traitement des photos aériennes, Winsock2, I/O Completion Ports, MSXML, XSL-T, threads POSIX (standard UNIX sous Linux), epoll (Linux)et kqueue (BSD) pour une programmation évènementielle.
Analyste-programmeur puis chef de projet
Stago Instruments Gennevilliers avril 2004 - mai 2005
• Conception seul et réalisation à deux d'un jeu d'outils de test d'appareils de mesure d'hémostase, avec backend sur base de données et générations de rapports en CSV via une application multi-plates-formes codée avec FLTK. Un
frontend web (intranet) à la partie statistique (accès aux CSV) a également été entamé sous ma direction, basé sur PHP et Apache. Il n'a pas été fini pour des raisons financières.
• Implémentation d'un client pour le protocole ASTM, utilisé dans le domaine médical.
• Outils utilisés : C/C++ (STL, Boost), Linux, gvim, GCC, FLTK, PostgreSQL, POSIX Threads.
• Passage d'un Bac + 4 sur cette période.
Architecte technique - développeur - chef de projet (intitulé de poste final : "chef de projet")
Association Fadeno Paris avril 2003 - décembre 2003 + juin 2005 - décembre 2005
• Conception seul et réalisation à quatre en régie d'un framework sécurisé et multi-plates-formes de partage de documents pour une joint-venture entre gros sous-traitants de grandes entreprises réputées des domaines automobile, aéronautique et nautique. Installation d'une messagerie inter-entreprises sécurisée, basée sur un serveur Jabber. Le passage de connaissances a été correctement effectué, les outils que j'ai mis en place sont aujourd'hui en
maintenance pure, et leur utilisation était encore quotidienne début 2008.
• Outils utilisés : C/C++ (STL), PostgreSQL, OpenLDAP, Apache, PHP, MIT-KRB5, jabberd, gvim, GCC, Linux, Solaris,
Windows...
Analyste-programmeur
Divers Région parisienne janvier 2000 - décembre 2002
• Difficiles premières années dans le métier d'un programmeur débutant. Missions diverses de développeur et de formateur.
• Passage d'un Bac + 3 sur cette période.
Support bureautique, administrateur systèmes et réseaux
Divers Région parisienne novembre 1997 - août 1998
• Difficiles premiers mois dans le milieu d'un informaticien débutant.
DIPLÔMES
Maîtrise en développement informatique (VAE, Bac + 4)
Université d'Angers, FRANCE 2004
Licence professionnelle en programmation objet (VAE, Bac + 3)
Université d'Évry, FRANCE 2002
COMPÉTENCES
· C / C++ / Objective C : standards ISO dont STL, standard POSIX, Boost (Smart pointers, regex, functional, un peu test et TR1), utilisation de différents toolkits graphiques (FLTK, Fox, GTK+ et gtkmm, Qt, *STEP)
· SQL standard, avec une expertise sur PostgreSQL, bonne connaissance de MySQL 5 et de SQL Server, connaissance de surface de Sybase, de DB2 et d'Oracle et de son PL/SQL.
· Programmation Linux user à noyau (portage de drivers depuis x86 vers x86_64, fonctionnement des I/O schedulers...). Pratique de la programmation C et UNIX au sens large depuis le début des années 90 (NeXTSTEP, 386BSD, puis Linux).
· Programmation Java, maîtrise d'outils "classiques" comme Hibernate, et Struts, un peu Swing et JSP...
· Multithreading, thread-safety, connaissance des primitives de synchronisation et de l'optimisation algorithmique ou orientée vers une plate-forme logicielle ou matérielle (Pratique de Windows, UNIX/Linux, Java et de plusieurs API)
· Maîtrise des Design Patterns les plus fréquemment utilisés (Singleton, Fabrique Abstraite, Adaptateur...)
· Sockets BSD et leurs variantes asynchrones (Winsock, sockets asynchrones FreeBSD, Linux).
· Portabilité et écriture de code multi-plates-formes et performant en C ou C++ (niveaux matériel et logiciel, dont gestion de l'endianness, de l'alignement des données en RAM, de la taille de l'espace d'adressage, des plages d'adresses accessibles en DMA par le matériel, optimisation du parallélisme, techniques “zero copy”, limitation des passages inutiles de kernel barrier sur la gestion mémoire, la synchronisation, etc...).
· XML en général (DTD, Schémas XSD et RNG, DOM, SAX, Xpath, XSL-T). Pratique des bibliothèques MSXML, libxml2 / libxml++ / libxslt, et (un peu) Xerces / Xalan Java et Xerces / Xalan C++.
· Sécurité informatique : connaissance de surface de divers algorithmes cryptographiques (signature et chiffrement) et des normes liées (PKCS#*, X509, LDAP, algorithmes RSA, SHA, Elgamal, PGP, GPS...), et de plusieurs outils (certutil Microsoft, certtool GNUTLS, openssl).
· Développement web : Linux/*BSD, Apache / Lighttpd, PHP / Python / Ruby on Rails / JSP + Beans, MySQL /PostgreSQL.
· Utilisation habituelle et administration à un niveau raisonnable de différents UNIX et clones (Linux, *BSD,Solaris, HP-UX, AIX, OS X), en shell et via interface graphique. Utilisation professionnelle de Windows. Mes machines personnelles fonctionnent sous Gentoo Linux x86_64. Même le PC portable.
· Utilisation de l'outil informatique depuis décembre 1984 (j'avais 7 ans). L'informatique m'est de ce fait “naturelle”.
· Connaissance plus ou moins avancée du code source de plusieurs projets Libres : OpenOffice, Abiword,GLib/GTK+, Gimp, Linux (au niveau kernel, j'ai personnellement modifié les drivers pwc et uvc), GlibC, Firefox,
Boost, Fox, FLTK, GNUStep, OpenLDAP, MIT-KRB5, Heimdal, GDAL, libECW, jpeglib.
· Pratique minimale de l'administration d'un certain nombre d'outils serveurs : Apache, Samba, Sendmail, MITKRB5,OpenLDAP, Active Directory.
· Maîtrise de plusieurs langages hors de ma base C/C++ : Objective C, PHP, Python, Perl, Java... quelques souvenirs lointains de Pascal, Lisp et ses variantes, Ocaml...
· Quelques notions de traitement d'image programmé (utilisation limitée du mogrify d'ImageMagick, et de GDAL pour les données géographiques).
· UML 2.0 "papier-crayon" ou à l'aide d'outils informatiques.
· Culture informatique, culture générale, anglais et orthographe de très bon niveau.
· Capacité à former et encadrer.
· "Mode projet", et la capacité d'adaptation et d'implication au coup par coup qui va avec.
· Un vrai "sens du service" orienté vers le client final.
QUALIFICATIONS • Développeur/architecte technique/chef de projet, expert en C, C++, conception et programmation serveurs de haute
disponibilité/hautes performances, compétences avancées en sécurité et en développement web. 10 ans d'expérience autour de développements informatiques. Maîtrise de différents environnements logiciels (propriétaires,
UNIX) et de plusieurs langages.