Summary
Overview
Work History
Education
Skills
Certification
Languages
Timeline
Generic

Ridha MASTOURI

Oslo,03

Summary

Expert in design, development, and unit testing of real-time systems and applications. Proven ability to write clear technical specifications and documentation, define test scenarios, and create comprehensive test plans. Skilled in integration and validation of software across various levels. Strong analytical skills focused on efficient resolution of technical issues.

Overview

8
8
years of professional experience
1
1
Certification

Work History

Senior Software Engineer

ECO STOR AS
Oslo
02.2024 - Current
  • Designed software architecture based on STM32H7Z23G and ESP32-C3.
  • Implemented a full CI pipeline using GitHub Actions.
  • Prepared software for BIU CE Marking certification and coordinated with Nemko Labs.
  • Designed and developed a generic application service to communicate with various EV battery BMS systems, addressing safety requirements.
  • Developed low-level drivers for interfacing with Volvo, Renault ZOE, and Nissan Leaf EV batteries.
  • Developed a CAN simulator for Volvo and Renault battery communication testing.
  • Implemented remote software update mechanism for the BIU.
  • Integrated ESP Hosted Framework, Cyclone TCP/IP stack for network
  • Integrated LittleFS stack for interfacing with external NOR flash memory.
  • Designed a custom OS abstraction layer (OSAL).
  • Developed BSP drivers for UART, QSPI, SPI, FDCAN, and RTC peripherals.
  • Design custum Yocto linux Image for IMX8

Technical Lead | Senior Embedded Software Engineer

valeo
France, Paris
05.2023 - 02.2024

Stellabrain Project (Keyfob):

  • Lead software architecture design for key fob solutions based on BLE (NXP KW45) and UWB.
    Reviewed and validated pull requests (PRs), ensuring compliance with MISRA-C coding standards.
  • Implemented unit testing using VectorCAST to ensure robust software quality and reliability.
  • Developed and executed test cases for BLE and UWB functionalities under varied environmental conditions.
  • Addressed complex technical challenges throughout the project lifecycle to meet delivery milestones.

DCROSS project:

  • Developed diagnostic requirements for ECU certification, including key management.
  • Developed diagnostic requirements for ECU certification, including key management.
    Enhanced secure authentication tasks within the system architecture.
  • Performed unit testing via VectorCAST and static analysis for MISRA-C compliance.

Environment:

RH85, BLE (NXP KW45), UWB, AUTOSAR, MISRA-C, VectorCAST, RF test cases, FCC compliance, DIAG over UART.

Sr Embedded Software Engineer

SOFIA EUROPA
France/Tunis
07.2019 - 05.2023

