Alban Peignier - Curriculum Vitae

Résumé

Depuis 2005, je fais parti des nombreux convertis à Ruby On Rails. Après une décennie de développement Java, je retrouve dans Ruby et Rails la même fraîcheur que dans les technologies Java il y a quelques années. Je souhaite maintenant privilégier les projets mettant en oeuvre cet environnement.

Exploiter la souplesse et la richesse portées par Ruby et Ruby On Rails nécessite une bonne dose d’expérience. La qualité logicielle trouve tout son sens lorsqu’il s’agit de travailler avec un langage dynamique et un framework en évolution continue.

Combiner des connaissances en langages, en qualité et méthodes logicielles, en administration unix, en online holdem poker, en réseau et télécoms, m’a permis de participer à de nombreux projets professionnels ou libres.

Etat Civil

Alban Peignier - alban.peignier@free.fr - né le 16 juin 1977 - résident à Pontoise - Blog

Compétences

Ruby On Rails

Quelques unes de mes compétences en Ruby On Rails acquises ces 3 dernières années :

  • Design RESTful
  • Test driven development : Rspec, autotest/spec, rcov
  • Quelques 45000 lignes de Rails
  • Gestion “restful” des permissions utilisateurs
  • ActionMail: support multipart, inline images et mass-mailing
  • Creation de plugins
  • Gestion de documents audio : multi format (ogg/mp3), re-encoding asynchrone, playlist, podcast
  • Integration “Google” : Google Analytics en multi account, sitemaps multi site
  • Taches asynchrones (via cron)
  • Interaction avec Postfix, Asterisk
  • Support de template liquid
  • Web-services (old ActionWebService)
  • JRuby (en particulier pour des drivers jdbc)
  • Déploiement: capistrano multistage, apache2/mongrel
  • Process via trac, subversion, git and cruiseControl.rb

Java

J’ai eu l’occasion de découvrir et d’explorer professionnellement le langage Java très tôt (fin 1996). J’ai ensuite pu mettre en oeuvre et faire évoluer cette expertise au sein d’équipes et d’environnements variés (supervision, finances, banques, télécoms).

  • Large spectre d’activités : de l’implémentation de protocole RTP au design d’interface de point de vente, de la mise en oeuvre d’un moteur d’inférence au conseil pour la qualité logicielle,
  • Environnements de production variés : du clusters EJB au daemon “simple”, de l’interface web à des interfaces Swing/SWT pour le grand public, pour les points de vente
  • Contributions à de nombreux projets libres : Jakarta Commons, Ant, CruiseControl, FreeCast

Qualité logicielle

Depuis 2001, une partie de mon activité consiste à mettre en place, maintenir (et utiliser) les process de travail des équipes dont j’ai fait partie. Ce travail se décline aussi bien en Java qu’en Ruby On Rails :

  • Processus de livraison itératif
  • Organisation du travail des équipes par ticketing/story (trac, bugzilla)
  • Test driven development (tests et mocks en rspec, en JUnit)
  • Utilisation et conseil dans la mise en place de l’intégration continue depuis 2003
  • Gestion de branches pour les corrections, pour les livraisons (git, subversion, cvs)
  • Mise en place et maintenance de process scriptés de validation, tests automatiques, mise en production (rake, ant, capistrano)

Administration

Pour supporter les différents projets présents ou passés, j’ai été amené à mettre en place du simple serveur à des architectures système plus complexes :

  • Debian: packaging, configurations diskless,
  • Process d’administration géré par Puppet (un système d’automatisation des tâches d’administration)
  • Virtualisation Xen
  • Réalisations: hébergements de nos applications (principalement Java, Rails), serveurs de benchmark, sites web fréquentés, stockage, streaming, systèmes “embarqués” pour le son, serveur de mail mutualisé, ...
  • Déploiement sur dedibox, en datacenter, gestion de baies

Experience

Conception/Developpement du Système d'Information

chez Ipnotic Telecom - depuis décembre 2005

Mise en place du provisionning et de l’espace utilisateur permettant de paramétrer les équipements et les services

Provisioning

