Hello, I'm

Emmanuel Roche

Senior Software Engineer · 3D Expert · System Architect

I design and build high-performance software across a wide spectrum — real-time military simulation, satellite data processing pipelines, GPU-accelerated 3D engines, data science tooling, and blockchain systems. Master's graduate from École Centrale Paris, with 20+ years of professional experience across defence, space, and research industries. I thrive where performance, scientific rigour and clean engineering intersect.

Grasse, France

01 Experience

Senior Software Engineer Nov. 2015 – Present
GMV / INSYEN SAS

Technical lead and architect on multiple EUMETSAT satellite data processing projects (MetOp GRAS & ASCAT PPFs, MTG Lightning Imager offline tools, FCI Atmospheric Test Tools) as well as ongoing development of SimCore for L3 Wescam.

C++ Python EUMETSAT Satellite GPU PyQt5
Software Engineer Jan. 2009 – Oct. 2015
INSYEN AG

Led and contributed to simulation, 3D visualization, and satellite ground-segment projects for clients including L3 Wescam, ESA, EMT, and EUMETSAT. Covered the full stack from real-time C++ engines to web interfaces and hardware protocol implementations.

C++ Lua VBS2/3 DirectX OpenSceneGraph Python
Junior Software Engineer May 2005 – Dec. 2008
SESS GbR

3D developer and modeler on the SatViz real-time satellite simulation platform for DLR. Designed and built the 3D engine on OpenSceneGraph, developed OSG plugins, and created the Windows deployment system.

C++ OpenSceneGraph OpenGL 3DS Max Java

02 Projects

NervLand

NervLand

NervTech

Main ongoing personal research project: a C++ WebGPU engine targeting Windows, Linux and the browser via Emscripten/WASM. Includes NervLuna (LLVM-based automatic C++ → Lua binding generator with template support), Vulkan experiments, JIT compilation, and sub-projects like CryptoView and HomeView.

C++ WebGPU WGSL Vulkan LLVM Lua Emscripten WASM
SimCore

SimCore

GMV INSYEN / L3 Wescam

Complete rewrite of the WESCAM MX-Series EO/IR turret simulation system for L3 Wescam. As sole developer, unified 5 separate codebases (the prior work of 7 developers over 4 years) into a single 3D-agnostic architecture in under a year. Over 1500 tests. SDI video streaming with KLV, AngularJS HUDs via CEF3, VBS3 migration, and full support for all Wescam turret models. Currently in production.

C++ VBS3 DirectX 9/11 HLSL AngularJS CEF3 NodeJS
GRAS PPF

GRAS PPF

GMV INSYEN / EUMETSAT

Senior engineer on the GNSS Receiver for Atmospheric Sounding Product Processing Facility for EUMETSAT MetOp satellites. Ported the Full Spectrum Inversion (FSI) algorithm from Python to C++ for wave-optics processing, built Boost.Python bindings for cross-validation, and developed comprehensive Boost.Test unit tests.

C++ Python Boost EUMETSAT MetOp Scrum
ASCAT PPF

ASCAT PPF

GMV INSYEN / EUMETSAT

Linux port and performance overhaul of the ASCAT Product Processing Facility. Replaced IBM ESSL with FFTW, eliminated a dedicated NTB preprocessing stage, and replaced OpenMP with a custom thread pool — scaling throughput by up to 6× on 40-core stations. Also built a LuaJIT validation tool 100× faster than the EUMETSAT reference tool.

C++ LuaJIT FFTW Threading Linux EUMETSAT
MTG-LI / FCI Offline Tools

MTG-LI / FCI Offline Tools

GMV INSYEN / EUMETSAT

Technical lead for a suite of EUMETSAT Python tools for the Meteosat Third Generation Lightning Imager (MTG-LI) and Flexible Combined Imager (FCI). Implemented GPU-accelerated spectral cloud-mask algorithms, satpy readers, xarray data pipelines, animated L1C data browsing, validation statistics and rich PyQt5 GUIs with vispy rendering.

Python PyQt5 GLSL OpenGL ES2 vispy satpy xarray EUMETSAT
ASCAT Deblurring Study

ASCAT Deblurring Study

GMV INSYEN / EUMETSAT

Led the Python implementation of ASCAT/SCA imagery deblurring algorithms in collaboration with GMV Poland and IsardSAT. Implemented gradient- descent optimisers (rmsprop, adamax, nadam), SVD decomposition on large matrices, Numba-JIT acceleration, and a CLI tool using sparse matrices for comparing three deblurring approaches against Perlin-noise sharp references.

