Hi, it's Enzo CHERIF

I'm a

About Me

Portrait of Enzo CHERIF Now at Alstom

I like it when software makes something real move: a train, a car, a robot.

It started with classes prépa and a dual degree in Toulon: mechatronic systems and robotics on one side, artificial intelligence on the other. In Bangkok, I worked on energy management for solar electric vehicles on a TI F28335 board. At Renault, I turned weeks of manual Excel work into Python tools that run in 30 seconds. Today, at Alstom in Pittsburgh, I build software for safety-critical railway signaling, and my work is moving more and more toward data, AI and full-stack development.

Focus today
Data, AI and full-stack software
Availability
With Alstom until April 30, 2027. Open to conversations about what comes next.
Languages
French, English
How I work
Versatile, meticulous, passionate
  • 3countries lived and worked in
  • 19documented projects
  • 2degrees: mechatronics & robotics, and AI
  • 30 sinstead of 1–2 weeks, my Renault automation

Where I’ve studied and worked

ToulonEngineering school BangkokTFII internship ParisRenault internship PittsburghAlstom, today
Map of my path: engineering school in Toulon, an internship in Bangkok, an internship at Renault near Paris, and my current job at Alstom in Pittsburgh.

Current Position

Alstom Avelia Liberty train at night

VIEIn progress

Software Engineer

Alstom, Pittsburgh, Pennsylvania

Photo © Alstom / C. Gandolfi

Nov 2025 Month 11 of 18 Apr 2027

18-month VIE contract, from November 1, 2025 to April 30, 2027.

I build the tools that turn raw signaling logs into data engineers can use: a C# parser, compact files and Python dashboards. My work is moving more and more toward data, AI and full-stack software.

  1. Train logsBinary .fms files with the CBTC messages of CITYFLO 650 trains
  2. C# parser.NET 9 decodes the messages and rebuilds train, wayside and station data
  3. ParquetCompact columnar files instead of heavy text exports
  4. Reports & dashboardsReadable reports and Flask dashboards for engineers

Data

  • CFMS RIP Tool: an internal Windows tool that parses, decodes and analyses CITYFLO 650 CFMS railway log files.
  • Reports on alarms, software versions, energy, stops, , , round trips, totals, plus multi-file summaries.
  • Extracted data moved to Parquet with Polars, to cut file size and speed up the dashboards.

AI

  • Lightweight AI to help diagnose issues in train logs.
  • Automated testing and anomaly detection on signaling data.

Full-stack software

  • C# 13 on .NET 9 for the parsers, integrated with the existing C++ codebase.
  • Flask 3 dashboards in Python, with pandas and Polars behind them.
  • Configuration Tool (Python, PyQt): generates and validates railway configuration files against safety rules such as speed limits, routing and switch behaviour.
  • C# 13
  • .NET 9
  • C++
  • Python 3.10+
  • Flask 3
  • pandas
  • Polars
  • Parquet
  • PyQt

Certified during the VIE: DataCamp certification in Polars and Parquet.

Internal tools under NDA: no screenshots or source code can be shown.

Final-year internshipMar – Aug 2025 · 6 months

Automation Tools Developer

Renault Group · Ampere Software Technology · Team S53, Power Activation & Distribution

  • Used in production on FlexEVan
  • Invention disclosure (ASCS)
  • Rated “Excellent” on every criterion
Internship reportFrench, PDF

At Ampere, Renault’s software company, I joined the team that designs how power is distributed and switched in the . Engineers spent days copying data between the , calibrations and screens. I built eight Python tools that do it for them.

  • 8tools shipped and adopted by the team
  • ≈ 60person-days saved on ~30 DDT screens
  • −97 %time on AUTOSAR checks: 27.5 h → 48 min
  • 1–2 wks → 30 sfor Excel workflows, ~1 % error rate
Enzo with the Ampere Software Technology team at Renault Group headquarters
With the Ampere team at Renault HQ, Boulogne-Billancourt