Ce système gère le paramétrage et la remontée d’information des équipements. Il permet aux équipes d’exploitation de provisionner les resources des utilisateurs en quelques clics. L’application gère une synchronisation transactionnelle des équipements.

  • Provisioning et consultation Cirpack, MGC et services ClassV via requetes http et adabas (Ibatis)
  • Provisioning et consultation des répondeurs, fax (Asterisk)
  • Provisioning des services mails (Postfix), backup, vpn, réseaux
  • Développement, intégration et validation avec les équipes techniques et support
  • Mise en place de webservices Rails pour administrer certains services
  • Interaction avec le reste du SI : CRM et billing (Axis)

Espace Utilisateur

C’est l’interface unifiée qui permet aux utilisateurs finaux de consulter, paramétrer et administrer les services proposés :

  • Application Spring MVC utilisant xhtml et css
  • Nombreux fonctionnalités intégrées : gestion de contacts, écoute des messages audio, consultation fax, administration mail, ...
  • Évolution des interfaces avec le provisionning (Axis, Burlap, fusion)
  • Refonte graphique et évolutions (CSS, Scriptaculous)
  • Annuaires XML consultés par les téléphones

Gestion de projet

  • Mise en place d’un développement itératif sur les deux applications
  • Processus de validation et de mise en production (Ant, CruiseControl, Bugzilla)
  • Spécifications avec les équipes techniques et marketing

Environnement: Spring, Hibernate, Acegi, Ibatis, Mysql, Adabas, Tomcat, JUnit, Ant

Applications de gestion de contenus radiophoniques

pour Tryphon - depuis 2005

AudioBank et BonnesOndes sont des applications Ruby on Rails proposées en service gratuit par le collectif Tryphon. Ce sont des outils open-source développés pour nos besoins dans le cadre de radios éphémères puis mis à disposition des radios associatives.

AudioBank

assure le stockage et l’encodage des documents audio afin de permettre l’échange entre radios ainsi que la publication sur internet

  • gestion d’upload de gros fichiers via répertoire ftp temporaire
  • jobs asynchrones assurant le re-encodage audio
  • mise à disposition multi-formats : ogg/mp3 selon les players clients, playlists, podcasts
  • partage des documents entre utilisateurs et groupes, notifications
  • web-services permettant la gestion des documents et client cli assurant la création et l’upload automatique de documents
  • API javascript pour intégrer un player dans une page web
  • anti-scraping : urls, cband apache

Le service gère actuellement 20 G de documents et assure jusqu’à 100G de traffic mensuel.

Environnement: Rails 1.2, rspec, plugins classiques, openid, trac, git

Bonnes Ondes

gére les sites d’émissions de radio en quelques clics. En plus des fonctions classiques : textes, images, templating, feed rss, il intègre l’intégration des contenus audios, la publication de podcasts, l’administrateur multi-user ou encore un domaine propre pour chaque émission.

Environnement: Rails 2.1, rspec, plugins classiques, liquid, trac, git

Recherche et nouveaux développement sur XCalia Core (LiDO)

chez XCalia (anciennement Libelis) - de juillet 2004 à décembre 2005

  • refonte des supports de formation et de l’environnement de travaux pratiques (Docbook, Ant)
  • participation à la mise en place d’un processus d’intégration continue (CruiseControl)
  • intégration et développement de librairies libres (Jakarta Commons, Prova)
  • test-driven development

Projet XCalia Core for Services

  • mise en route du projet XCalia Core for Services
  • recherches, analyses autour des technologies de formalisation et de sémantique sur les services
  • responsable de l’équipe de développement
  • création et spécification d’un modèle de formalisation et de description de la sémantique de services
  • modélisation des invocations de services: local, EJB, WebServices, JMS, JCA, ...
  • conception et dévéloppement du moteur de complétion d’opérations de persistence par analyse dynamique (via un moteur de règle Prova/Mandarax)
  • travail sur l’intégration au moteur de XCalia Core/LiDO

Environnement: JDO, Prova, Eclipse, Ant, JUnit

Réalisations de radios éphémères

pour Autres(M)Ondes et Tryphon, depuis 2004