Client : BIOSERENITY

  • Integration of the NOR MX25L512 memory with the STM32U585 CM33 SoC through the Quad SPI bus in a real-time environment, utilizing the FileX and LevelX stacks.
  • Development of the Driver Access Layer (DAL) and Platform Abstraction Layer (PAL) to effectively control the NOR memory.
  • Porting and implementation of the FileX stack, along with the efficient Wear-Leveling LevelX layer.
  • Leveraging the Memory Mapped mode to optimize access times and enhance the overall performance of the system.
  • Migration of the software to support communication with Amazon AWS-IOT using the Amazon FreeRTOS SDK.
  • Creation of objects, policies, and certificates using AWS CLI, validated through the Boto3 and OpenSSL frameworks.
  • Integration of services such as Fleet Provisioning, Shadow, OTA Job, MQTT-Agent, and Basic Ingest.
  • Development of a microservice to handle the generation of CSR certificates based on the private key stored in the WiFi module CC3135's OTP.
  • Implementation of MQTTs communication with AWS-IOT on the embedded side, utilizing mTLS1.2 (Mutual authentication).
  • Implementation of HTTPS communication with Amazon S3 using a canonical request (Header Authorization V4), leveraging the STM32L4's Crypto IPs for SHA256 hashing and HMAC-SHA256.
  • Development of Lambda functions in the Cloud to manage and index data from the publisher recorder to S3.
  • Porting the firmware application and the IAP to ensure seamless compatibility with the advanced STM32U585 Cortex M33 MCU.
  • Integration of the highly optimized HAL+LL driver specifically tailored for the STM32U5 family, ensuring efficient and reliable performance.
  • Adaptation of the DRV, BSP, and DAL layers to seamlessly support the new SoC, enabling seamless functionality and interaction.
  • Precise adjustment of flash memory addressing within the IAP firmware, aligning it with the precise specifications of the new MCU and ensuring optimal data storage and retrieval.
  • Integration of the robust FreeRTOS patch 'Port ARM_CM33' to effectively support the trustzone feature, reinforcing security measures and providing enhanced protection for critical system operations.
  • Interface the ST7789v LCD display with the STM32U585 CM33 SoC using the FMC bus, DMA2D, and integration of the touchGFX framework.
  • Analyze the technical specifications of the ST7789v LCD display and the STM32U585 SoC to understand the system's functionalities and constraints.
  • Design and develop device drivers for controlling the ST7789v LCD display using the FMC bus and DMA2D.
  • Optimize performance by utilizing advanced features of the DMA2D to accelerate graphic rendering and minimize memory consumption.
  • Integrate the touchGFX framework to develop a modern and user-friendly graphical user interface.
  • Integration of secure boot in the Cardionaute product, targeting STM32L4A6.
  • Integration of the SBSFU V2.1.0 (Secure Boot and Secure Firmware Update) module, ensuring robust security measures for booting and firmware updates.
  • Activation of all hardware security features including Firewall, PcROP (PC Readout Protection), WRP (Write Protection), and RDP (Read Protection), providing multiple layers of protection against unauthorized access and tampering.
  • Thorough debugging and preparation of the product to ensure the secure boot implementation is functioning correctly and without any vulnerabilities.
  • Getting the product ready for a security audit, which involves comprehensive testing and analysis of the security measures implemented, ensuring compliance with industry standards and identifying potential weaknesses or areas for improvement.
  • Official contribution in the BCP V7-2020 stack (internal communication stack).
  • Optimized and migrated the CRC-32 calculation process to leverage the hardware CRC IPs of the STM32, resulting in improved efficiency and performance.
  • Designed a specification for LZ4 compression of payload in the Upload/Download section, enhancing data transfer and storage efficiency.
  • Integrated and adapted the LZ4 stack within the target system, maximizing its effectiveness and performance.
  • Analyzing and optimizing power consumption of the STM32L4S5 SoC and the WiFi CC3135.
  • Integrating the new feature of FreeRTOS: Tickless mode, which reduces power consumption by optimizing the timing of the system's idle periods.
  • Implementing specific configurations for PWR (Power), Chrome ART (Adaptive RealTime), and Flash-Latency to minimize power consumption and enhance energy efficiency.
  • Enhancing the application specification to effectively manage the WiFi module CC3135 with a low-power (LP) policy, ensuring efficient utilization of power-saving features.
  • Developing a mechanism to calculate CPU usage based on the DWT-ARM IPs and the PRE/POST Sleep Tickless CB, providing accurate insights into CPU utilization during sleep and idle periods.
  • Integration and validation of the TI Simplelink CC3135 Wi-Fi module.
  • Development of the DAL (Driver Access Layer) and PAL (Platform Abstraction Layer) layers to interface with the CC3135 adapter, ensuring seamless communication and control.
  • Creation of a PAL abstraction layer for the MQTT service based on the TI library, simplifying the integration and usage of MQTT functionality.
  • Implementation of the SELF-TEST thread to validate essential functionalities such as scanning for available access points, connecting and disconnecting from an AP, power off/on operations, DHCP, DNS, and the BSD socket layer, ensuring reliable and error-free operation.
  • FOTA (Firmware Over-The-Air) micro-services: Designing and developing a secure solution to update all firmware components of medical product (BLE NRF52, WiFi CC3135, STM32, BQ, etc.) using a single image generated during the cross-compilation phase.
  • Designing the specification for the encrypted image, including the header and binary sections.
  • Developing Post-Build scripts (Python, Batch) that run on the host side and integrating them into the IAR EW cross-compilation process.
  • Creating a Board Support Package (BSP) layer for the required IPs such as AES ECB/CBC, HASH SHA1/MD5, CRC, and RNG for the STM32L4S5/A6 target.
  • Designing and developing micro-services to manage the FOTA flow proposed for firmware updates.
  • Writing the technical specification document for the service, including the test and validation flow.
  • Conception and development of the timestamp synchronization micro-service for the product, with an accuracy of approximately 8ms.
  • Developing an SNTP-EX library that adheres to RFC443, tailored to meet the client's requirements, utilizing the BSD socket of the TI stack.
  • Implementing the micro-service to manage the SNTP process, including handling requests, offset/roundtrip filtering, and smooth calibration of RTC/TIMER for precise timestamp synchronization.
  • Integrated and ported the Oryx Cyclone TCP/IP stack to STM32L4S5, validated DHCP/DNS/MQTT over ATWINC1500, and created a reliability report analyzing performance, TLS impact, and power consumption
  • USB Class RNDIS (Ethernet over USB).
  • Integrating the RNDIS class into the STM32L4S5 target, enabling Ethernet over USB functionality.
  • Developing the DAL (Driver Access Layer) for controlling and interfacing with the USB-RNDIS device.
  • Enabling MQTT communication using the Cyclone TCP/IP stack and the USB-RNDIS adapter.
  • Designed and developed a serial-based CLI with state machine, user authentication, and hardware firewall protection for STM32L4A6.

