Skills

Programming:

Languages :

  • C
  • C++
  • I’m familiar with assembly language, for x86-64 platform. 8bit Atmel AVR Micro-controller, 8bit vintage Microprocessor like MOS6502

I’m mostly specialized in low level, close to the hardware (graphics card, sound card) and close to the OS (Networking, Windows Win32 API, POSIX Threads, XLib…)

In that context, I know my way around multiple software libraries and other tools for developing application (notably 3D real time, like simulation software or video games).  I’m quite familiar with the following technologies :

  • Ogre (A scene oriented graphical rendering engine. I’m also a small code contributor for it)
  • IrrLicht (A simpler, but more limited 3D graphics rendering library)
  • OpenGL (Graphics programing library, at a lower level. Cross platform equivalent for)
  • SDL2 (Multimedia cross-platform. Generally used to abstract away some OS code like windows, input, or threading. )
  • OpenAL (Audio programing and 3D sound spacialization)
  • libsndfile (reading/writing audio files)
  • Framework Qt en C++ (Application developement framework for  C++. Very borad opens source library. I also made a little specialty of mine to integrate other rendering/windowing library inside Qt’s Widgets. For example: Projet personnel : Qt5Ogre21)
  • Bullet (physics and collision detection in real time)
  • LibOVR (SDK fro the Oculus Rift)
  • OpenVR (Library to comunicate with SteamVR. to use HTC-Vive-like VR Headsets)
  • TinyXml2
  • posix thread
  • API Win32
  • Catch (unit testing in C++)

Notably, I’m using a number of theses library in one of my pet project, that is open source, and that I develop continuously, called  Annwvyn. Annwvyn is an high-level game engine for virtual reality headsets written as an application development framework for C++.

I’m a huge believer in the fact that good code is clear, segmented in modules, and documented. I took the habit of organizing and commenting code in a way that can be processed by tools like Doxygen.

I really enjoy trying out new things, and I’m not afraid to go through and through some documentation (and even, if available, some of the code) of a new library to quickly be able to understand how to use it

Outside this particular domain, I also had the occasion to use theses programing languages :

  • Python
  • Java (all our Object Oriented design classes during my studies where given in Java)
  • C# (Unity3D)

Web dev :

  • HTML5
  • CSS3
  • PHP 5

CMS :

  • WordPress
  • PluXml
  • DokuWiki (Wiki en ligne)

System administration :

I enjoy running some Linux machine that serve a number of services for me and my friends. So I know quite a bit about Unix-like system administration

  • I know a number of Linux distros, I personally used Debian-like os (Debian, Ubuntu) the Suse family (OpenSuse, tumbleweed) and Arch. I have a preference for Arch or Suse for developement
  • The LAMP stack
  • mail transfert agent PostFix
  • mailing list server MailMan
  • XMPP Chat server

Graphism :

I am no graphist. but the kind of programming I’m interested into require manipulating images, textures and 3D models. Hence, I know my way around some useful graphics software!

software :

  • Gimp (image manipulation)
  • Blender (3D modeling)
  • MakeHuman (3D parametric humanoïd generation software)
  • InkScape (verctorial drawing)