Expérience professionnelle
OCD - Orange Cyber Defense
Senior Software & Cryptographic Engineer
datetime.datetime(2023, 06) - datetime.now()# (Current collaboration)
Occupation
• Software Scientist
• Cryptographic
C/C++ Engineer
Role in the Project: Researcher
• Uncentralized Message Cipher Authentication.
• Decentralized communication system.
Industry Sector
Context: Secure communication, data and authentication on malware analysis devices. Malware Cleaner is a decontamination station that cleans usb media and network media.
Project / Objectives / Responsibilities
mcauth - Message Cipher Authentication
Uncentralized Message Cipher Authentication for intermittent interconnected devices. Offline session-based authentification with encrypted tamperproof associated data.
The associated data is the authorization logic that simultaneously guarantees data confidentiality and authenticity.
Certification of data integrity is reinforced by the digital signature. This Project was build with the Kerckhoffs’s principle.
mchub Mesh Communication Hub
Distributed communication system for intermittent interconnected devices Create an interconected communication
software be
Technical Environment
• Linux
• Docker
• GitLab CI/CD
Expertise
• C/C++ 23
• CMake
• Python 3 (C API)
• OpenSSL C API (Open Secure Sockets
Layer)
• RABAC (Roles Attributes Based Access
Controle)
• Swig (Simplified Wrapper and Interface
Generator)
• Apache Arrow (Arrow Flight RPC IPC,
OLAP DB)
• gRPC (Google Remote Procedure Call)
• Protocol Buffers (a.k.a., Protobuf)
ONERA - The French Aerospace Lab
Scientific Research datetime.datetime(2021, 12) - datetime.datetime(2023, 4) # (1 year 4 months)
Occupation
• Software Scientist
• C/C++ Engineer
Role in the Project: Researcher
• Subject: Scientific research on high-performance computing for
numerical simulation
• Context: High-performance computing for numerical simulation
Industry Sector
Aerospace studies and research in the aeronautics, space, and defense sectors.
Solving physical differential equation systems through numerical simulation and using high-performance computing
systems.
Project / Objectives / Responsibilities
Developing software for solving differential equation systems (thermal diffusion, structured in finite differences). Studying the performance, implementations, and usage of different C/C++ frameworks in this numerical case.
Proposing and implementing a method for scheduling and data distribution on a heterogeneous architecture to solve
unstructured finite volume Navier-Stokes equation systems. Scalability study of the frameworks.
Evaluation and Comparison of the Most Popular C/C++, GPU Frameworks
• C/C++ (OpenMP, PGAS (GPI2), MPI (OpenMPI))
• GPGPU (OpenACC, CUDA, Thrust)
• HPX (High Performance ParalleX)
• Legion
On an architecture:
• GPU single node
• Single node multi GPUs (Nvlink) considering PCI affinities with HWLOC
• Single node considering NUMA CPU placement
• Multi-node MPI considering NUMA CPU placement
• Multi-node PGAS considering NUMA CPU placement
Creation of a Mini Solver and Task Scheduler with Memory Placement on a Distributed Heterogeneous Architecture
Proposing and implementing a mini solver and task scheduler with memory placement on a distributed heterogeneous
architecture using Remote Direct Memory Access and GPU IOMMU accesses to increase computing capacity and GPU
workload. Memory placement on different compute nodes through dynamic and holistic introspection of the arithmetic
intensity of each kernel or algorithmic function from the graph or code.
Technical Environment
• Linux
• Slurm
• hwloc
• HPX
• Legion
• Mellanox Infiniband
• NVIDIA Nvlink GPUs
Expertise
• C/C++ (OpenMP, PGAS, MPI)
• GPGPU (OpenACC, CUDA, Thrust)
• Shell scripts
• CMake
• Python 3
*******neudinger/equadiffGPU
*******neudinger/equadiffGASNET
*******neudinger/equadiffMPI
CMAP École Polytechnique
Scientific Research datetime.datetime(2021, 9) - datetime.datetime(2021, 12) # (4 months)
Occupation
• Software Scientist
• C/C++ Engineer
Role in the Project: Researcher
• Topic: Scientific research on high-performance computing for numerical simulation
• Context: High-performance computing for numerical simulation
Industry Sector
• Scientific Research
• Numerical Simulation
• High-Performance Computing
Project / Objectives / Responsibilities
Evaluation and Comparison of the Most Popular C++ Linear Algebra Libraries
• VEXCL
• VIENNACL
• STD VECTOR
• EIGEN
• ARMADILLO
• XTENSOR
• BOOST UBLAS
• BLAZE
• ARRAY
• CUDA
• Thrust
• OpenACC
• OpenMP
Evaluation and Comparison of Performance Among the Most Popular C++ Key-Value Containers
Key-Value containers:
• STD
• LLVM
• LLVM MAP VECTOR
• BOOST
Technical Environment
• Slurm
• Linux
• pandas
• plotly
• Numpy
• clang / gcc
• Likwid performance monitoring tool
Expertise
• C/C++
• MPI
• CUDA
• OpenMP
• cmake
• Shell scripts
• Python 3
*******neudinger/container-bench
*******neudinger/keys-values-bench
CEA
Independent datetime.datetime(2021, 4) - datetime.datetime(2021, 8) # (5 months)
Occupation
• Software Scientist
• Compiler Engineer
Role in the Project: Compiler Engineer
• Subject: Clang Compiler
• Context: High-performance computing and parallel computing
Industry Sector
• House of Simulation
• High-Performance Computing
Project / Objectives / Responsibilities
PDI
PDI is a library that aims to decouple high-performance simulation codes from input/output issues.
It offers a declarative application programming interface that allows codes to expose the buffers where they store data
and notify PDI about important simulation steps. It supports a plugin system to provide existing libraries such as HDF5,
SIONlib, or FTI to codes. FTI is made available to codes, potentially mixed in a single execution.
This approach allows describing I/O operations in a dedicated YAML file instead of interleaving them with simulation
code. Dedicating YAML to describe I/O operations improves their portability and maintainability.
PDIC
PDIC is a clang compiler plugin that allows C/C++ developers to add pragmas to C/C++ structures directly in production
code.
This enables the pdic compiler to extract declarations from the Abstract Syntax Tree (AST) of structures through static
code introspection and then transcribe the structure compositions into a chosen file format, YAML in this case. This
solution is distributed through a C/C++ library, a binary with clang dependencies, and is also available with a Python 3
wrapper.
Technical Environment
• Linux
• Visual Studio Code
• Docker
• GitHub Actions
• Clang LLVM API
Expertise
• C/C++
• CMake
• Python 3
• Pybind 11 C++
*******neudinger/PDIC
Aqemia
Software Engineer datetime.datetime(2020, 11) - datetime.datetime(2021, 4) # (6 months)
Occupation
• Software Engineer
• Cloud Software Engineer & Distributed
Computing Engineer
Role in the Project: Compiler Engineer
• Topic: Cloud Architecture
Industry Sector
Aqemia is a pharmaceutical company with drug discovery pipelines. The mission is to expand the drug discovery
process by combining quantum-inspired physics and machine learning.
Project / Objectives / Responsibilities
Control the computation cost on cloud instances. Continuous Integration and Continuous Deployment (CI/CD).
Redesign of the data processing pipeline and storage system architecture:
• From text file storage to parquet format.
• Unification of the Python cloud storage system.
• Create a Python wrapper for chemistry simulation tools (library and binary) to accelerate the calculation process.
Standardize the calculation processes and storage formats used. Control computation costs on cloud instances. Continuous Integration and Continuous Deployment (CI/CD).
pysmina
A fork of AutoDock Vina customized to better support the development of scoring functions and high-performance
energy minimization. smina is maintained by David Koes at the University of Pittsburgh and is not directly affiliated with
the AutoDock project. Pysmina is a fork of smina and customized with Python Boost to support Python operations. It is
easier to use in a Python environment.
pyDockRMSD
DockRMSD is capable of deterministically identifying the minimum RMSD corrected for symmetry and can do so without a significant loss of computational efficiency compared to other methods. The open-source DockRMSD program
can be easily integrated into various docking pipelines to facilitate accurate atomic mapping and RMSD calculations,
which can help improve docking performance, especially for ligand molecules with complicated structural symmetry.
Technical Environment
• Linux
• Github Action
• Conda / Mamba
• Python pip
• Visual Studio Code
• Docker
Expertise
• C/C++
• CMake
• Python 3
• Python Boost
• Cython
*******neudinger/pyDockRMSD
*******neudinger/pysmina
Foxcub
Engineering datetime.datetime(2019, 9) - datetime.datetime(2020, 9) # (1 year 1 month)
Occupation
• Software Engineer
• Python Developer
Industry Sector
Archiving and indexing of all forms of audiovisual content broadcast on French territory.
Project / Objectives / Responsibilities
Migration and indexing of various data sources to make them accessible from an ETL software.
Develop a cross-indexing database as a RESTful web service to be able to locate and reference the location of data
from an index or identifier anywhere in other databases or disk. Developed with Python (Python 3, FastAPI Swagger).
Postgres BLOB storage, service in a Docker container.
Design, development, and deployment of Python services and scripts.
Technical Environment
• Linux
• PostgreSQL
• Visual Studio Code
• SSH
• Docker
Expertise
• Python 3
• Numpy, Pandas
• Cython
• SQL
Light cyclic redundancy check in Python :
...