Environment:

STM32L4A6, STM32L4S5, STM32H747, STM32U585, ESP32, eMMC, BLE NRF52, Wi-Fi ATWINC1500, Wi-Fi CC3135.

FreeRTOS, Secure Boot, FatFS, FileX, LevelX, USB Stack, ST-CryptoLib, AT Master, LZ4 Compression, touchGFX.

Amazone SDK. TCP/IP Stack, mTLS 1.2, Socket BSD, MQTTs, HTTPs, SNTP.

DMA, DMA2D, GPIO, FLASH, SRAM, RDP/WRP/PcROP, ADC, AES, HASH, CRC, RTC, TIMERS, MPU, PWR, FIREWALL, DWT, FMC, USART, SPI, I2C, USB 2.0 FS RNDIS/MSC, and VCP class, Ethernet.

IARV8, MDK ARM Keil, VS Code, STM32CubeProgrammer, STM32CubeMX, TouchGFX Designer, ST-Link V2/3, J-Link, J-Tag, Termite, Wireshark, NRF Connect, MQTT-FX.

SVN, Jenkins.

C/C++, Python, Batch/PowerShell, Kconfig, Markdown, Doxygen, MISRA-C 2012.

Graduation Project

SOFIA TECHNOLOGIES
TUNIS
02.2019 - 07.2019

Project : Design and development of a custom Bootloader on the STM32L4A6 microcontroller, and implementation of an FTP client.

  • Design and development of a Bootloader (STM32L4A6 target).
  • Integration of a TCP / IP stack (open source) and an FTP client on the STM32L4A6 platform via the ATWINC1500 Wi-Fi module in By-pass mode.
  • Development of a graphical application (GUI) for the management of automated tests of the embedded device.

Environment:

STM32, FTP-Client, WIFI, EMMC, Flash NAND-NOR, WRP, SPI, USART, CRC-32, EEPROM Emulator, FreeRTOS, Cyclone TCP/IP stack, Tkinter.

IAR, ATOM, Git, PDB, Wireshark.

Linux. C, Python.

Embedded Software Developper

WATTNOW
TUNIS
09.2018 - 01.2019
  • Design and development of a OSAL layer (Operating Sys. Abstraction Layer).
  • Development of the common abstraction layer of the Kernel and stacks on an IOT product based on the STM32F7 microcontroller.
  • Design and development of a Desktop GUI application, to control and automate the tests of the embedded product.
  • Design and development of the graphical interface based on the QT Framework.
  • Communication with the product via TCP and USB VCP.
  • Generation of a detailed log file for any test session.

Environment:

FreeRTOS, FatFs, MQTT, HTTP, STM32, Ethernet, ThreadX, USBX, FileX, QT, PyInstaller, TCP, USBVCP, Linux, Multi-Threading, NetX Duo.

Git, Keil, Vs-code.

C/C++, Python, Bash, Doxygen, MISRA-C 2012.

Development Internship in Embedded Systems

WATTNOW
TUNIS
06.2018 - 08.2018

Project : IAP via Ethernet (In Application Programming).

  • Development of a BSP layer for Ethernet communication with the Wiznet-W5500 module.
  • Design and development of the remote update firmware (IAP) on the STM32F401 platform.

Environment:

STM32F401, SPI, UART, Flash NAND, WRP, Node-Red, TCP/IP, W5500, HTTP.

C, Keil, Git, CubeMX, ATOM, Doxygen.

Development Internship in Embedded Systems

SAFAS SA
TUNIS
07.2017 - 08.2017
  • Project : Acquisition and interfacing of thermocouple sensor data via PIC18F4550 and Matlab-GUI.

Environment:

PIC18f4550, Sonde type-k, AD595, Max232, RS232, MPLAB-XC8, Matlab, PICKit3.

