Menlo Park, California
M.Sc in Computer Graphics
Grenoble, France: 2002--2003
(Formerly named DEA IVR) Digital Imaging, Computer Vision and Robotics.
M.Eng in Telecommunications
Grenoble, France: 1999--2002
- Telecoms department of ENSERG-ENSIMAG engineering school. Majoring in Computer Science and Hardware Design.
- Main projects: Compiler for a subset of Pascal, Operating System Kernel, 8 bit CPU design with real hardware, VLSI chip for computing the convex hull of a set of points.
Paris, France: 1996--1999
- French classes preparing students for
the competitive exams required to enter
engineering schools. Doing mostly Maths and Physics.
DreamWorks Animation SKG, Inc.
Redwood City, California - Software Engineer: May 2010--Present
Working on moonlight, the production renderer, the software computing final images that people see on the screen. Wrote an analytic web tool for render logs.
Worked on torch, the next generation lighting software, used to lit Turbo, How to train your Dragons 2 and most Dreamworks movie going forward. Scrum lead of the team owning the 3D Viewer, the curve editor, the interface with the Renderer
Scrum lead of the torch show reactive team, working on bugs and optimizations. Optimized a regioning workflow which on very large crowd scene was taking 15 minutes to proceed and consumed 10 Gigabytes of memory, to 0.2 seconds and 300M of ram (4500x speedup / 30x memory reduction).
Wrote an analytic web tool for monitoring stability of the app by counting occurences of crashes in the application. The tool was given an internal tech award. Tech awards are usually given to work leading to patents, published papers or work
Wrote a prediction/error compression system for baked animated sequences (Surfaces and Meshes), reducing the disk
footprint by 10x on average and 20 to 30x on best case. Integrated the system in Dreamworks pipeline.
Reworked the polygonal/subdivision surfaces file format and shrunk disk usage by 15% to 25%
with simple and efficient techniques while maintaining it lossless and backward compatible.
The prototype was written in Python (full re-implementation of the file format IO).
Lots of cleanup and improvements to the very rich Dreamworks geometric toolset
(command lines, operators, Python/C++ binding, 3D viewers).
Adobe Systems, Inc.
San Jose, California - Computer scientist: January 2005--May 2010
- Re-branding of Raider3D Capture and Viewer to Adobe Acrobat Capture Utility, shipped with Adobe Acrobat 3D (7.0.7, 8.1 and 9.0). Many new features were added.
- Enhanced support of 3D Capture for numerous CAD applications (many different versions) (Dassault Catia v4, 4DNav, Catia v5, DMU, UGS I-Deas, Teamcenter, NX) on all supported platforms.
PDF Export with embedded U3D and PRC. The U3D and PRC libraries were ported to Unix.
PDF Ubiquitization (custom digital signature) implemented using OpenSSL.
Internationalization and localization in French, German and Japanese. The Japanese support did not exist in wxMotif and we had to work with core wxWidgets library maintainers to add it.
Maintain the Adobe Acrobat Capture Utility Raider3D Viewer on Linux, HP-UX, Solaris, IRIX and AIX (build system, release engineering).
(Acrobat 9) Rewrite the whole GUI code using the Trolltech Qt toolkit, switched the whole build-system to Qt qmake projects, and switch installers to native OS package (like msi files on Windows).
Created a 3D-PDF iPhone application that was demoed at
the BU all hands and that went to the final round of qualification
for the MAX conference. The application was network aware and could
do 3D file streaming, caching of the geometric datas, remote
conference, and trigger 3D capture on a desktop and download the
Ported the Digital Edition PDF rendering code to iPhone and wrote a minimal PDF renderer (OpenGL based) that worked on iPhone and on the Mac.
Wrote a prototype of a network file system using MacFuse and Acrobat.com for the backend.
Wrote a Flash build-system in python with projects dependancy tracking, incremental build and parallel build support.
Wrote a Raider3D file viewer in Python (File format reader/writer, interactive manipulation of the 3D scene).
Wrote a web application for integrated browsing of Perforce and the Adobe proprietary bug tracker similar to Trac.
Setup lots of web applications ; bug tracker (roundup), forum (phpBB), wiki (mediawiki), mail archive (MHonArc), project management (Trac). Wrote a command line directory service, a bridge to Acrobat.com. Also did a lot of UNIX admin on a large set of machines.
Hitpost, Inc (aquired by Yahoo)
San Francisco, California - First engineer on board : April 2009--September 2009
Wrote the first version of a sport crowd site for Mobile devices using Google App Engine (focused on the backend). The site was demoed to several Venture Capitalist from the bay area. Official play by play are retrieved from stats.com using ftp push and inotify.
Helped build the technical team, found two top notch developers (back-end and front-end).
Okyz, Inc. (aquired by Adobe)
Paris, France - Software Engineer: July 2003--December 2004
Port of Raider3D Capture and Viewer on
HP-UX. Capture port required collaboration with HP R&D, a thorough understanding of the specific
HP OpenGL implementation and the development of a special code generator
from OpenGL C prototypes (using Lex/Yacc).
Worked on the AIX and on the Mac OS X Raider3D Viewer ports.
Evaluated the Hoops3D library providing 3D
compression algorithm to be integrated inside the r3d format.
Maintained the Mac OS X Raider3D Viewer, and HP-UX,
Solaris, IRIX, AIX Raider3D Viewer, Capture, Conference
Responsible for the support of the Renault account, and in
general for most of the Unix support. Set up Unix machine
during OKYZ participation in trade shows.
Develop a user-friendly front-end for the
license generation tool, and simplify the preparation of
Unix products distribution media (tarballs, update ftp
links, Cd's), using UNIX Shells Scripts.
Maverick Lab (Inria)
Grenoble, France - Research internship: October 2002--June 2003
Extraction of semantic information in a 3d scene
with only geometric information using naive Bayes classification. Try to solve the
following questions : which set of polygons form an object, what kind of scene is it ?.
Prototype programmed in C++ using Qt and OpenGL. Used octrees for spacial indexing.
Sls group (Tima lab)
Grenoble, France - Research internship: March 2002--June 2002
Study of the interoperability between the Coware
co-simulation tool and the SOC (System On Chip) design flow.
Grenoble, France - Software internship: July 2001--August 2001
Programming and designing visual objects for a
real time map of the Paris bus network.
- Proficient in Python, C++, UNIX Shells Scripts.
- Familiar with ActionScript, Perl, Ada95, Scheme, VHDL.
Library, Tools and Software
- wxWidgets, Qt, OpenGL, OpenSSL, zlib, libpng.
- Flask, Django, web.py, Google App Engine, memcached, SQLAlchemy, PostgreSQL, Apache, Nginx.
- Perforce, Subversion, git, CVS, accurev.
- Trac, Roundup, Mediawiki, jira.
- QMake, Autotools, GNU Make, SCons, SSH, NFS.
- Lex/Yacc, Python-PLY.
- Maya, Several UNIX CAD software: Catia v4-v5, 4DNav, NX, Teamcenter, I-Deas.
- vi :), Visual Studio, XCode, Flex Builder, QtCreator.
Native French speaker, fluent English
(lived and worked in the US since 2005).
Hobbies and interests
Python and open source enthusiast. A couple of hacks on github, google code (pytof: a program for exporting pictures from Apple iPhoto). Did a rapid presentation of test coverage in Python at the bay area baypiggies group.
Used to manage several association at the
engineer school (musical association, the students cafeteria).
Sports : Soccer, Climbing, Tennis, Biking, Roller Skating, Snowboard.
Others : Guitar, Juggling, Unicycling, History, Reading, Rubik's.