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
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.
Proficient user of Linux and macOS.
(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
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
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
since March 2017
Software Developer, eyeo GmbH (Cologne,
Germany, remote from Montréal)
Adblock Plus (ad blocker) development team.
Emscripten to increase performance in the critical code.
- Implementation of new blocking mechanisms in the web browser
- 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.
January 2017 - February 2017
Freelance Software Developer
Short term contracts: web video streaming, Bluetooth LE, device
testing, Raspberry Pi
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.
October 2011 - March 2016
Software Engineer, Mozilla (remote)
As a project outsider, brought a hand to help, specifically dealing
with low-hanging features and fixes.
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.
runtime, a WebDriver implementation (Marionette) and contribution to
various the NPM modules needed.
Finalized the implementation of crash reporting for the
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
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.
OpenOffice.org, 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 Go-oo.org
(Novell-sponsored project around OpenOffice.org).
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
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
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
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.
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.
I regularly contribute to open-source projects.
Since September 2000
Core developer, AbiWord
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++.
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.
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.
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.
September 2001 - 2007
Core developer of the gphoto project, the leading digital
camera support software for Linux and other UNIX systems.
DUT d'Informatique (Computer Science degree), IUT d'Orsay, France.