®om's blog { un blog libre }

CV

Formation

  • Ingénieur en Informatique et Mathématiques Appliquées (ENSEEIHT, 2008)
  • Diplôme Universitaire de Technologie Informatique (IUT du Havre, 2005)

Expériences

Je liste pour chaque technologie quelques expériences significatives. Pour les projets libres, plus de détails sont disponibles sur ma page de contributions.

C++

  • Refonte complète d’une application C++/Qt (2 ans) (chez Genymobile)
  • Écriture d’un wrapper C++ pour certaines parties de libusb
  • Mécanisme d’annulation d’exécution en environnement multithread
  • Utilisation de libqi pour la création de l’API Android du robot Pepper
  • Talk (interne) sur la gestion des ressources sans pointeurs en C++ (article)
  • Mini-projet de métaprogrammation par templates

C

  • Modifications du protocole MDP du projet Serval (équivalent UDP sur réseau Mesh)
  • Parallélisation de Rhizome pour un partage décentralisé de données
  • PoC de mixage audio (article)
  • Projet delay (un pipe à retardement) (article)
  • Utilisation de libusb pour forwarder à partir d’un pc les événements HID d’une souris vers un device Android
  • Solveur de serpent-cube (article)

Java/Android

Java est mon language maternel ;-)

  • Développement d’une application de reverse tethering pour Android (article)
  • Conception et réalisation de l’API Android du robot Pepper (pour Aldebaran)
    • bindings des promise/future C++ de libqi en Java (à travers JNI)
    • API Android de plus haut niveau qui expose les fonctionnalités du robot avec simplicité (chaînage automatique d’appels asynchrones…)
  • Développement d’un talkie-walkie (pour une conversation à plusieurs) avec mixage audio utilisant le réseau Mesh de Serval
  • Intégration de cartes IGN avec osmdroid (OpenStreetMap)
  • Ajout de fonctionnalités d’exécution concurrente dans AndroidAnnotations
  • Système vidéo sur set-top box
    • modifications de la rom CyanogenMod
    • application Android de lecture vidéo (utilisant LibVLC)
    • compilation et intégration d’udpxy pour permettre la lecture d’un flux UDP multicast par le lecteur natif d’Android (voir article)
  • Application Android de lecture vidéo provenant d’un flux UDP envoyé par une caméra de Raspberry Pi (qui filmait un babyfoot), supportant à la fois le lecteur natif et LibVLC, et à la fois sur SurfaceView et TextureView (pour des raisons de compatibilité avec différents devices)
  • Aide à l’intégration du timeshifting vidéo dans AOSP (pour ExpWay)
  • Intégration de ChromeCast dans l’application Android CanalPlay (Canal+)
  • Analyse et modifications d’architecture du SDK de FollowAnalytics pour corriger des bugs récurrents ou aléatoires
  • Applications e-mail et Twitter pour le tableau de bord de la Renault Zoé

Python

J’utilise Python de manière très occasionnelle,

Bash

Bash est mon shell par défaut. Il m’arrive d’écrire des scripts, en voici quelques uns :

Rust

Je suis en train de réécrire le serveur relai de gnirehtet en Rust.

Linux Kernel

Je participe au challenge eudyptula sur mon temps libre.

Pour l’instant j’ai validé les 8 premiers exercices sur 20.

Divers

J’utilise évidemment git au quotidien, mon shell est bash et mon éditeur est vim (sauf pour le Java).

J’aime beaucoup les problèmes de synchronisation (mutexes, atomics, barrières mémoire, réordonnancement des instructions par le compilateur ou le CPU…) et les conséquences des undefined behaviors.

J’aime bien les casse-tête de programmation (1 2 3…).

Les problèmes faisant intervenir des mathématiques sont les plus intéressants (par exemple, j’ai beaucoup aimé trouver une solution pour mixer plusieurs sources audio en une seule).

J’aime moins développer des interfaces utilisateur et je suis nul en design graphique.

Mes ordinateurs sont sous Debian. Je travaille sous Linux (m’imposer un poste de travail sous Windows ou Mac est rédhibitoire).

Mes lectures informatiques