- Benjamin Poulain
- Currently living in the San Francisco Bay Area.
- Email address: firstname.lastname@example.org
Manager at Apple
|October 2011—November 2021||
Engineer at Apple
Computer Vision & Machine Learning.
macOS & iOS Web Technologies Engineering.
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).
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.
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.
Teaching assistant for programming classes of Java at Université Libre de Bruxelles
Give crash course of Java for students of the Solvay business school.
Master degree in Engineering and Applied Science Université Libre de Bruxelles (ULB)
Specialization: computer science.
Bachelor of engineering Faculté Polytechnique de Mons (FPMs)
Certifications and Online Learning
Synapses, Neurons and Brains - Online course by the Hebrew University of Jerusalem on Coursera.
HarvardX MCB80.3x: Fundamentals of Neuroscience, Part 3: The Brain - Online course by Harvard on edX.
HarvardX MCB80.2x: Fundamentals of Neuroscience, Part 2: Neurons and Networks - Online course by Harvard on edX.
HarvardX MCB80.1x: Fundamentals of Neuroscience, Part 1: The Electrical Properties of the Neuron - Online course by Harvard on edX.
MITx 18.033x: Linear Algebra and NxN Systems of Differential Equations - Online course by Massachusetts Institute of Technology on edX.
MITx 18.032x: Differential Equations: 2x2 Systems - Online course by Massachusetts Institute of Technology on edX.
MITx 15.071x: The Analytics Edge - Online course by Massachusetts Institute of Technology on edX.
UT.5.05x: LAFF: Linear Algebra - Foundations to Frontiers - Online course by The University of Texas at Austin.
Neural Networks for Machine Learning - Online course by University of Toronto on Coursera.
MITx 6.008.1x: Computational Probability and Inference - Online course by Massachusetts Institute of Technology on edX.
Bayesian Statistics: From Concept to Data Analysis - Online course by University of California, Santa Cruz on Coursera.
Machine Learning - Online course by Stanford University on Coursera.
Introduction to Logic - Online course by Stanford University on Coursera.
Calculus One - Online course by Ohio State University on Coursera.
Certification Linux Professional Institute level 2 (LPIC-2)
Certification Linux Professional Institute level 1 (LPIC-1)
Create macOS or Linux virtual machines
WWDC Video — June 6, 2022 — Co-autored with Scott Mionis, Tian Luo, Joseph Pecoraro, and Simon Ho
The video introduces virtualization technologies on the Mac platform and presents how to run Linux or macOS inside a virtual machine with Virtuaization Framework.
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.
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.
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.
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.
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.
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.
- Research branch on gitorious
Main experience in rendering and mobile features.
WebKit reviewer since March 2011.
Changeset available on gitorious.
Mainly work on rendering performance of the CPU rasterizer (raster engine).
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
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.