Write test scripts in Bash and Python to test the interaction between the IO controller (NXP ARM-based MCU) and the system controller (Intel MCU)
Use lightweight IP libraries to configure the Ethernet interface and create UDP and TCP sockets on the IO controller
Use tools like Wireshark and tcpdump for debugging
Jul 2023 - Dec 2023
6 months
Weilburg, Germany
Software Developer
Feig Electronic GmbH
Develop inverter control for single-phase or three-phase AC motors
Write linker scripts and bootloader code for a new prototype (toolchain armcc)
Add software features for the new prototype
Integrate new libraries (FatFs) for embedded systems
Mar 2023 - May 2023
3 months
Duisburg, Germany
Software Developer
ThyssenKrupp Electrical Steel GmbH
Create software for the Arduino Uno board with Motor Shield in the Arduino IDE
Control positioning of an ultrasonic sensor using a stepper motor
Implement displaying measurement results on an LCD via I2C
Aug 2022 - Jan 2023
6 months
Melsungen, Germany
Software Developer
B. Braun AG
Develop software in C and C++ for a dialysis machine on Windows inside a Docker container (Ubuntu)
Implement pump control (stepper motors)
Program the STM32H735ZGT MCU from ST and the MIMXRT1062DVL6B from NXP
Configure and use FD-CAN as a communication bus
Perform hardware commissioning, interface setup, and create software modules
Conduct integration tests on the machine
Jul 2022 - Nov 2022
5 months
Bochum, Germany
Software Developer
Keysight GmbH
Develop test automation for car batteries in C++ on Linux
Develop drivers for the climate chamber
Replace the bootloader with GRUB2 to have an EFI-capable bootloader
Jan 2022 - Mar 2023
1 year 3 months
Ludwigsburg, Germany
Software Developer
Heidelberger Druckmaschinen
Develop configuration and control of the feeder, folding unit and delivery unit in C and C++ on Windows
Development using the redCase tool
Analyze configuration and control of the units with PCAN-View
Perform software tests on the machines
Apr 2021 - Dec 2021
9 months
Kaiserslautern, Germany
Software Developer
Wipotec GmbH
Bug fixing and software enhancements in C++ on Linux for configuring load cells and controlling conveyor belts
Development on a virtual machine (Ubuntu) on the host PC with Visual Studio as IDE
Remote debugging with GDB
Analyze data traffic between host and target with Wireshark
Perform software tests on the conveyor belt simulation
Apr 2019 - Dec 2019
9 months
Karlsruhe, Germany
Software Developer
Ferchau Engineering GmbH
Bug fixing and software enhancements in C++ with Qt on embedded Linux for controlling displays in buses and trains using the IBIS communication protocol
Remote debugging with GDB via a running GDB server on the target device
Manual communication testing with Netcat and tcpdump for internal, and Wireshark for external communication
Perform software tests with a vehicle simulation
Jul 2017 - Mar 2019
1 year 9 months
Heilbronn, Germany
Embedded Software Developer
Ferchau Engineering GmbH
Embedded software development with embedded Linux on the Toradex Iris board with Colibri i.MX6 module for a battery handler
Configure RS232 interfaces and GPIOs, initialize sensors and implement sensor functions
Implement a state machine and perform software tests
Microcontroller and ASIC verification at Robert Bosch GmbH in Abstatt
Commission test hardware, write code in C and C++ for different measurements (Rds_On, current injection and leakage current)
Automate tests and configure measuring devices using test scripts
ASIC verification: control current of channels, test behavior of the sync unit and measure Rds_On of LS switches
Jul 2016 - Jun 2017
1 year
Erlangen, Germany
Software Developer
Germaneers GmbH
Software implementation in C/C++ to test the functionality of a device with a test box made of two boards
Test functions: wake-up of the DUT via CAN message and external wake-up, image and video processing, GPS communication, overcurrent detection, CAN and UART communication, audio processing
Create software for microcontrollers in the test box, set up the boards and perform tests
Software implementation for power management of the i.MX6
Configure registers in the PMIC PF0100 via I²C to set output voltage and start-up sequence of buck regulators, boost regulator, and LDOs
Measure output voltages and start-up sequence with the oscilloscope
Apr 2015 - Sep 2015
6 months
Bühlertal, Germany
Hardware and Software Development Intern
Preis Ingenieurbüro GmbH
Test system for controlling a wiper motor with STM32 and semiconductor switch for currents up to 100 A: schematic design, layout creation, PCB assembly, motor control code in C/C++ and commissioning
Power measurement system for memory wires: synchronous measurement of 2 A/D channels with 1 MHz sampling rate on STM32, calculation of average power and filtering, output to an external DAC via SPI, including schematic design, layout creation, PCB assembly and commissioning
Endurance test for SMA valves at -70 to 80 °C: development and setup of test equipment, control code in C/C++, test runs at various temperatures and documentation
FFT implementation as a PC console application using the Cooley-Tukey algorithm in C
Jan 2005 - Dec 2014
10 years
Activities in Inventory and Logistics
Various Companies
Languages
Arabic
Native
German
Advanced
English
Intermediate
Education
Sep 2006 - May 2014
FH Dortmund
Bachelor · Communications and Information Technology · Dortmund, Germany · 2.6