CV - Hubert Figuière

github: @hfiguiere
Updated: April 5th 2018.

Software Developer — Montréal, Canada


Contribute to end-user software to make tools useful, accessible and safe for all. Strong preference for Open Source and Libre Software.


Worked on consumer software used by millions of people ; contributed to make the web a first class open platform, and make it more friendly to users. Also worked on an attempt to make the web a pervasive mobile phone platform.

Professional knowledge

Proficient user of Linux and macOS.

Programming languages: Expertise in C/C++ (20+ years), JavaScript (5+ years). Proficient in Rust (3+ years), Objective-C (5+ years), HTML + CSS (10+ years). Familiarity with Python, Perl, shell script, SQL, PHP and Go. Can tackle on learning new languages and frameworks as needed.

Tools and technologies: GNU Tools (automake, gcc, emacs), git, Subversion (SVN), Mercurial, CVS, Xcode, make, meson, emscripten, Debian and RPM packaging. POSIX, C++ standard library (aka STL), boost, Gtk+/GNOME, gtkmm, libxml2, Qt3, sqlite3, macOS (Cocoa) and iOS UIKit.

Understanding of the technologies that power the Internet: IPv4, e-mail, the Web, domain names, encryption, UNIX, etc. Familiarity with video codecs, image formats and metadata. Understanding of Open Source licensing.


since March 2017

Software Developer, eyeo GmbH (Cologne, Germany, remote from Montréal)

Adblock Plus (ad blocker) development team.

  • Rewrite of JavaScript code into C++ to be compiled with Emscripten to increase performance in the critical code.
  • Implementation of new blocking mechanisms in the web browser add-on (WebExtension).
  • libadblockplus: library (in C++) to offer an API to use Adblock Plus core technology.
  • Migrated the build system from home brew scripts to something based on mesonbuild.

Languages: JavaScript ES6, Shell, C++.

January 2017 - February 2017

Freelance Software Developer

Short term contracts: web video streaming, Bluetooth LE, device testing, Raspberry Pi

Languages: HTML5, JavaScript, Python, Shell.

April 2016 - December 2016

Software Developer Lead, Clemex Technologies (Montréal, Canada)

Development of intelligent microscopy applications in HTML5 using ReactJS with a RESTful backend in Python 3 and deep learning. Streamlining the development process with continuous integration and testing using babel, Webpack, Karma, Jasmine, ESLint, Docker, TravisCI and Jenkins.

Debugging and porting serial driver code in C++ to Linux, and integration to a Python module.

ScrumMaster for a team of 6 people spread on two projects.

Languages: HTML5, JavaScript ES6, JSX, Python, Shell, C++.

October 2011 - March 2016

Software Engineer, Mozilla (remote)

Connected devices

As a project outsider, brought a hand to help, specifically dealing with low-hanging features and fixes.

Languages: Rust and JavaScript.

Firefox OS

Music application: improved the integration testing, helped with the new architecture by porting the integration test to the new code base; improved the metadata parser. Camera and Gallery: addressed issues related to camera file storage and saving metadata in JPEG. Polished the UI on the Gaia theme editor.

Development of performance tools in JavaScript, using NodeJS as a runtime, a WebDriver implementation (Marionette) and contribution to various the NPM modules needed.

Finalized the implementation of crash reporting for the platform.

Languages: C++, HTML5 and JavaScript.


Enabled as many people as possible to use web sites, even when those people's abilities are limited in some way. Focused on Firefox for Mac, specifically improved accessibility for VoiceOver.

Languages: C++ and Objective-C++.

August 2009 - October 2011

Software Engineer, Apple Canada (Vancouver, Canada)

iWork for iOS, Development Team

Worked on MS Office file format compatibility, as well as ePub export in iWork for iPad and iPhone. Also worked on iBooks textbooks support.

Language: Objective-C++.

February 2007 - February 2009

Software Engineer, Novell Canada (remote)