Python Jupyter Numba NumPy SciPy xarray Sparse Matrices
uVIS

uVIS

INSYEN AG / EMT

UAV simulation system with 3D visualization on VBS3 for EMT's in-house UAV simulator. Took over a late project, redesigned all Lua classes with OOP patterns, wrote 180+ behaviour tests, re-implemented the DIS protocol from scratch in Lua, built a full IUP test UI, and delivered a validated stable system.

C++ Lua VBS3 DirectX 9 HLSL DIS Protocol IUP
MX-Sim

MX-Sim

INSYEN AG / L3 Wescam

Main 3D developer on the original WESCAM MX-Series turret training simulator. Built the VBSSim VBS2 plugin, created a low-level DirectX hook, implemented complex HLSL post-processing HUDs (depth-of-field, thermal, noise, exposure), developed the sgtLuna Lua binding generator, and built the socket/SDI/KLV communication layer. Adopted by numerous Wescam customers.

C++ VBS2 DirectX 9 HLSL Lua SDI/KLV CMake
Wescam eLearning

Wescam eLearning

INSYEN AG / L3 Wescam

Standalone Flash/Away3D application for training L3 Wescam MX-Series turret operators in interactive 3D scenarios. Extended the scenario library with maritime missions, refactored the ActionScript simulation core with OOP, and optimised assets for low-end devices.

ActionScript Away3D Flash 3DS Max 3D
U-COVRS

U-COVRS

INSYEN AG / ESA

ESA-contracted daemon for streaming aerospace video (e.g. from the ISS) to configurable destinations via a web interface, with VLC-backed streaming. Debugged, refactored and enhanced the web UI; delivered all milestones validated by ESA on a tight schedule.

C++ PHP Java gSOAP VLC Linux SLES Shell
NG3DV

NG3DV

INSYEN AG / DLR

Successor to SatViz: a full-featured satellite and industrial 3D visualization platform for DLR, built on OpenSceneGraph. Implemented Microsoft Virtual Earth imagery retrieval, GLSL shading, orbit propagation, ffmpeg video streaming, Java applet web integration and licence management. Replaced all SatViz installations and tracked 1000+ satellites concurrently.

C++ OpenSceneGraph OpenGL GLSL Java ffmpeg DLR
SatViz

SatViz

SESS GbR / DLR

Real-time satellite simulation and 3D visualization tool used in public demonstrations at DLR for years. Designed the OpenSceneGraph 3D engine, modelled Columbus/ISS/Shuttle/TerraSAR-X spacecraft, wrote OSG file-format plugins, and created the Windows NSIS installer. Later extended to oil plant management and F1 racing car simulation.

C++ OpenSceneGraph OpenGL 3DS Max NSIS DLR
NvDraw

NvDraw

NervTech

Browser-based SVG vector drawing and rasterisation tool, live at draw.nervtech.org. Built in TypeScript to fill a personal need for free SVG-to-raster conversion. Used for logo design and technical diagrams across NervTech projects.

TypeScript JavaScript SVG WebApp

03 Skills

Systems & Languages

  • C / C++ 98%
  • Python 95%
  • Lua 95%
  • Shell / Bash 95%
  • TypeScript / JS 85%
  • Solidity 75%
  • Java 60%

GPGPU & 3D

  • WGSL / WebGPU 98%
  • HLSL 95%
  • DirectX 9 / 11 95%
  • GLSL 90%
  • OpenGL 88%
  • DirectX 12 80%
  • Vulkan 80%
  • CUDA / OpenCL 78%

Data Science & ML

  • NumPy / pandas 92%
  • satpy / xarray 88%
  • SciPy / Matplotlib 85%
  • Numba / dask 80%
  • PyTorch / TensorFlow 72%
  • Jupyter 90%

Simulation Platforms

  • VBS3 / VBS4 90%
  • VR-Vantage 95%
  • OpenSceneGraph 90%
  • Unreal Engine 4/5 75%
  • Unity 3D 70%

Systems & DevOps

  • Linux (Admin) 95%
  • Docker 92%
  • nginx / reverse proxy 90%
  • GitLab (self-hosted) 90%
  • CMake / Build Systems 92%
  • VMware / ESXi 80%

Finance & Blockchain

  • MetaTrader / MQL4/5 88%
  • EVM / Solidity 78%
  • DeFi / Flash Loans 75%
  • Web3.py 72%

04 Get in touch

Open to interesting collaborations, consulting opportunities, or a good technical conversation. Drop me a line.

"It does not matter how slowly you go as long as you do not stop. "

— Confucius