Skip to content
View amine-belkacem's full-sized avatar

Block or report amine-belkacem

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
amine-belkacem/README.md

Hi, I'm Mohamed Amine BELKACEM 👋

Master 2 student in Communicating Electronic Systems Design (CSEC) at the University of Lorraine (Metz, France). Before that I did a first Master's in Embedded Systems Electronics at USTHB, Algiers.

I like working where hardware meets software: digital design on FPGA in VHDL, firmware on microcontrollers, and the PC tools that talk to the board. Lately I've been spending more time on AI: hardware for AI inference (my FP8 project), how to evaluate a model honestly when the data is hard (my fraud detection project), and how language models actually see text (my French tokenizer, down to a C encoder on a Raspberry Pi).

🎯 Looking for a 4 to 6-month end-of-studies internship starting early 2027, in FPGA / digital design, embedded systems or embedded AI, anywhere in France.

🔧 Projects

Project What it is Stack
FP8 MAC unit Multiply-accumulate operator in FP8 (E4M3) for AI inference, synthesized on Cyclone IV (≈ 6 % of the FPGA) and verified with testbenches VHDL · Quartus · Questa · GHDL
French BPE tokenizer Byte-level BPE written from scratch and trained on French Wikipedia, with a pre-tokenization regex designed for French. The same text costs 27 % more tokens with GPT-4's tokenizer than with mine (11 % with GPT-4o's), and my French regex turned out to save only 2.45 %. A C99 encoder gives exactly the Python ids on every test document and runs at 14 MB/s on a Raspberry Pi 5; CI runs it under ASan and UBSan Python · C99 · regex · tiktoken · SentencePiece · pytest · GitHub Actions
Fraud detection under an alert budget Credit card fraud models (0.17 % fraud) evaluated the way a fraud team would use them: temporal split, alert budget, simulated cost in euros and bootstrap intervals. XGBoost catches 80 % of the frauds at a 0.1 % false positive rate; SMOTE brought no measurable gain, and a random split would have overstated PR-AUC by 0.07. 70 tests run in CI Python · scikit-learn · XGBoost · imbalanced-learn · pytest · GitHub Actions
Qt6 UART API (PC ↔ FPGA) C++ class that handles the serial link between a PC and a Basys3 board, tested on the real board, with QTest tests running in CI on virtual serial ports C++17 · Qt 6 · QSerialPort · CMake · GitHub Actions
Smart House solar supply Solar power chain for an Arduino house model (my part of a licence group project): PV sizing redone in Python, tested in CI and compared with multimeter measurements on the prototype Arduino · TP4056 · XL6009 · Python · pytest · GitHub Actions
Face recognition attendance on Raspberry Pi Time clock that recognises people with a webcam (Haar cascade + KNN) and logs arrivals in a daily CSV, with a Flask page to enrol users. I fixed the bugs from my report version and added 16 pytest tests running in CI Python · OpenCV · scikit-learn · Flask · Raspberry Pi · pytest · GitHub Actions
Connected weather station (Home Assistant) Web dashboard I wrote for a 10-student IoT lab: it reads the ESP32 sensors through the Home Assistant REST API and compares them with Open-Meteo. I also helped integrate the sensors. 13 tests on the unchanged code run in CI and caught one real bug JavaScript · HTML/CSS · REST API · Home Assistant · ESP32 · node:test · GitHub Actions
Connected health monitor (ESP32 + Raspberry Pi 5) My first Master's thesis: ECG, SpO2, temperature and air quality read by an ESP32 and sent over Wi-Fi to a Flask/SQLite server on a Pi 5, with a web dashboard and a Flutter app. Going back through the code, I found and fixed a bug that truncated the ECG to whole volts. Server tests, the firmware build and Flutter tests run in CI ESP32 · Arduino C++ · Python · Flask · SQLite · Flutter · pytest · GitHub Actions
FPGA accelerator for molecular dynamics (in progress) Hardware/software co-design: Python host + VHDL pipelines for force computation VHDL · Python
Low-power LoRaWAN metering node ESP32 firmware for voltage/current measurement, deep-sleep state machine, LoRa-E5 module (internship, CREDEG – Sonelgaz) C/C++ · ESP32 · LoRaWAN · MQTT

The projects without a link aren't published yet.

🛠️ Tech stack

  • AI / computer vision / NLP: OpenCV (Haar cascade face detection), scikit-learn (KNN, logistic regression), XGBoost, imbalanced-learn, model evaluation on imbalanced data (PR-AUC, bootstrap intervals, threshold choice), BPE tokenization (tiktoken, SentencePiece), neural network fundamentals, reduced-precision arithmetic (FP8) for inference, TensorFlow / PyTorch
  • Digital design / FPGA: VHDL, Verilog, RTL design, testbenches, Intel Quartus Prime, Questa, Cyclone IV, Artix-7 (Basys 3)
  • Embedded systems: C, C++, STM32, ESP32, Arduino, Raspberry Pi, FreeRTOS, UART, SPI, I2C, CAN, LoRaWAN
  • Software & tools: Python, pytest, Qt 6, CMake, Git, GitHub Actions, Linux, MATLAB/Simulink, Flask, MQTT
  • Web / IoT / mobile: JavaScript, HTML/CSS, Chart.js, REST APIs, Home Assistant, Flutter (Android)

🌍 Languages

English · French · Spanish · Arabic · Kabyle

📫 Contact

LinkedIn · mohamed-amine.belkacem8@etu.univ-lorraine.fr

Pinned Loading

  1. fp8-mac-vhdl fp8-mac-vhdl Public

    FP8 (E4M3) multiply-accumulate unit in VHDL for AI inference – synthesized on Cyclone IV, verified with Questa/GHDL testbenches

    VHDL 1

  2. home-assistant-weather-station home-assistant-weather-station Public

    Connected weather station: ESP32 sensors, Home Assistant on a Raspberry Pi 5, and my vanilla JS dashboard comparing them with Open-Meteo.

    JavaScript 1

  3. qt6-uart-fpga-api qt6-uart-fpga-api Public

    Qt6/C++ API for UART communication between a PC and a Basys3 FPGA, with raw and hex debug logs.

    C++ 1

  4. health-monitor-iot health-monitor-iot Public

    ESP32 vital signs monitor (ECG, SpO2, temperature, air quality) sending data over Wi-Fi to a Flask/SQLite server on a Raspberry Pi 5, with a live web dashboard and a Flutter app.

    Python 1

  5. fraud-detection-alert-budget fraud-detection-alert-budget Public

    Credit card fraud detection at 0.17 % prevalence, evaluated the way a fraud team would: alert budget, simulated cost, temporal split, bootstrap intervals.

    Python 1