SLED (SUSE Linux Enterprise Desktop), Development Team

Bug fixes and feature implementation on the GNOME desktop for SLED 10 and upcoming versions. Maintenance of Firefox in SLED: bug evaluation and fixes, security updates. Update of the Firefox lockdown functionality needed for enterprise users for Firefox and SLED; packaging of various software components., Development Team

Development of the import filter for PowerPoint 2007 file format (Office OpenXML) into Impress; bug fixes in Impress. Joint work with SUN software engineering, presented at OOoCon 2007. Migration of the community hosting for (Novell-sponsored project around

Language: C++

November 2005 - February 2007

Software Developer, Xandros Corporation (Ottawa, Canada)

C++ programming using Qt3 on Linux. Redesigned and developed a photo application. Ported and maintained Debian packages. Designed and developed the alert module of the server management software.

Language: C++.

July 2004 - October 2005

Software Developer, Net Integration Technologies, Inc. (Montréal, Canada)

System and network programming in C++ and Perl on Linux and management of the Alpha QA team for the Linux-based server product Nitix (now known as IBM Lotus Foundations): redesigned the print server using CUPS ; ported the OS to IBM pSeries (OpenPower 720) ; helped in various other areas as needed.

Groupware client for Novell Evolution: various UI work and fixes for the ExchangeIt client for Novell Evolution 1.4 (Gtk+ in C++).

Languages: C++, Perl.

July 2003 - January 2004

Software Engineer, Freebox (Paris, France)

Linux Kernel development, including USB driver, i2c and ports to new architectures (different PowerPC board or new XScale CPU (ARM big-endian) on the DSLAM and the DSL modem. Improved the hardware test suite (written in Perl) for the DSLAM manufacturing and assisted hardware manufacturing in debugging problems on the test bench.

Languages: C, Perl

October 2002 - April 2003

Software Engineer, Apple Computer Europe (Paris, France)

iCal, Development Team

Rewrote the vCalendar importer for iCal 1.0.1 on MacOS X.

Language: Objective-C

January 2001 - February 2002

UNIX System Engineer, Sabre Inc. (Paris, France)

UNIX consultant to bring SUN servers running Solaris to production status within projects for customers in the Transportation and Travel field (railways and tour operator). Also local IT contact for the merger of Sabre Inc. into EDS.

Open Source

I regularly contribute to open-source projects.

Since September 2000

Core developer, AbiWord

Core team

Ported AbiWord to MacOS X (2002-2004).

Rebased the containers on a type-safe C++ template implementation and provided the means to progressively move to the standard C++ library and C++11.

Cleaning up of the Gtk+ UI interface code to no longer use deprecated calls. Brought back the Maemo Version (Nokia tablets) up to shape for Maemo 4.2. (2009)

Fixed bugs in the RTF importer and exporter code.

System administration of the development server.

Various speed analysis and improvements and bug fixes.

Languages: C++ and Objective-C++.

Since 2014

no-flash (Firefox add-on)

no-flash is a Firefox add-on to rewrite Flash video embed from YouTube and some others to use HTML5 video instead. The feature has since been reimplemented in Firefox 47 and Chrome 54.

Languages: JavaScript

2011 - 2013

OpenPhoto / Trovebox

Implemented MySQL and local filesystem support for OpenPhoto, the open source package behind the Trovebox service.

Implemented better metadata support, improved geotagging, fixed bugs.

Language: PHP.

March 2009 - August 2009

Lead developer, Gnote

Manually translated the Tomboy source code from C# to C++, using Gtkmm and boost. Led to approximately 14,000 lines of C++ and a functional release within a month.

Language: C++

September 2001 - 2007

Co-Maintainer, gphoto2

Core developer of the gphoto project, the leading digital camera support software for Linux and other UNIX systems.

Language: C.



DUT d'Informatique (Computer Science degree), IUT d'Orsay, France.