MI

Dr.-Ing. Mourad Ismail

Embedded Systems Developer & C/C++ Specialist

mourad.ismail@gmail.com +49 1551 0438785 Am Zeughaus 36, 97421 Schweinfurt, Germany github.com/mouradism HackerRank
39 Repos

Doctor of Engineering (Dr.-Ing.) with extensive expertise in Embedded Systems development, C/C++ programming, and real-time control systems. Over 15 years of hands-on experience with microcontrollers (PIC, Arduino, STM32, AVR, ESP32), communication protocols (UART, I2C, SPI), and hardware integration. Proven ability to develop real-time embedded software for industrial automation, robotics, and mechatronic systems. Strong skills in low-level programming, debugging, PCB integration, and system optimization.

Core Competencies

Programming Languages

CC++ (Embedded)Assembly (PIC, AVR)PythonMATLAB

Microcontrollers

STM32 (HAL, Register-Level, FreeRTOS)PICArduinoAVRESP32 / ESP8266Raspberry Pi

Communication Protocols

UARTI2CSPIGPIOADCPWMDMACANInterruptsTimer/Counter

RTOS & Embedded

FreeRTOSTask SchedulingInterrupt HandlingBare-MetalHALRegister-Level Programming

Development Tools

STM32CubeIDEMPLABArduino IDEKeilIARAtmel StudioVSCodeGit

Hardware

PCB DesignMotor ControlPower ElectronicsSensors & ActuatorsPrototyping

Debugging & Testing

Logic AnalyzerOscilloscopeJTAG/SWDSerial DebuggingUnit Testing

Automation & Control

PLC ProgrammingGRAFCETIndustrial Sorting SystemsRobot ControlPID Controllers

PhD Research Background

Doctoral Research

Dynamically Constrained Trajectory Planning for Parallel Manipulators — Case Study: Hybrid Cable/Serial Robots

2012 – 2017 · ENIM, Monastir, Tunisia
Embedded C/C++ Development

Implementation of real-time control algorithms in C/C++ for parallel robot systems. Development of trajectory planning algorithms with singularity and collision avoidance.

Real-Time Control Systems

Task-Space and Joint-Space control for hybrid robots. Development of control strategies to maintain positive cable tensions via linear programming and null-space approach in C/C++.

Hardware Integration

Experimental setups with C/C++-based control and data acquisition. Integration of sensors, encoders, and motor controllers into prototypes.

Dynamic Modeling

Newton-Euler and Lagrange formulations for rigid bodies in C/C++. State-space representation and simulation of robot systems.

Rehabilitation Robotics

Design of an exoskeleton system for lower-limb rehabilitation with embedded control. Motion planning with real-time capable algorithms.

Optimization

Minimization of total trajectory time under dynamic constraints. Optimization of cable tensions with C/C++ implementation.

Key Research Outcomes

  • Novel planning algorithm in C/C++ for hybrid cable/serial robots — GitHub Repository
  • Implementation and comparison of two strategies for maintaining positive cable tensions (Null-Space proven superior)
  • Successful simulation of an exoskeleton rehabilitation system with real-time capable algorithms
  • Proof of feasibility through comprehensive dynamic analysis and experimental validation
  • Development of models and control strategies suitable for practical real-time implementations
View Research Repository on GitHub

Professional Experience

  • Developed 45+ hands-on microcontroller projects using PIC, Arduino, STM32, and AVR
  • Register-Level Programming, interrupt handling, timer configuration, and PWM generation
  • Implemented UART, I2C, SPI protocols for sensor integration and device communication
  • Designed PWM-based motor controllers and PID regulators in C/C++
  • Integrated FreeRTOS on STM32 for task management and real-time control
  • PLC programming, GRAFCET sequence control, industrial sorting systems, and robot control
  • PCB prototyping, circuit design, debugging with oscilloscope and logic analyzer
  • Trained hundreds of students and technicians in Embedded C/C++ and microcontroller programming
  • Dissertation: Dynamically Constrained Trajectory Planning for Parallel Manipulators — Hybrid Cable/Serial Robots
  • Developed real-time control algorithms in C/C++ for parallel robot systems
  • Implemented trajectory planning algorithms with singularity and collision avoidance
  • Embedded control systems for cable robots with positive tension control
  • Hardware integration of sensors, encoders, and motor controllers in prototypes
  • Designed a lower-limb rehabilitation system based on exoskeleton technology
  • Thesis: Dynamic Path Planning for Cable-Driven Robots
  • Developed control algorithms in C/C++ for cable robots
  • Prototyping with embedded controllers and real-time data acquisition
  • Integration of sensors and actuators with microcontroller-based systems
