Votre navigateur est obsolète !

Pour une expériencenet et une sécurité optimale, mettez à jour votre navigateur. Mettre à jour maintenant

×

Cyril Dieudonné

Software Architect / Developer

Cyril Dieudonné
38 years old
Driving License
France
Professional Status
Employed
Open to opportunities
About Me
With a PhD in nuclear physics, I have acquired solid skills in development and optimization of scientific codes, as well as in software architecture.

After completing my thesis in nuclear physics, I took part in the maintenance of reference codes in radiation protection, core physics and criticality at CS. This experience enabled me to discover all the phases of software development, and to appreciate their importance.

I then joined the CEA as a research engineer and RTE as a designer-developer in the Real Time division. Here, I was able to contribute my expertise to all phases of code production, while continuing to improve my know-how through various training courses and seminars. My main tasks involved the design and development of applications, to maximize performance and enhance the user experience.

Curious, motivated and self-taught by nature, passing on my knowledge is also part of my DNA. I've always been keen to work as part of a team and pass on my knowledge to the teams I work with.
Resume created on DoYouBuzz
  • Development of Excel add-in backends in C++17 / C++20, on Windows and MacOS, in two international teams
  • Agile project management (SCRUM) with Jira
  • Support for DevOps tools migrations (Git/GitHub, Jenkins, ...) and development (code trainings, reviews, ...)
Detailed Description
  • Technical part :
    • Build process optimization (MSVC profiling, CMake, Conan)
    • Performance analysis and enhancement (Intel VTune)
    • SVN to Git migration
    • Definition of C++ unit tests
    • License system migration
    • Creation of a C++ SDK
    • Technical documentation setup (Doxygen)
  • Team support :
    • Code review
    • Git trainings
    • C++ and code design courses
    • Debugging and writing unit tests
    • Help with CI improvement (Jenkins)
Company website
  • Software architect
    • Definition of specifications
    • Write POC for structuring projects
    • CI/CD setting up
    • Sharing of best practices within the team
  • Lead Dev on neutronic Monte Carlo code (Python, C/C++17, CMake)
    • API and UI definitions
    • Algorithmic optimizations
    • Improved source code readability and maintainability
  • Performance improvement and parallelism (MPI, OpenMP, SIMD) on CPUs supercomputers
    • Code profiling with Intel VTune
    • Loadbalancing improvement on multithreading (OpenMP) and multiprocessing (MPI)
    • Cache usage, vectorization and memory footprint optimization
  • Code porting and integration (Shell scripting, CMake)
  • Corrective and adaptative maintenance
  • Users support
Company website
  • Creation of a Web application to control DC links between France and its various neighbors (Python, Django)
  • Development of an optimization and decision support application for the development of a telecom network on the power grid (Python, Qt, SciPy)
  • Help with internal recruitment process (technical part, algorithms, C/C++, Python)
  • Knowledge sharing within the department (C/C++, Python, architecture)
  • Help define and qualify DevOps tools for continuous integration and deployment in C/C++ and Python
Detailed Description
  • Creation of Web servers (Python, Django) and fat clients (Python, Qt)
  • The DC link control application performs :
    • recovers the physical constraints of the links
    • transformation of programs from the electricity market into operating programs physically achievable by the electrical installations
    • modification of these programs by operators
    • transmission of operating programs to control and billing tools
  • Optimization of network calculations (NumPy, Scipy) according to different user criteria (installation technology, geographical area, etc.) to minimize installation costs
  • Creation of Tech'Lunch on Python development (1-hour sessions during lunch break)
  • Departmental seminar presentation on good design and architecture practices
  • Code review of junior developers (on code quality and optimization in C/C++ and Python)
  • Help creating starter-kit (Python/Django) on GitHub
  • Definition of rules for analyzing C/C++ and Python code on SonarQube
  • Definition of test commands (Python, Django) for Jenkins
Company website
  • Development of neutronics Monte Carlo codes (Fortran, C/C++) along two main axes :
    • Performance improvement
    • Code maintenance and design
  • Performances achieved on thousands of Intel Haswell and KNL CPUs in the Tera1000 super-computer :
    • Code profiling with Alinea MAP, Intel VTune and Intel Advisor
    • Improved (weak and strong) scalability in multi-threading (OpenMP) and multi-processing (MPI)
    • Opimization of cache usage, vectorization and code memory footprint
Detailed Description
  • Development of new features and refactoring of source code (Fortran, C/C++)
  • Code profiling and optimization (Alinea MAP, Intel VTune, Intel Advisor)
  • Code porting and integration on the Tera1000 super-computer (Scripting Shell, CMake)
  • Corrective and adaptive maintenance, and user support (Alinea DDT, TotalView)
  • Enhanced code architecture (CMake)
  • Update of the laboratory intranet site (PHP, HTML, CSS)
Company website
  • Software Maintenance Manager for several neutronics codes at CEA Saclay :
    • APOLLO3 (C++, Fortran) - Core calculation
    • MENDEL (C++) - Burnup calculation
    • GALILEE1 (C++) - Nuclear data processing
    • BDDR2 (HTML, PHP) - Reactor Database
Detailed Description
  • Software enhancement :
    • Improvement of the software building process (with CMake)
    • Implementation and development of automatic tests (non-regression and unit tests, with CTest and CDash)
  • User support :
    • Software delivery and installation
    • Presentation of different execution modes
    • Debugging user data sets
  • Features development in source code (C++)
Company website