Version PDF imprimable        English version

Guillaume Chazarain

Ingénieur en informatique

guichaz@gmail.com
28 ans
permis B
Screenshot

Situation

Site Reliability Engineer à Google Zürich depuis février 2008.

Doctorant en informatique depuis 2005 sur le sujet Exceptions, Errors, and Termination for Asynchronous Objects, encadré par Denis Caromel dans le projet OASIS à l’INRIA Sophia-Antipolis.

Allocataire de recherche du Ministère de l'Éducation Nationale, de la Recherche et de la Technologie (MENRT).

Membre de l'équipe de développement du middleware ProActive.

Aide à l’administration système des machines du projet OASIS.

Développement de logiciels libres.

Formation

2004-2005

3ème année (dernière) d'école d’ingénieurs, ESSI (École Supérieure en Sciences Informatiques), à Sophia Antipolis.
2ème de la promotion.

Master Réseaux et Systèmes Distribués obtenu en parallèle.
Mention Trés Bien.

2003-2004

2ème année d'école d’ingénieurs, ESSI, section Ingénierie Informatique.
Major de la promotion.

2002-2003

1ère année d'école d’ingénieurs, ESSI.
2ème de la promotion.

2000-2002

DEUG Mathématiques Informatique, Faculté des Sciences de Nice.
Mention Très Bien, Major de la promotion.

1999-2000

Baccalauréat général, série S, Spécialité Mathématiques.
Mention Assez Bien.

Travaux pendant mes études d’ingénieur

  • L’implémentation d’un honeypot à forte interaction. C’est un système d’exploitation complet isolé du reste du réseau, dans notre cas une Fedora avec un noyau User Mode Linux, exposant des services volontairement insécurisés permettant une intrusion. L’objectif est d'étudier le comportement d’un attaquant potentiel. Cette étude est rendue possible en modifiant le noyau de façon à capturer le nom des commandes exécutées avec leurs paramètres et rediriger les logs vers l’extérieur du honeypot. Ce travail a conduit à la réalisation d’un poster pour le workshop HP-OVUA 2005 : A virtual high-interaction Honeypot.

  • Une heuristique pour le problème du Bin Packing sous la forme d’un algorithme génétique, implémenté de manière distribuée en C avec des sockets et une interface graphique de suivi en Java.

  • La conception et implémentation d’un mini site de gestion de covoiturages en J2EE.

  • La conception de la gestion de bornes d’informations sur les produits dans un centre commercial : protocoles de communication en ASN.1, schéma LDAP du catalogue de produits, schémas ASN.1 du suivi en SNMP.

  • La conception et implémentation d’un tableau blanc réparti en Java/RMI.

  • L'étude de la sécurisation d’un hébergeur fictif de sites web.

  • La conception et le prototypage d’un MES (Manufacturing Execution Systems) en J2EE.

Compétences informatiques

Langages

C, C++, Java, Python, Shells Unix, AWK, Perl, SQL, Postscript, Scheme, Prolog, …

Systèmes

Linux/Unix, Win32, …

Serveurs

Apache, Dovecot, Postfix, Cups, Bind, MySQL, PostgreSQL, vsftpd, …

Programmation

Eclipse, (X)Emacs, gcc, gdb, gprof, valgrind, …

Web

HTML, JavaScript, PHP, CSS, …

Documentation

DocBook, LaTeX, …

Bureautique

Microsoft Office, OpenOffice.org, …

Intérêts

Programmation et administration système.
Développement de logiciels libres, principalement du noyau Linux.
Réseaux, étude des systèmes distribués.

Réalisations informatiques

Mon goût pour la programmation système m’a conduit à créer et à maintenir des logiciels sous licence GNU GPL :

GLiv
../gliv.png

Un visualisateur d’images pour Linux/Unix écrit en C en utilisant les bibliothèques OpenGL et GTK+.
GLiv est original dans le sens où il utilise une éventuelle accélération OpenGL matérielle pour permettre un affichage et une manipulation très rapides des images.

Group Shell
../gsh.png

Un multiplexeur interactif de shells distants, écrit en Python. Il permet de contrôler plusieurs machines en même temps comme s’il s’agissait d’une seule.

Pysize
../pysize.png