C, Git, Doxygen.

Software Developper | Freelancer

UPWORK
  • Custom settings for MMU virtualization on VMs.
  • Porting of the secure bootloader (Wolfboot) on the STM32F429 platform.
  • Design and development of the BSP driver for the OV7670 camera.
  • Building a Debian-Mender image for the Raspberry PI4 target.
  • Interfacing the Open Bootloader via the USB Bus (MSC class).
  • UAV Software Contribution - Designing an architecture based on gRPC and TLS 1.3 to ensure secure communication between the services of the companion/payload computer.

Environment:

Linux, ROS2, Mavlink, TLS1.3, gRPC, google protobuf, USART, SPI, GNU toolchain (GCC, GDB, Cmake), Vs-code, Simrad.

C/C++, Python, Bash, Git.

Education

M.D. - Mechatronics Engineering

Université Libre De Tunis
Tunis
06.2019

Bachelor's degree - Electronics, electrical engineering, and automation

Faculté des sciences de Tunis el Manar
Tunis
06.2016

High school diploma - technical sciences

Lycée Khaznadar-Tunis
Tunis
06.2011

Skills

  • Certifications: Cyber Security Foundation Professional Certificate (CSFPCTM ID 63253857), Scrum Foundation Professional Certificate (SFPCTM ID 53694451)
  • Version control: Git/SVN
  • Programming Languages: C/C, Python, UNIX Bash, Batch, JLink CLI, Amazon CLI, ARM Assembly
  • IDEs: IAR, MDK ARM Keil, MPLAB-X, VS Code, Atom, Eclipse, STM32CubeIDE, Neovim (fork of Vim), Vi, Nano
  • Development & Debugging Tools: STM32CubeMX, STM32CubeProgrammer, TouchGFX Designer, ST-Link Utility, J-Link, Wireshark, USBLyzer, Logic Analyzer, PIC-Kit, MQTT-Fx
  • Embedded Platform: STM32 (F/L/H/U series), Nvidia TX1/TX2, IMX8, Raspberry Pi series, PIC16/18F, ESP32, WiFi ATWINC1500/CC3135, W5100/W5500, NRF24L01, NRF52, SD/eMMC, Macronix NOR Flash, DWM1000
  • Robotics Software & Frameworks: ROS1/2, Mavros, Gazebo, Buildroot, Mender, OpenCV, Flask, Tkinter, QT
  • Microcontroller IPs: DMA, GPIO, FLASH, SRAM, RDP/WRP/PCROP, ADC, DAC, AES, HASH, CRC, RTC, TIMERS, MPU, PWR, FIREWALL, DWT, LCDTFT, DSI (MIPI interface), DMA2D, DCMI, USART, SPI, I2C, USB 20 FS (RNDIS/MSC, VCP class), Ethernet
  • Networking protocols : MQTT/MQTTs, SNTP, FTP/TFTP, RTSP, HTTPs
  • Middleware: FreeRTOS, ThreadX, Zephyr OS, POSIX Thread, STM32 Drivers (SPL, HAL, LL), TCP/IP Stack (Cyclone, LwIP, NetX Duo), File Systems (FatFs, FileX, LevelX), USB Stack (ST USB, USBX), Bootloader (Secure Boot, WolfBoot, MCU Boot, U-Boot)

Certification

  • Cyber Security Foundation Professional Certificate, CSFPCTM ID 63253857
  • Scrum Foundation Professional Certificate, SFPCTM ID 53694451

Languages

  • French/Tunisian: native
  • English: professional

Timeline

Senior Software Engineer

ECO STOR AS
02.2024 - Current

Technical Lead | Senior Embedded Software Engineer

valeo
05.2023 - 02.2024

Sr Embedded Software Engineer

SOFIA EUROPA
07.2019 - 05.2023

Graduation Project

SOFIA TECHNOLOGIES
02.2019 - 07.2019

Embedded Software Developper

WATTNOW
09.2018 - 01.2019

Development Internship in Embedded Systems

WATTNOW
06.2018 - 08.2018

Development Internship in Embedded Systems

SAFAS SA
07.2017 - 08.2017

Software Developper | Freelancer

UPWORK

M.D. - Mechatronics Engineering

Université Libre De Tunis

Bachelor's degree - Electronics, electrical engineering, and automation

Faculté des sciences de Tunis el Manar

High school diploma - technical sciences

Lycée Khaznadar-Tunis
Ridha MASTOURI