How every tool works

  1. 01InputsExcel SDE · APSW · CDFX / XML · Supplier data
  2. 02Python enginepandas · openpyxl · lxml
  3. 03ChecksBusiness rules · ±10 % bands · ASIL levels
  4. 04DeliverablesExcel reports · DDT XML · PNG / CSV

Packaged as .exe files, versioned on GitLab and shared on SharePoint.

The toolbox

Select a tool to see what it replaced.

  • Generates DDT2000 diagnostic screens in XML straight from the electrical data, for the Distribution, Shutdown and OEM cases.

    Before5 to 7 days per screen, built by hand

    AfterAbout 1 second per screen, plus a quick review

    • Python
    • lxml
    • XML
  • Builds the full set of 499 Recorder screens automatically, with a uniform layout.

    Before≈ 16.6 hours of manual setup

    AfterUnder 10 seconds, whatever the quantity

    • Python
    • XML
  • One desktop app that brings the tools together so engineers who do not code can use them, with guides and clear error messages.

    BeforeScattered scripts, Python required

    AfterOne entry point, shipped as an .exe

    • CustomTkinter
    • PyInstaller
  • Cross-checks wire protection calibrations between the electrical distribution scheme and the APSW data, and logs every change.

    BeforeSeveral hours per file, copy and paste

    AfterUnder 1 minute, then a short review

    • pandas
    • openpyxl
  • Extracts and structures the supplier calibration parameters of the SmartMOS power switches for the other tools.

    Before≈ 7 minutes per triplet

    After10 triplets in about 1 minute

    • pandas
    • openpyxl
  • Validates the electrical distribution scheme with six rule sets: currents, ASIL levels, MBSE energy flow and more, in one consolidated report.

    Before≈ 16 hours, two working days

    After≈ 4 hours, review included

    • pandas
    • openpyxl
  • Cross-checks about 540 AUTOSAR calibrations per PIU and per function, and ranks the discrepancies to fix first.

    Before≈ 27.5 hours per campaign

    After≈ 48 minutes, review included

    • Python
    • lxml
    • CDFX
  • Web app to choose the right SmartMOS: current profile, ±10 % tolerance band and software curves on one interactive chart.

    Before≈ 55 minutes per profile, 3 to 4 separate charts

    After≈ 3.5 minutes, one overlay with PNG and CSV export

    • Flask
    • Plotly

“Through his rigor, his knowledge, his ability to communicate and his critical thinking, Enzo showed every day that he has everything it takes for a great engineering career. All the tools he developed are used in the team’s internal process.”

Baptiste Romieu, internship tutor, PFS Power Distribution · translated from his evaluation

The tools and their outputs are confidential, so no screenshots here. Figures come from my internship report.

Projects

Six projects, one key result each. Open “How I did it” for the details, or go straight to the report or the code.

Simulation

ABS & EBD braking system

With Ewen Guivarch

Stop a car at 100 km/h as fast as possible without locking the wheels.

4ABS controllers designed and compared

  • MATLAB
  • Simulink
  • Control
ReportPDF, 4.4 MB
Data & AI

SMS spam classifier

Solo project

Tell spam apart from normal text messages.

98.8%validation accuracy

  • Python
  • TensorFlow
  • Keras
  • NLP
CodeGitHub
Robotics

Autonomous TurtleBot with ROS

With Camille Berta

Let a TurtleBot move through a cluttered room on its own.

2environments: Gazebo and the real robot

  • ROS
  • LiDAR
  • Gazebo
  • C++
Data & AI

Book recommendation engine

Solo project

Suggest books similar to one a reader already liked.

1.1Mratings turned into recommendations

  • Python
  • pandas
  • SciPy
  • scikit-learn
CodeGitHub
Data & AI

Rock-paper-scissors bot

Solo project

Beat four scripted opponents, with over 60% wins against each.

