Embedded software development:
I offer hardware-oriented software development in C and C++, specifically microcontroller programming. Everything that goes with it, such as setting up the toolchain on the host PC, preparing the IDE, MCU or board configuration, interface configuration, setting up debugging (host and target), using debugging tools such as Wireshark, oscilloscope and logic analyzer, using scripting languages for automation, software development and testing.
Hardware-oriented software development under Linux:
If you develop under Linux, I can support you in this. I am happy to get involved in image creation using Yocto, hardware configuration based on the device tree, server configuration (host and target), network configuration (host and target), and the use of Linux debugging tools such as Tcpdump, netcat, nmap, ping, nmtui, etc.
Microcontroller programming with FreeRTOS:
I am happy to take on the task of software development with RTOS. I am very familiar with topics such as task creation, task periodization, adjusting and configuring Systick timers, using semaphores, queues, and mutexes, task scheduling, interaction between (Systick handlers and PendSV handlers), and using tracing tools for analyzing running tasks, ISR entry and exit timing.
Microcontroller programming Bare-metal:
I also offer software development without an operating system or abstraction layer. I can program directly onto the hardware and deal with register addresses, start-up code, linker scripts, bootloaders, stack initialization, OPENOCD, GDP, and interrupt tables.
Hardware commissioning:
I can assist with hardware commissioning. Everything that goes with it: reading circuit diagrams and layouts, soldering and desoldering components, checking communication between components, checking generated voltages, etc.
Linux Administration:
I can take on the task of Linux administration: installation and configuration of a Linux distribution (Red Hat or Debian-based), network administration, automation, user account management, scripting, and system monitoring, etc.
Linux Engineer:
I am familiar with Linux engineering: server installation and configuration, package management, user and group management, system monitoring, log management, backup and recovery, automation with scripting, etc.