Career Profile

Senior Software Engineer with 15+ years professional experience, having designed and developped software for several well known companies in the domain of CAD, Simulation and Computer Graphics.

Highly technical profile, with strong knowledge of C++ programming language, as well as seasoned Technical Lead and Remote Worker with 5 years experience in that position.

Currently doing research on bleeding-edge software technologies, and independent contractor for customers interested to leverage those technologies in their products. Available for hire for short or mid term consulting and software development projects, potentially open for a permanent position.

Experiences

Researcher, Software Engineering Consultant

Nov. 2018 - present
Continuation Labs, France

Continuation Labs is a privately funded Software Engineering Research Lab whose purpose is to experiment and publish innovative works using new technologies in the field of software engineering. WebAssembly ↪ is currently the focus of all efforts.

Customers:


Projects and publications:
  • D3wasm: An experimental port of id Tech 4 / Doom 3 to WebAssembly - Feb. 2019;
  • Arxwasm : A port of Arx Fatalis to WebAssembly - Dec. 2018;
  • Next project TBA fall 2019.

Open Source contributions:

Technical Lead
Senior Software Engineer

Jan. 2013 - Jun. 2018 (5 years 1/2)
Dassault Systèmes SE, France
AITAC BV, Netherlands / France / Croatia - Remote working

Designed and implemented the AITAC Smart Drawings product (product video ↪), a new Industrial Drawing Automation Software for Marine & Offshore industries, integrated to the 3DEXPERIENCE platform of Dassault Systèmes (formerly known as CATIA V6).

The project started from scratch at AITAC, and the company got acquired by Dassault Systemes mid-2017 due to the product gaining strategic value for Naval Industries. My missions and responsibilities have been:

At AITAC (4 years 12):

  • Defining and implementing the software architecture of the project (C++ / CAA V6), with initial requirement analysis and specification, development process and tools set-up (Git, Assembla);
  • Managing, mentoring, and coordinating the work of the software development team, consisting of 5 experimented Software Engineers around the globe (France, Croatia, India);
  • Implementing several business-specific parts of the software, such as the Sheet and Table Templates components;
  • The last year before the acquisition, I assumed by interim the position of Product Director, defining the product functionality, handling technical negotiations with customers and organizing pre-sales actions;

At Dassault Systèmes (1 year):
  • Leading the technical integration of the acquired product into the 3DEXPERIENCE platform, while still continuing the Technical Lead position on the product and the development team;
  • Helping the new management and technical team to gain knowledge about the acquired software;

Experimented Software Engineer

2009 - 2012 (4 years)
OPTIS SAS, France

Started as a Software Engineer on the SPEOS product (product video ↪), an optical simulation kernel integrated to CAD software platforms. My mission have been to enhance the simulation kernel integration to the various CAD platforms, through dedicated GUIs (C++ / CATIA V5 / Pro/Engineer) and interactive 3D interfaces (OpenGL, Cg).

I later moved on to the position of Lead Developer on the Optical Shape Design product (product video ↪), a new optical surface modeling software integrated to CATIA V5. The development was very math-centric (CATIA CGM kernel, geometric modeling, MATLAB, C++), with a small technical leading position on a team consisting of 1 PhD and 1 Software Engineer.

Software Engineer

2008 (1 year)
PC SOFT SAS, France

Software Engineer on the WinDev product (product page ↪), a Rapid Application Development Environment, well known in France. C++ mostly, with a bit of W-Language.

Software Developer

2004 - 2007 (4 years)
CT Coretechnologie SAS, France / Germany

Junior Software Developer position on the 3D_Evolution product (product video ↪), a geometric modeling software for CAD data-translation. My missions habe been:

  • Implementing CAD data translation modules (C++ / QT), either for visualization data (VRML, STL, JT), or BRep and Feature-based data (RobCAD, Pro/Engineer).
  • Reverse-engineering of the Pro/Engineer CAD Format (x86 disassembler)
  • API design of the geometric modeling kernel (C++) for 3rd party customers (German and Italian)
  • Enhancements to the Product Visualization renderer (C++, OpenGL)

Various internships positions

2003, 2002, 2001
Java and VRML development - Noriamedia, France
Database design - University of Montpellier, France
IT Admin - Ysonut, Spain

Side Projects

WebAssembly technology enthusiast - Since 2016: working on hobby projects with Portable Native Client and WebAssembly technologies. This eventually turned out to be a full-time R&D activity as of 2019, leading to the creation of Continuation Labs. See my current position.
Temporary Teacher at University - In 2015 and 2016: giving occasional lectures and trainings to Master’s Degree studends at a local University. Topics were about IoT technologies and DIY embedded programming platforms (Raspberry Pi/Arduino).
Early Bitcoin technology enthusiast - Early 2009: written one of the very first bitcoin-mining code for GPUs (using Nvidia toolkits at the time). The code was never released, as I didn’t knew this would ever be interesting to someone. Eventually, the code proven to be interesting some time later.

Skills

C++

CAD Softwares
CAA / 3DEXPERIENCE
Pro/Engineer

Rich Client Architectures
Framework and API Design

Technical Lead with Remote Teams

Emscripten / WebAssembly

VCS management (Git)
Build & Release Automation

Technical Communication

Real Time Rendering (GL/GLSL)

Java / C#

Javascript (Node.js and Browser)

Python