99%best win rate, 4 of 4 opponents beaten

  • Python
  • Markov chains
CodeGitHub
Data & AI

Cat vs dog image classifier

Solo project

Classify photos as cats or dogs.

72%of test images correctly classified

  • Python
  • TensorFlow
  • CNN
NotebookGitHub

Internship in Thailand — TFII, Bangkok

Power electronics lab of the Thai-French Innovation Institute at KMUTNB

Research internshipApril – August 2024

Programming for modern microcontrollers

Thai-French Innovation Institute (TFII), King Mongkut’s University of Technology North Bangkok

  • 17weeks in Bangkok
  • 10lab guides written in French and English
  • 24/24criteria rated “Excellent” by my supervisor
  • 1presentation to a French Ministry delegation

I worked on the energy management of a solar electric vehicle: a control system that makes the best use of variable solar power while keeping the vehicle stable.

Everything ran on a Texas Instruments TMS320F28335 board: generating PWM signals, reading voltage and current sensors through the ADC, and driving buck and boost converters.

PWM outputduty cycle 50%
The dashed line is the average voltage the converter sees, which is what the duty cycle controls.

Research

  • Studied and optimised the voltage and current transducers (LEM sensors) used to measure high voltages and currents.
  • Designed test protocols and ran experiments on the lab’s power benches.

Teaching

  • Wrote ten lab guides, first in French then in English, and tested each one myself.
  • Taught a small group of Thai students, who ended up building a working boost converter.

Power electronics

  • PWM generation and duty-cycle regulation on the F28335.
  • Buck and boost DC-DC converters, from theory to optimisation, with MATLAB for development.

Mr. Enzo Cherif has shown exceptional dedication and skill throughout the internship, particularly in the areas of problem-solving and adaptability.

Dr. Burin Yodwong, internship supervisor, in his evaluation. Read his full reference

Certifications

  • 4certifications
  • 4issuers, from IBM to a Thai university
  • Datalatest focus: Polars & Parquet with DataCamp
Data engineeringLatest

Polars & Parquet

DataCampDuring my VIE at Alstom

What it covers
Fast DataFrame processing with Polars and the Parquet columnar format.
Where I used it
Used at Alstom to replace heavy text exports with Parquet files and speed up the Flask dashboards.
Machine learning

Machine Learning with Python

IBMJune 23, 2025

What it covers
Regression, classification, clustering and dimensionality reduction: KNN, decision trees, SVM, DBSCAN, PCA, t-SNE, UMAP.
Where I used it
Seven notebooks with scikit-learn, from customer segmentation to model evaluation.
Embedded systems

Programming for Modern Microcontrollers

TFII, KMUTNB, BangkokApril – August 2024

What it covers
Certificate of completion for my research internship on the TI F28335: PWM, sensors, buck and boost converters.
Where I used it
Ten bilingual lab guides and a working boost converter built with Thai students.

Skills

