Senior Embedded Software Engineer | Software Architect | Technical Lead
I develop reliable embedded software in modern C++ for industrial and medical devices.
With more than 30 years of experience, I specialize in designing maintainable firmware architectures, hardware abstraction layers, automated testing, and simulation environments that significantly improve software quality and development efficiency.
CANoopEn is our CANopen protocol stack, written in clean, object-oriented C++17 and released as open source under the Apache License 2.0.
The stack is completely target-independent and runs on any hardware architecture - from bare-metal microcontrollers to RTOS-based systems. It uses no dynamic memory allocation, every service can be compiled out to fit small flash budgets, and the object dictionary is generated from a standard CANopen EDS file and accessed in a fully type-safe way.
Supported: NMT, heartbeat, SDO server and client (incl. block transfer), PDO and MPDO, SYNC, TIME, EMCY, LSS (CiA 305), CiA 303-3 indicators, the CiA 302-2 boot process and the CiA 417 lift application profile.
| Repository | Content |
|---|---|
| CANoopEn | The stack |
| CANoopEnDemo | Ready-to-build sample projects (bare-metal and FreeRTOS, CiA 401 and CiA 417) |
| CANoopEnTest | Unit test suite, running on every commit |
| CANoopEnTools | Eds2Od - generates the object dictionary from an EDS file |
Documentation: CANoopEn.net
- Embedded Software Development
- Modern C++
- Software Architecture
- Bare-Metal Firmware
- RTOS-based Systems
- Hardware Abstraction Layers (HAL)
- Device Drivers
- State Machines
- Industrial Communication
- CAN / CANopen
- Embedded Linux
- Medical Device Software
- Industrial Automation
- IoT Devices
One of my main areas of expertise is building software simulation environments for embedded systems.
Instead of waiting for hardware, I develop simulation platforms that execute the same business logic as the target firmware.
Typical advantages:
- Faster development
- Hardware-independent debugging
- Automated regression testing
- Reproducible error scenarios
- Continuous Integration (CI)
- Better software quality
- Faster customer support
I strongly believe that embedded software should be testable without requiring physical hardware.
I have extensive experience developing software for medical devices.
Typical topics include:
- IEC / EN 62304 compliant development
- Verification & Validation
- Unit Testing
- STM32 Microcontrollers
- Bare-Metal Systems
- Embedded C++
- Risk-aware software design
I have worked on projects in various industries, including:
- Medical Technology
- Industrial Automation
- Elevator Systems
- Robotics
- IoT
- Safety-Critical Systems
- C++
- C
- C#
- Python
- STM32
- ARM Cortex-M/A
- Bare Metal
- FreeRTOS
- embOS
- CAN
- CANopen
- REST
- MQTT
- Modbus
- gRPC
- I2C, SPI, etc.
- Visual Studio
- VSCode
- Git
- CMake
- Continuous Integration
I enjoy designing software that remains maintainable for many years.
My focus is on:
- Clean Architecture
- Readable Code
- SOLID Principles
- Hardware-independent Business Logic
- Testability
- Long Product Lifetime
- Automated Testing
- Simulation First
Good software is not only functional — it should also be understandable, testable and easy to extend.
Xyntos develops professional embedded software for industrial and medical applications.
Services include:
- Embedded Software Development
- Software Architecture
- Technical Consulting
- Embedded Simulation
- Test Automation
- CAN / CANopen Solutions
📍 Switzerland
🌐 Website: https://xyntos.ch
💼 LinkedIn: https://www.linkedin.com/in/markusforrer/
📧 Contact: https://xyntos.ch/contact
Building reliable embedded software through clean architecture, simulation and modern C++.