|

Technical Projects

Microcontroller Projects (45+)

External Interrupts
PICArduinoSTM32CAssembly

PIC (Assembly/C): RBO/INT interrupt, ISR creation. Arduino (C++): attachInterrupt(), button debouncing. STM32 (HAL): EXTI configuration, NVIC priority management.

Timer Programming
PICArduinoSTM32HAL

PIC: Timer0/1/2 in C, precise time control. Arduino: millis(), micros(), non-blocking delays. STM32: Timer configuration (HAL/Register-Level), PWM generation.

ADC Integration
PICArduinoSTM32DMA

PIC: ADC module in C, potentiometer reading. Arduino: analogRead(). STM32: Continuous ADC mode, DMA transfer, multi-channel sampling.

PWM Motor Control
PICArduinoSTM32PIDL298N

PIC: CCP module, H-bridge control (L298N). Arduino: analogWrite(), encoder feedback, PID control in C++. STM32: Timer-PWM, encoder interface, digital PI regulator.

UART Communication
UARTPICArduinoSTM32DMA

PIC: USART in C, PC communication. Arduino: Serial, sensor data logging. STM32: UART with HAL, interrupt-driven reception, DMA.

I2C Integration
I2CArduinoSTM32LM75BME280

Arduino: Temperature sensors (LM75, BME280). STM32: I2C configuration (HAL), register access, multi-master.

SPI Communication
SPIArduinoSTM32

Arduino: SPI display, SD cards. STM32: SPI configuration, high-speed transfer.

FreeRTOS on STM32
FreeRTOSSTM32CRTOS

Multitasking in C, task creation, queue communication, semaphores, mutex, timer tasks, memory management.

Low-Level Programming Expertise

Hardware-Level C/C++ Mastery
Register-Level Programming

Direct register manipulation in C for STM32, PIC, AVR. Configuration of peripheral registers, clock setup, GPIO control.

Interrupt Handling

ISR implementation in C/Assembly, interrupt priorities, nested interrupts, context switching.

DMA Programming

STM32 DMA configuration in C, memory-to-memory, peripheral-to-memory transfer, circular mode.

Low-Power Modes

Sleep modes, power management, wake-up sources, low-power timer, RTC wakeup.

Bootloader Development

Custom bootloader in C, flash programming, UART/CAN bootloader, firmware update over-the-air (OTA).

Education

PhD (Dr.-Ing.) in Mechanical Engineering & Robotics

2012 – 2017

ENIM · Tunisia

Thesis: Dynamically Constrained Trajectory Planning for Hybrid Cable/Serial Robots

Master in Mechanical Engineering & System Technology

2009 – 2011

ENISO · Tunisia

Thesis: Dynamic Path Planning for Cable-Driven Robots

Engineering Degree in Electromechanics

2001 – 2004

ENIS · Tunisia

Mathematical Baccalaureate

1997 – 1998

· Tunisia

Languages

ArabicNative
FrenchFluent
EnglishFluent
GermanLearning (B1+)

Key Achievements

Why This Experience Counts

With 15+ years of applied experience across research, teaching, and industry, here is what I bring to your embedded systems team:

  • Develop complex Embedded Systems in C/C++ — from Bare-Metal to RTOS
  • Master low-level hardware programming with direct register manipulation
  • Implement real-time algorithms for industrial and medical applications
  • Effectively use various microcontroller platforms (PIC, Arduino, STM32, ESP32)
  • Perform complete hardware-software integration from circuit to firmware
  • Apply modern embedded best practices and design patterns
  • Efficiently solve algorithmic problems (proven through HackerRank profile)
  • Document and communicate complex technical systems to other developers