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.
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.
- Undisclosed customer: project to bring high performance Big Data capabilities to an upcoming Web Application, using WebAssembly, Emscripten ↪, JPMorgan Perspective ↪, Apache Arrow ↪ and Web Workers.
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:
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 1⁄2):
- 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;
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 on the WinDev product (product page ↪), a Rapid Application Development Environment, well known in France. C++ mostly, with a bit of W-Language.
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)