Experienced software architect
- Designed large code bases (up to 400 kloc) for applications running primarily on Unix/Linux.
- Adopted and promoted modern software development practices such as agile programming in order to deliver robust software.
- Leveraged advanced technologies such as boolean solvers (SAT, BDD) or deep neural networks to solve real life problems.
Skilled software engineer
- Proficient in C/C++, comfortable with Java and Python.
- Leveraged multithreading, GPUs, and distributed computing techniques to solve computationally intensive problems.
- Implemented many standard algorithms on graphs, trees...
Proven leadership capabilities
- Over 10 years of experience as a hands-on technical and team leader.
- Mentored several junior engineers and helped them grow in their position.
- Managed engineering teams geographically distributed over the USA, India, Eastern and Western Europe, as well as a remote team of contractors.
Dec 11 - Now
Google (Internet related services and products)
Software Engineer, Google Brain (Mountain View, CA)
- More than doubled the speed and scalability of the Google Brain machine learning engine. This resulted in annual savings exceeding $100 million.
- Envisioned, designed, and led the implementation of a high performance framework for numerical computing, on top of which Google Brain has been rewritten. The framework has also been adopted by several other teams for applications such as image processing, recommendation engines, or text understanding.
- Trained a neural network capable of detecting license plates in the StreetView imagery with more than 99.9% accuracy.
Sept 10 - Oct 11
Coverity (Source code analysis and verification)
Architect, New Product Initiative (San Francisco, CA)
- Spearheaded the design and implementation of a new product to complement the company's existing product line.
- Developed the first prototypes and used them as vehicles for demonstrations. Leveraged off-the-shelf solutions such as Mahout for quick experimentations.
- Wrote the functional specification for the final product and participated in its implementation.
- Managed the relationship with the project external partner in Japan.
Aug 07 - Sept 10
Tabula (Programmable logic design)
Technical Lead and Senior Software Manager, Infrastructure (Santa Clara, CA)
- Led and grew to
6 people the team developing the infrastructure software upon which the company
relies to program its semiconductor chips (code generators, device and design
databases, bit stream generator, timing analysis engines, clock router, and so
- Tackled cross functional projects such as reducing the power consumption of the device, optimizing
the memory footprint of the software, or leveraging distributed computing to
speed up the generation of device models.
- Personally designed and implemented an innovative approach to compute the fastest frequency at
which a chip can operate.
- Pioneered the use of contractors located in Eastern Europe as a flexible and cost efficient
way to increase the QA bandwidth when needed.
Mar 04 - Aug 07
Senior Manager, Formal Verification (San Jose, CA)
- Led the development of a new tool that automatically finds several classes of bugs in a semiconductor design.
- Started the project from the ground up. Assembled, trained and coached a small but highly
technical team. Worked with the marketing department and potential customers to
define the initial requirements and roadmap.
- Acted as architect, technical lead and individual contributor. Sketched the overall
architecture including the custom high performance database. Designed and
implemented the property checking engine that formed the heart of the tool.
Senior Manager, Timing Analysis (Santa Clara, CA)
- Managed an international team of more than 10 people responsible for the incremental
timing analysis engine used to predict the frequency at which semiconductor
- Led major new developments: rewrote the tool to leverage multiple CPUs for speed, made use of
statistical models to capture the electrical variability of the transistors, etc...
- Incrementally increased the tool accuracy and expanded its reporting capabilities. Held brainstorming
sessions to identify technical solutions, scheduled their implementation, drove
(and often personally tackled) the development, and ensured final customer
adoption by integrating the feedback received during early beta testing
- Continuously improved the overall quality of the tool: decreased the runtime by up to 4 orders of
magnitude on some very large designs, dramatically reduced the bug filing rate,
fixed several design flaws, enforced more stringent code reviews, etc...
Sept 00 - Mar 04
Technical Lead, R&D (Mountain View, CA)
- Started as an intern before being hired as a software developer in July 2001 and eventually
became the technical lead of the timing analysis team in 2003.
- Increased the scalability of the timing analysis tool by reducing the computational
complexity of several algorithms and by leveraging up to 32 threads to perform
the computations. Designed and developed new capabilities required to take into
account the impact of manufacturing process variations on the performance of
- Trained team members and helped them develop new solutions to existing problems and
dramatically reduce the memory footprint of the tool.
Ensim (Internet infrastructure solutions for hosting providers)
Intern, Internet Application Network division (Sunnyvale, CA)
- Designed, developed and debugged software for managing licensing and billing.
- Adapted HP's OpenMail mail server to Ensim's "hosting ready" platform.
Intern, software development division (London, UK)
- Developed a powerful HTML generator and a Web based software interface.
- Improved the speed and robustness of the database connectivity engine.
Peregrine Systems (Corporate asset and infrastructure management)
Intern, product development department (Bourg La Reine, France)
- Developed an SNMP agent used for remote resource management.
- Designed and implemented efficient template trees in C++.
2013 - Now
Eigen (Open source linear algebra library)
- Speeded up the matrix multiplication code by optimizing memory accesses, adding support for the AVX and FMA instruction sets, and leveraging techniques such as loop peeling, thus making Eigen one of the fastest BLAS libraries.
- Added support for tensors, multithreading, and GPU to the library.
INRIA (French institute for research in computer science)
- Implemented a filter able to encapsulate any MPEG file into a transport stream.
- Implemented a MPEG stream demultiplexer.
1997 - 1999
Videolan (Open source project developing networked multimedia solutions)
- As project lead, coordinated a team of 10 people and was responsible for a budget of $75,000.
- Designed and implemented a distributed video streaming server.
1997 - 1998
Stone Age (Non profit organization promoting musical artists)
- Helped organize several concerts in Paris featuring artists such as Jay Jay Johanson.
- Worked with tour managers, agents, venues, and artists to put shows together.
2000 - 2001
Master's degree in computer science and control theory
- ISIA was a master's program offered by the Ecole des Mines de Paris (one of the top 4 French graduate schools) in partnership with INRIA.
- Strong emphasis on practice with a total of 14-months of internship.
1997 - 2000
Master's degree in computer science
- Ecole Centrale Paris is one of the 4 best engineering schools in France.
- Stress on fundamental sciences (mathematics and physics).
- Focus on management and social sciences.
Device Placement Optimization with Reinforcement Learning, Azalia Mirhoseini, Hieu Pham, Quoc Le, Benoit Steiner, Rasmus Larsen, Yuefeng Zhou, Mohammad Norouzi, Samy Bengio, Jeff Dean, ICML (2017) (to appear)
- TensorFlow: A System for Large-Scale Machine Learning, Martín Abadi, Paul Barham, Jianmin Chen, Zhifeng Chen, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Geoffrey Irving, Michael Isard, Manjunath Kudlur, Josh Levenberg, Rajat Monga, Sherry Moore, Derek Murray, Benoit Steiner, Paul Tucker, Vijay Vasudevan, Pete Warden, Yuan Yu, and Xiaoqiang Zheng. Proceedings of the 12th Usenix Symposium on Operating Systems Design and Implementation (OSDI '16)
- TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems, Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S. Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Ian Goodfellow, Andrew Harp, Geoffrey Irving, Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser, Manjunath Kudlur, Josh Levenberg, Dan Mane, Rajat Monga, Sherry Moore, Derek Murray, Chris Olah, Mike Schuster, Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar, Paul Tucker, Vincent Vanhoucke, Vijay Vasudevan, Fernanda Viegas, Oriol Vinyals, Pete Warden, Martin Wattenberg, Martin Wicke, Yuan Yu, and Xiaoqiang Zheng
- TensorFlow: Google's Open Source Machine Learning System. Invited talk at NVidia's machine learning technical summit 2016