Mise en place de l’infrastructure informatique et technique afin de réaliser des radios éphémères.

  • Interventions en France, en Belgique, collaborations avec les radios locales
  • Streamings multi-formats classiques et peer-to-peer, diffusions FM (pool icecast2, FreeCast)
  • Mise en place d’un studio mobile numérique (Rivendell, Jackd, debian)
  • Conception de solutions mobiles pour le stockage, la captation de concerts ou de conférences, les duplex (debian, jackd, alsa)
  • Conférences sur l’utilisation des logiciels libres dans le monde de la radio (RMLL 2008, JM2L 2007)

Rivendell

Participation au projet RivenDell, logiciel de gestion d’antenne

FreeCast

Développement, maintenance et déploiement de FreeCast, application de diffusion de flux selon un organisation peer-to-peer

  • Architecture modulaire permettant le fonctionnement aussi en daemon qu’en GUI
  • Protocole RTP-like assurant la diffusion en UDP d’un flux Ogg audio/video (mina)
  • Support stun et du NAT traversal (jstun)
  • Players embarqués dans le GUI (jvorbis, cortado)
  • Déploiement par packages, binaries, installeur et JavaWebStart (javawebstart, nsis)

Environnement: Java, Swing, Mina, JUnit, EasyMock, Ivy, Trac

Conception/Developpement du nouveau referenciel de transaction

Conception/Architecture/Developpement J2EE - Mission pour Armonys chez BNP Arbitrage - février 2004 à juillet 2004

Integration de technologies

  • container IOC (PicoContainer)
  • mock objects (MockObjects, EasyMock)
  • mise en place de CruiseControl
  • gestion de configuration (Commons Configuration)

Premieres taches

  • developpement JAAS
  • tests multi-plateforme de WebServices
  • reprise du GUI SWT
  • intégration et mise en production du moteur d’import

Environnement: Weblogic 8.1, Hibernate, Oracle, SWT, JMS, Maven,

Assistance à la gestion de projet J2EE

Conception/Architecture J2EE - Mission pour Leuville Objects chez Fimasys - de 11/2002 a fin 01/2004 (15 mois)

Qualite logicielle

  • mise en place d’un processus de Continuous Integration (CruiseControl)
  • refonte de la procédure de built (Ant), integration d’outils et developpements specifiques (CheckStyle, Jalopy, JUnit, JUnitEE)
  • mise en place d’outils de gestion de projet : Bugzilla, ZWiki, gestion de branches (CVS)
  • présentation de ces travaux lors d’un séminaire sur la qualité logicielle au Club des Utilisateurs de Java

Conception/Architecture J2EE

  • intégration d’APIs : Jakarta Commons
  • développement/refactoring J2EE des modules transversaux (EJBs)
  • migration d’applications de Weblogic v5.1 vers Weblogic 6.1/8.1, JBoss 3.2
  • conduite d’un projet pilote Struts

Conseil et mise en place d’infrastructures J2EE / Weblogic

  • mise en place d’environnements de validation, de stress
  • mise en place d’une procédure et d’outils de mise à jour automatique
  • installation et administration de clusters Weblogic (sous Solaris, Linux, Windows)
  • conseil aux équipes de développement, aux équipes de production clientes
  • étude, rapport et reproduction d’anomalies au support BEA

Migration de l'infrastructure informatique vers les logiciels libres

  • migration d’equipe de developpement ASP de Visual Source Safe vers CVS
  • migration vers des plateformes Linux Debian
    • de la majorite des serveurs web (Apache), de base de donnees (Oracle), firewall
    • d’une partie des stations de développement

Environnement : Weblogic, JBoss, Linux, Solaris, Oracle, Ant, CruiseControl

Conception d'une plateforme de supervision repartie

Conception/Architecture J2EE - projet personnel ManaOs - de 09/2002 a 07/2003

Spécification et design avancés

  • architecture distribuée reposant sur technologies Java (JMX, JNDI, JMS, EJBs, Avalon)
  • études de solutions logicielles à des problématiques plus générales : configuration, audit, project model, implementations JNDI

Creation d'entreprise

  • intégration de l’incubateur de l’ENST
  • recherche de financement
  • présentation au Concours Anvar 2003
  • création d’une SA sur fonds propres

Environnement: JMX, JNDI, JMS, J2EE

