Mathieu Pillard

job@virgule.net - github.com/diox

Web Developer

I'm a Web Developer with over 15 years of experience in various programming languages and environnements, currently focusing on Python / Django for the backend, and HTML5 / CSS3 / JavaScript for the frontend.

I have a lot of experience (and enjoy!) dealing with high-traffic websites and working with open-source code.

Employment History

Mozilla, May 2013 - today, Staff Web Engineer

Working on addons.mozilla.org, Mozilla's official website to distribute add-ons for Firefox. It receives several millions of unique visitors each month, and serves add-on updates to more than a hundred million of users every day.

Implementing new features, reviewing code, writing tests and maintaining various aspects of the product: consumer-facing website, developers website, reviewer/admin tools, search and APIs.

Lead several projects, including:

  • Improving search results relevancy, revamping Elasticsearch indexing and query-time rules completely
  • Building REST APIs from scratch for the new React-based frontend to consume
  • Refactoring the way add-ons are reviewed, leading to changes across the whole site

Working remotely in a distributed team of 5-7 engineers, exclusively on open-source code.

Python / Django / MySQL / Elasticsearch on the backend, and JavaScript / React / HTML5 / CSS on the frontend.

Extensive use of Github, Sentry, Grafana, CircleCI.

Contributing to various open-source libraries, including Django REST Framework

Previously worked on the App Marketplace for Firefox OS, using similar technologies and fulfilling similar duties I currently do on addons.mozilla.org.

Libération, January 2010 - April 2013, Web Developer

Libération is one of the main french daily newspapers, and its websites received more than 4 million unique visitors each month (80+ million page views) in 2013.

My work at Libération initially consisted of helping devise the architecture for the new backend for the website (in Python / Django, with PostgreSQL and Memcached for storage and cache), as well as developing it from scratch.

It then evolved into giving technical advice on new projects, maintaining the existing code and developing new features.

  • Selected existing open-source apps to re-use, and contributed to those apps to add missing functionality we needed, report bugs, add documentation (using github and bitbucket).
  • Created and co-maintained several new open-source apps covering our own needs.
  • Worked on the newspaper's Web Application in HTML5 / CSS 3 / JavaScript (with jQuery).
  • Planned the architecture and developed new backend code from scratch in Python / Django for Liberation.fr, Next, Monlibé (Libération's social platform) and the website's Back-Office (re-using, but completely adapted, the Django Admin).
  • Created a simple and fast Mobile version of the site, trying to re-use existing code as much as possible to avoid duplication of efforts.
  • Helped design and develop the API used by Android, iOS, WebOS, Bada and Windows Phone devices, as well as our own Web Apps.
  • Helped design developer workflow (based on Trac and mercurial at the time).
Telefun, November 2004 - December 2009, Lead Developer:

The main product, Skyrock.com, rose from 1 million to 30 million blogs while I was here. According to comScore, it was the world's 7th biggest social network in 2008, with 21 unique million visitors each month.

Started as a System Administrator, but quickly evolved to a Web Developer and then Lead Developer role as the Web Development team grew from 5 to 25 people.

  • In 2006-2007, in a small team of 5 people, rewrote most of the website from scratch over a period of 6 months to switch from an old PHP4 codebase to a modern PHP5 object-oriented one, with a custom-made framework. Helped design the architecture, relying on several MySQL servers and a Memcached cluster as we transitionned from generating static pages to a fully dynamic website.
  • Profiled and optimized code and data structures to better absorb the increasing traffic. Worked defining and implementing client-side performance optimization strategies (caching, concatening web assets, delay JavaScript execution, etc).
  • Designed code and initial interface for the blog design customisation, which relied on JavaScript and CSS to provide the users with an instant preview of their changes. Continued to expand its functionality and maintain it, in a small team of 2.
  • In charge of reviewing others' code for security issues during all of 2009.
  • Helped design developer workflow (based on Trac and subversion at the time).
Mozilla Europe, May 2004 - September 2004, Intern
  • Worked on integrating a multi-lingual backoffice for news publication on the website, which was used for the Press Releases before the website was merged with Mozilla.org.
  • Contributed to bugzilla.mozilla.org's Technology Evangelism section in order to help european websites work in Mozilla products (Developed patches, contacted websites).
Netscape, March 2002 - September 2002, Web Standards Specialist
  • With the Technology Evangelism team, developed patches for various big european websites to help them support web standards ((X)HTML, DOM, CSS, Javascript) instead of relying on old, proprietary APIs.

Computer Skills

Technologies:
  • Client-side Web technologies: JavaScript / DOM (with or without jQuery), HTML, CSS.
  • Server-side Web technologies: PHP5, Python 2.x/3.x, Django and Flask.
  • Source versioning: Mercurial, Git.
  • Databases: MySQL and PostgreSQL, as well as Memcached, Redis and Elasticsearch.
Operating Systems:
  • Familiar with Mac OS X, GNU/Linux, Windows, mainly using Ubuntu Linux as a work environnement.
  • Experience maintaining servers using Debian, Gentoo or Ubuntu Linux.

Education

EPITECH (Ecole Pour l'Informatique et les nouvelles TECHnologies), 2002 to 2004:
Bachelor Epitech de Technologie de l'Information (equivalent to a bachelor's degree in Computer Science)
UVSQ (Université de Versailles Saint-Quentin-En-Yvelines), 2000 to 2002:
DEUG Mathématiques, Informatique et Applications aux Sciences (equivalent to an Associate degree in Computer Science and Mathematics) - not completed.
2000:
Baccalauréat Scientifique, options Technologie Industrielle et Mathématiques (equivalent to a High school Diploma in sciences).

Personal

Languages:
  • French: fluent, mother tongue.
  • English: fluent (used daily for work).
  • German: some notions.
Talks

I gave a few talks and animated (sometimes with others) workshops about various subjects related to Web Developement, in french:

Contributions: