Redwood City, 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, an off-line software renderer. The renderer is the software computing final images that people see on screen. Wrote an analytic web tool for render logs, processing hundred of millions of events on a single machine using a custom database engine.
Worked on torch, the next generation lighting software, used to lit Turbo, How to train your Dragons 2 and all Dreamworks movies going forward. Scrum lead of the team owning the 3D Viewer, the curve editor, the interface with the Renderer.
Lead of the torch show reactive team, working on bugs and optimizations requested by shows with fast turnaround. Optimized a regioning workflow operation which on a large crowd scene was taking 15 minutes to run and was consuming 10 Gigabytes of memory. Reduced it to a runtime of 0.2 seconds and a memory consumption of 300M (4500x speedup / 30x memory reduction).
Wrote an analytic web tool for monitoring the stability of torch. The tool was later expanded to support the animation, the rig and the rendering applications. The tool was given an internal tech award; tech awards are usually given to work leading to patents or published papers.
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
- Lead developer of Adobe Acrobat Capture Utility for UNIX, shipped with Adobe Acrobat 3D (7.0.7, 8.1 and 9.0) on HP-UX, Solaris, IRIX and AIX.
- 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 custom digital signature implemented with 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.
Rewrote the whole GUI code using the Trolltech Qt toolkit, switched the whole build-system to Qt qmake projects, and switched installers to native OS packages (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.
- Proficient in Python, C++, UNIX Shells Scripts.
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.
- 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.
Kung Fu Panda 2, Puss in Boot, How to Train your dragons 2, Rise of the Guardians, Mr Peabody and Sherman, Madagascar 3, The Croods, Penguins of Madagascar, Turbo, Home.
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.