Conception/Developpement d'une IHM de saisie de bilans comptables

Conception/Developpement IHM J2EE - Mission pour Leuville Objects chez Experian - de 09/2002 a fin 10/2002 (2 mois)

  • Mise en place et poursuite du développement d’APIs OpenSource
    • JDataField : modèlisation d’IHM basée sur l’édition et l’échange de données
    • Bean Tools : exploitation des Beans pour la représentation de données métiers
  • Etude des problématiques d’ergonomie de saisie : navigation de focus, détection d’erreurs

Environnement: Java, Swing, Weblogic, Log4J, JUnit, Linux

Conception/Developpement d'une suite logicielle de supervision telecom

Conception/Architecture Java - Mission pour Leuville Objects chez Corvis Algety - de 07/2000 a fin 07/2003 (24 mois)

Implementation d'un EMS (agent, manager et IHM de supervision)

  • etude de l’architecture du système, mise en place du partage de composants logiciels entre les applications
  • conception du manager principal :
    • gestion des accès aux agents distants,
    • persistance du modèle (TopLink/Oracle),
    • gestion transactionnelle,
    • gestion de l’ordonnancement des tâches
  • conseil et refonte de l’architecture GUI

Outils et methodes

participation à la mise en place des outils et des méthodes de développement (gestion de configuration, gestion des bugs, méthodes de livraison et de packaging)

Integrations de technologies

  • Corba: réalisation d’une API d’interfaçage avec le service de notification Corba, outil de mapping systematique entre les objets Corba et les objets Java
  • Beans : représentation du modèle métier sous forme de Beans, systématisation du mécanisme de notification de changements et de synchronisation des informations entre applications
  • Gestion des problématiques de déploiement, d’exécution et de contrôle des applications

Interventions sur site

en phase de déploiement sur les sites clients, interaction avec le support client pour l’analyse et le suivi des tickets

Création d'un ERP d'officine de Pharmacie

Conception/Architecture/Developpement Java - réalisé en collaboration avec un expert en pharmacie - de 01/1997 a 07/2000 (43 mois)

  • nombreux travaux pour fiabiliser et améliorer les librairies de Sun (impression, base de registre réseau, architecture de l’IHM, BeanInfos, …)
  • serveur RMI réalisé selon une technique similaire aux EJBs, moteur de données spécifique (stockage sous forme de blobs)
  • intégration de nombreuses technologies Java : RMI, Swing, JNDI, Java Mail, Java Comm, JNI, Beans
  • travaux sur J2EE (naissant) et une interface icône (Java Activation, Drag&Drop …)

Application achevee et deployee chez des clients durant plus d’un an : http://www.jasp.free.fr/

Environnement: Java, RMI, Swing, JNI, Windows NT

Projets libres

CruiseControl

Participation au projet CruiseControl, mainteneur du package debian

Jakarta Commons

Participation aux projets Jakarta Commons, en particulier aux projets Lang, Collections, IO, Launcher

Kolaka

Maintenance des projets Kolaka : Kolaka IRC, JDataField, Kolaka JNDI, Ant Xref, CCBot

Collaborations

Relecteur/Correcteur du dossier «JBoss» de Linux Magazine 60

Auteur Jean-Baptiste Onofre, voir Linux Magazine

Relecteur/Correcteur du livre «Java - 2 Conception et déploiement J2EE»

Auteur Jerome Moliere, édite par Eyrolles, voir Java - 2 Conception et deploiement J2EE

Participation à la traduction du livre « Thinking in Java 2 »

Traduction de la section EJB, RMI, Corba, JINI du chapitre 15, voir http://penserenjava.free.fr/

Langues

Anglais : ecrit courant et quotidien

Etudes

  • 1996 - 1999 : Ecole d’Ingénieur en Informatique (option Génie Logiciel) ESIAL Nancy.
  • 1994 - 1996 : Classe Préparatoire Math-Techno
  • 1994 : Baccalauréat Série C Mention AB

Loisirs

Musique, Radio, Poker

What does Google think about that

 
users/alban/curriculumvitae.txt · Last modified: 2009/12/07 17:30 by 209.250.241.41
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Debian