enzo@portfolio: ~/skills zsh
Try :

    Tools

    32 tools I have actually used, grouped by field, with where I used each one.

    Data & AI9

    • PolarsFast DataFrames for train log data
      • Alstom
      • Certified
    • ParquetCompact columnar storage for exports
      • Alstom
      • Certified
    • pandasData cleaning and analysis
      • Alstom
      • Renault
    • NumPyNumerical computing
      • Renault
      • School
    • scikit-learnClassical machine learning
      • IBM
      • Projects
    • TensorFlow / KerasNeural networks: LSTM, CNN
      • freeCodeCamp
    • JupyterNotebooks for experiments
      • Projects
    • OpenCVImage segmentation and counting
      • School
    • QGISSatellite and bathymetry mapping
      • School

    Software development10

    • .NET 9C# 13 parsers and desktop tools
      • Alstom
    • Visual StudioC# / C++ development
      • Alstom
    • VS CodePython, web and scripts
      • Alstom
    • FlaskDashboards for engineers
      • Alstom
    • PyQtConfiguration Tool GUI
      • Alstom
    • TkinterGUIs for automation tools
      • Renault
    • GitVersion control
      • Alstom
      • Projects
    • GitLabRepositories and merge requests
      • Alstom
    • DockerContainers, basic use
      • Alstom
    • LinuxShell, ROS, development
      • School

    Simulation & control4

    • MATLABAnalysis, control, F28335 development
      • TFII
      • School
    • SimulinkABS and EBD braking model
      • School
    • App DesignerVehicle stability simulator
      • School
    • LabVIEWMeasurement and automation
      • School

    Robotics, embedded & automotive5

    • ROSTurtleBot navigation
      • School
    • Gazebo / RVizRobot simulation and visualisation
      • School
    • TI F28335PWM, ADC, DC-DC converters
      • TFII
    • CANoeVehicle network testing
      • Renault
    • DDT2000XML diagnostic screens
      • Renault

    CAD & documents4

    • SolidWorks3D design and simulation
      • School
    • CATIAMechanical design
      • School
    • Excel & VBAWorkflow automation
      • Renault
    • LaTeXReports and lab guides
      • School
      • TFII

    References

    What my internship supervisor and two of my teachers wrote about me.

    • Dedication
    • Adaptability
    • Rigor
    • Creativity
    • Teamwork
    • Maturity

    My journey

    From the baccalaureate to Alstom, one line and seven stations. Scroll to ride the line, or select a station.

    • Studies
    • Internship
    • Now
    1. Studies · 2019Baccalauréat SEngineering sciences option

      Lycée Parc des Loges

      Scientific baccalaureate with the engineering sciences option.

      Graduated 2019
      • Maths
      • Physics
      • Engineering sciences
    2. Studies · 2019 – 2022Classes prĂ©pa PTSI / PTTop 3 of my class

      Lycée Parc de Vilgénis

      Three years of intensive maths, physics and engineering sciences to prepare the competitive exams for French engineering schools. I finished in the top 3 of my class.

      3 years
      • Maths
      • Physics
      • Engineering sciences
    3. Studies · 2022 – 2025Engineering degreeMechatronic systems & robotics

      SeaTech, INP Toulon

      French engineering degree in mechatronic systems and robotics: control, embedded systems, vehicle dynamics and mobile robotics.

      See details
      3 years
      • Control
      • Embedded systems
      • Robotics
      • ROS
    4. Internship · Apr – Aug 2024Research internshipProgramming for modern microcontrollers

      TFII, KMUTNB, Bangkok

      Energy management for a solar electric vehicle on a TI F28335 board, ten bilingual lab guides, and a presentation to a French Ministry delegation.

      See details
      4 months
      • TI F28335
      • MATLAB
      • Power electronics
      • Teaching
    5. Studies · 2024 – 2025Master’s degreeArtificial intelligence

      Université de Toulon

      Master’s in artificial intelligence, taken in parallel with the engineering degree: the second half of my dual degree.

      1 year
      • Machine learning
      • Neural networks
      • Python
    6. Internship · Mar – Aug 2025Final-year internshipAutomation tools developer

      Renault Group, Ampere

      Python tools that turned one to two weeks of manual Excel work into about 30 seconds, plus diagnostic screens and bench tests for software-defined vehicles.

      See details
      6 months
      • Python
      • Tkinter
      • CANoe
      • DDT2000
    7. Now · Nov 2025 – Apr 2027ATC software engineerVIE, data, AI & full-stack

      Alstom, Pittsburgh

      Parsers, Parquet pipelines and Flask dashboards that turn CBTC train logs into data for signaling engineers.

      See details
      18 months
      • C# / .NET 9
      • Python
      • Polars
      • Flask

    Contact

    Let’s talk.

    A role, a project, or a question about trains and data: I read every message and reply in French or English.

    Email me directly

    Or start a message

    Nothing is stored on this site.

    ↑