Me

  • Benjamin Poulain
  • Currently living in the San Francisco Bay Area.
  • Email address: benjamin@webkit.org
  • LinkedIn profile

Professional experience

October 2011—present
Engineer at Apple

Computer Vision & Machine Learning.

OS X & iOS Web Technologies Engineering.

2009—September 2011
Software engineer at Nokia Qt Development Frameworks

Work on the WebKit 2 port of Qt and Browser related development, mostly targeting the MeeGo mobile platform.

Developer on Webkit and the Qt port of Webkit: QtWebkit. Main focus on WebCore performance and Webkit integration with embedded platforms.

Improved Qt rendering performance by rewriting rendering primitives with SIMD (Neon and SSE).

2008—2009
Support engineer for Qt at Nokia Qt Development Frameworks

Help customers and opensource projects to make successful applications with Qt frameworks. It involved fixing bugs of Qt for Linux and Mac, finding solution for technical/architecture problems and working around Qt limitations.

2007—2008
Teaching assistant for programming classes of C and C++ at Polytechnic faculty of the ULB

Help students to learn C++ and to develop their lab projects.

2007
Teaching assistant for programming classes of Java at Université Libre de Bruxelles

Give crash course of Java for students of the Solvay business school.

Open source

WebKit

Changeset:

Main experience in rendering and mobile features.

WebKit reviewer since March 2011.

Qt

Changeset available on gitorious.

Mainly work on rendering performance of the CPU rasterizer (raster engine).

Rekonq

Reduced the impact of the AdBlock engine on loading performance and memory usage. Added special case some common patterns that could be done faster than regular expression.

Ancient Personal projects

LinuxCertif.com

Website dedicated to Linux certifications (in French). It was developed in 2007—2008 when I was a student at ULB and was studying for the LPI certifications.

The site had some success mainly due to the section providing all unix manpages. It still has around 2000 visits per day, which is why it is kept online.

Technologies: Python, Django, PostgreSQL, memcached.

Lingua (closed for lack of time)

Website dedicated to language learning (in English and French). It was made in the summer of 2008.

The main interest in developing the site is the kind of problems occuring in language representation and (human) learning. Performance is also an interesting issue since the data representation does not fit well with SQL.

Technologies: Python, Django, PostgreSQL, ffmpeg, memcached.

Publications

Unusual Speed Boost: Binary Size Matters

WebKit Blog — August 8, 2013

This post describes some changes made to speed up WebKit on ARMv7 by targeting the binaries directly.

Overview of WebKit’s CSS JIT Compiler

WebKit Blog — March 26, 2014

This blog was the first public overview of the CSS Just-In-Time compiler of WebKit. The post introduces what can be gained from compiling CSS selectors and the latency-throughput challenge common with JIT compilation.

Introduction to WebKit Content Blockers

WebKit Blog — June 12, 2015

This blog post followed the announcement of Content Blockers at WWDC. The post introduces the high level concepts behind Content Blockers then describes the syntax of the extensions.

Complex CSS Selectors Inside Selectors

WebKit Blog — August 17, 2015

Taking advantage of the CSS JIT, WebKit was the first engine to support the advanced selectors from the “CSS Selectors Level 4” specification. The blog post introduces some of those new selectors.

Targeting Domains with Content Blockers

WebKit Blog — November 5, 2015

After the release of Content Blockers, targeting specific domains quickly became very popular. Content Blockers are based on compiling large Finite State Machines (Deterministic Finite Automaton). The optimizer has to spend more or less time on an automata depending on the number of states and transitions.

The post explains how simple patterns can be used to match domains while being very easy to optimize and faster to compile.

How Web Content Can Affect Power Usage

WebKit Blog — August 27, 2019 — Co-autored with Simon Fraser

Optimizing software for power is traditionally limited to macOS and iOS applications. Web pages can use the same techniques to reduce their power impact.

This blog post introduces the fundamental concepts of power usage by web pages on the client side. The post also details the best practices and provides practical advices to reduce energy consumption.

Education

University

2005—2008
Master degree in Engineering and Applied Science Université Libre de Bruxelles (ULB)

Specialization: computer science.

2002—2005
Bachelor of engineering Faculté Polytechnique de Mons (FPMs)

Certifications - Online learning

2019
2018
2018
2018
MITx 18.033x: Linear Algebra and NxN Systems of Differential Equations - Online course by Massachusetts Institute of Technology on edX.
2017
MITx 18.032x: Differential Equations: 2x2 Systems - Online course by Massachusetts Institute of Technology on edX.
2017
MITx 15.071x: The Analytics Edge - Online course by Massachusetts Institute of Technology on edX.
2017
UT.5.05x: LAFF: Linear Algebra - Foundations to Frontiers - Online course by The University of Texas at Austin.
2017
Neural Networks for Machine Learning - Online course by University of Toronto on Coursera.
2016
MITx 6.008.1x: Computational Probability and Inference - Online course by Massachusetts Institute of Technology on edX.
2016
Bayesian Statistics: From Concept to Data Analysis - Online course by University of California, Santa Cruz on Coursera.
2013
Machine Learning - Online course by Stanford University on Coursera.
2013
Introduction to Logic - Online course by Stanford University on Coursera.
2013
Calculus One - Online course by Ohio State University on Coursera.
2008
Certification Linux Professional Institute level 2 (LPIC-2)
2006
Certification Linux Professional Institute level 1 (LPIC-1)