®om's blog { un blog libre }

CV

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
  • Gestion générique de l’interruption de tâches asynchrones
  • 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++
  • Mini-projet de métaprogrammation par templates

C

  • Modifications du protocole MDP et parallélisation de Rhizome (projet Serval)
  • Projet delay (voir article)
  • Utilisation de libusb pour forwarder à partir d’un pc les événements HID d’une souris vers un device Android

Java/Android

Java est mon language maternel ;-)

  • 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
  • Ajout de fonctionnalités d’exécution concurrente dans AndroidAnnotations
  • Système vidéo sur set-top box pour une chaîne d’hôtels
    • 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 le 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
  • 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é

Linux Kernel

Je suis en train de participer 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