avatar

Benjamin Bouvier
Software Engineer

I am a software engineer interested in a wide range of domains related to computer science, always eager to learn about new technologies and apply them to unique real-world problems that matter for millions of people.

Work Experience

Mozilla Corporation
January 2014 – Present
Compiler Engineer
Added new features to JavaScript, optimized them and extended support in asm.js.
Highlights
  • Implemented the SIMD.js API in Firefox. This enables web developers to access SIMD processor features to speed up their applications. Added support in the JIT and asm.js engines.
  • Implemented an asm.js to WebAssembly translator, unifying compilation backends.
  • Enhanced parallel compilation of asm.js / WebAssembly programs, speeding up first time compilation up to 20%.
Mozilla Corporation
May 2013 – September 2013
Platform Engineer Intern in the JavaScript Engine team
Added a new type to the Just In Time (JIT) and Ahead of Time (asm.js) JavaScript compilers.
Highlights
  • Added Float32 handling to the Just In Time compiler, at all levels, from the interpreter (Math.fround), to the intermediate representations down to x86/x64 code generation.
  • Added support for Float32 in asm.js (type validation). Tested on real-world use cases, obtained speedups up to 50% using Float32 rather than plain Double.
  • Added support for the Linux tool perf to the AOT compiler.
  • C++, x86 / x64 / ARM, compilers, Python for testing and benchmarking.
Thales Research and Technology
May 2012 – August 2012
Research Engineer Intern
Added parallelization to an open-source meta-heuristic framework and used it on a real-world use case.
Highlights
  • Designed and implemented serialization and parallelization tools for the Evolving Objects frameworks, using C++ and message passing (OpenMPI).
  • Integrated parallelization into the open-source temporal constraint planner Descarwin, run on an heterogeneous cluster of 250 cores.
  • Benchmarking and statistical results analysis showed a speedup up to 90% faster than the sequential version (tools involved: bash / python).
AtoS Worldline
May 2011 – August 2011
Software Engineer Intern
Implemented the frontend of a secured webmail for a generic CRM software.
Highlights
  • Added basic roles management system.
  • Implemented contacts portfolio management.
  • Technologies involved: Java / J2EE, Google Web Toolkit, Spring Security, JUnit for testing, HTML/CSS/GWT for the client.

Education

  • 2010 2013

    National Institute of Applied Sciences

    Master's degree in Computer Engineering.

    Lyon, France

    GPA: 3.5/4

  • 2012 2012

    New Jersey Institute of Technology

    CS graduate student during a semester long exchange program.

    Newark, NJ, USA

    GPA: 4/4

  • 2007 2010

    University Claude Bernard

    Three year university degree in Mathematics and CS.

    Lyon, France

    GPA: 3.6/4

Volunteer

Kresus
July 2014 – pres
Core maintainer
An open-source and libre, self-hostable, personal finances management Web application, as an alternative to Mint.com, Bankin', Linxo, etc. Works great with French banks.
Highlights
  • Fetches transactions from the bank website, allows assigning user-defined categories to these, shows automatically generated statistics and charts.
  • Smart email notifications system.
  • Gets regular external contributions.
  • One hundred regular users (estimated number according to repository traffic).

Contact

Lyon France
Github
Twitter

Skills

Computer Science
Algorithms & Data Structures Compilers Databases Machine learning
Software development
C C++11 JavaScript / node.js Python Rust Relational and NoSQL databases
Front-end web development
Modern JavaScript React.js

Publications

Efficient float32 arithmetic in JavaScript
Mozilla's JavaScript blog

A blog post about the topic of my internship at Mozilla Corporation: adding Float32 arithmetic to JavaScript.

The state of SIMD.js performance in Firefox
Mozilla's JavaScript blog

Explaining some SIMD.js implementation details and caveats.

Numerical methods for differential equations

Supplementary work done during University, diving into the theoritical and practical ways to solve differential equations with numerous numerical methods. Written in French.

Languages

  • FrenchNative
  • EnglishFull professional proficiency