Un outil pour visualiser graphiquement la répartition de l’espace occupé par les dossiers et fichiers d’un répertoire donné, écrit en Python. Il dispose de trois interfaces: ASCII-art, console interactive (curses) et GTK+.

Untie
../untie.png

Un lanceur de programme permettant de manipuler l’environnement d’exécution plus finement qu’avec un simple shell. Utile par exemple pour lancer des processus dans des espaces de noms différents.

Outils divers

Une collection d’outils utilisés pour: afficher le graphe de dépendances de modules Python, lister de manière fiable les variables d’environnement consultées par un processus, ajouter la complétion à gedit, quantifier l’utilisation I/O des processus, permettre à dovecot de réveiller fetchmail pour récupérer les nouveaux messages.

Contributions à des projets collectifs du libre

De nombreuses contributions dans des projets libres variés, avec intégration de code dans les projets suivants :

  • Linux: divers bugfixes : listage de /proc/PID/task sous certaines conditions, valeur de retour de printk(), corruption mémoire avec netem, désactivation du TSC avec cpufreq,

  • Zsh: élimination d’une race condition avec les signaux,

  • Glib: correction d’un bug dans la fonction de création d’un chemin,

  • Gengetopt: correction d’un bug dans la gestion des flags,

  • GTKtalog: affichage des tailles de fichiers avec l’unité appropriée,

  • Wireshark: dissecteur pour le protocole réseau du jeu Armagetron,

  • PLT Scheme: accélération de l’affichage des images.

Publications internationales

ECOOP-EHWS’2005

D. Caromel and G. Chazarain. Robust Exception Handling in an Asynchronous Environment. In Romanovsky, A., Dony, C., Knudsen, J. and Tripathi, A. (editors), Developing Systems that Handle Exceptions. Proceedings of ECOOP 2005 Workshop on Exception Handling in Object Oriented Systems. Glasgow, Écosse, 25 juillet 2005. Article, Présentation.

HP-OVUA’2005

G. Chazarain, B. Vallette d’Osia, N. Nobelis and K. Boudaoud. A virtual high-interaction honeypot. In Proc. of the 12th HP Openview University Association Poster Session - HPOVUA'2005, Porto, Portugal, 10-13 juillet 2005. Abstract. Poster.

Middleware’2007

D. Caromel, G. Chazarain and L. Henrio. Garbage Collecting the Grid: a Complete DGC for Activities. In Proceedings of the 8th ACM/IFIP/USENIX International Middleware Conference, Newport Beach, CA, November 2007. Article.

Expériences

Oct. 2005 - 2008

Allocataire de recherche à l’INRIA : thèse en cours : Exceptions, Errors, and Termination for Asynchronous Objects.
Je participe à l’administration système des machines de l'équipe OASIS, en contre partie mon allocation de recherche est complémentée par l’INRIA. L'équipe OASIS comporte une trentaine de personnes équipées de stations de travail pour la plupart sous Linux.

Sept. - déc. 2006

Chargé de TP en Master 1 de Programmation système avancée : noyau Linux, à la Faculté de Sciences de l’Université de Nice.

Oct. 2005, nov. 2006

Aide à la configuration des machines pour les plugtests 2005 et 2006.

6 mai 2006

Exposé technique : Outils de diagnostic sous Gnu/Linux, pour la Journée Méditerranéenne des Logiciels Libres (JM2L).

Mars - sept. 2005

Stage de Master en Réseaux et Systèmes Distribués à l’INRIA dans le projet OASIS : Exceptions, Errors, and Termination for Asynchronous Objects. Conception et implémentation d’un mécanisme combinant les appels de méthodes asynchrones à la gestion d’exceptions. Rapport.

Été 2004

Stage de 3 mois de 2ème année d'école d’ingénieurs ESSI à l’INRIA dans le projet OASIS : Programmation répartie et environnement Intranet Peer-2-Peer pour la Grille. Travail sur un logiciel de suivi graphique d’application distribuée, et écriture d’un daemon pour démarrer une infrastructure pair à pair de calcul distribué.

Langues étrangères

Anglais

lu, écrit, parlé. TOEIC : 905

Italien

lu, écrit, parlé

Loisirs

  • Exploration du monde de l'informatique,
  • Tennis de table,
  • Tennis,
  • Cinéma,
  • Musique.

S