Softwareentwicklung C++ · C# · Python · Matthias Spiller, Böblingen

Was bei Ihnen gerade niemand schafft, erledige ich.

Senior-Entwickler für C++, C# und Python. Ich arbeite mich schnell in fremde Systeme ein und liefere ohne Betreuung, für ein paar Tage oder über Monate.

Aufgabe schildern
  • 1 Tag bis zur Ursache sporadischer Abstürze in einer Gerätesoftware. Fix nach drei Tagen produktiv. BioTech · Umfeld neu
  • 3 Monate bis ein liegengebliebenes Projekt wieder benutzbar und wartbar war. Cyber Security · Umfeld neu
  • 20 Jahre in Halbleiter, Automotive, Sensorik, BioTech und Cyber Security. In jedes Fachgebiet habe ich mich neu eingearbeitet. 5 Branchen
  • 15 Monate und es läuft weiter, im Team am Backend eines funktional sicheren Ortungssystems. Sensorik · Umfeld neu

Aufgaben

Wofür man mich meistens holt.

Fremder Code

Code von einem Dienstleister, einem Vorgänger oder einem anderen Team, den keiner mehr durchschaut. Ich arbeite mich ein, behebe Abstürze und mache ihn wartbar, ohne bestehende Nutzung zu brechen.

Architektur und Überblick

Ich verstehe schnell, wie Ihr System als Ganzes zusammenhängt. Neues baue ich nicht daneben, sondern füge es so ein, dass es zur bestehenden Architektur passt und wartbar bleibt.

Prototyp im Produkt

Eine Idee soll zeigen, ob sie trägt. Ich baue einen vertikalen Slice direkt im bestehenden System, damit Performance und Bedienbarkeit am echten Gerät messbar sind.

Verstärkung im Team

Ein Senior mehr, der ohne Betreuung produktiv wird. Ihr Team ist entlastet, und die Zusagen an Ihre Kunden bleiben haltbar. Für Wochen oder Monate.

Projekte

Vier Beispiele aus der Praxis.

Fremder Code · BioTech · C++/C#

Sporadische Abstürze in der Gerätesoftware.

Die Steuerungssoftware eines Analysegeräts stürzte sporadisch ab. Die Ursache saß an der Grenze zwischen C++ und C#, dahinter Race Conditions und Memory Leaks.

Ergebnis  Gerät stabil, Regeln fürs Team dokumentiert.

Fremder Code · Cyber Security · C# · Roslyn

Entwickler weg, Code kaum lauffähig.

Ein Werkzeug zur Source-to-Source-Transformation von C#-Code. Der ursprüngliche Entwickler hatte das Projekt über Nacht verlassen. Der Stand lief nicht und ließ sich kaum kompilieren.

Ergebnis  Wieder benutzbar und wartbar, bereit für den Einsatz.

Verstärkung im Team · Sensorik · Python · C++

Ein sicherheitsrelevantes Backend, aus dem Monolithen gelöst.

Ortungssystem zum Personenschutz. Verteilte Python-Dienste, sicherheitsrelevante Logik in C++ mit SIListra gehärtet, Tests und statische Analyse in der CI.

Ergebnis  Team entlastet, Zusagen an den Endkunden bleiben haltbar.

Prototyp im Produkt · Halbleiter · C++ · Python

Ein Prozesswechsel pro Ablauf statt pro Aufruf.

Das Testsystem ließ sich nur über eine API steuern, und jeder Aufruf war Interprozess-Kommunikation. Die Idee war, den Python-Interpreter in den Serverprozess einzubetten und den ganzen Ablauf als Skript zu schicken. Den Prototyp habe ich direkt im Produkt gebaut, per pybind11 und mit Wrappern aus der C++-API.

Ergebnis  Ein Interprozess-Aufruf statt vieler, im Zielsystem verifiziert.

Über mich

Matthias Spiller

Diplom-Informatiker, Universität Freiburg, Schwerpunkt Mustererkennung und Bildverarbeitung. Seit 2006 Softwareentwickler, seit 2017 mit eigener GmbH in Böblingen.

Ich arbeite hands-on: Code lesen, debuggen, messen, ändern. Dokumentation schreibe ich für die Leute, die danach mit dem Code arbeiten, nicht für die Ablage.

Für Codeanalyse, Tests und Dokumentation setze ich KI ein. Auf Wunsch laufen die Modelle ausschließlich auf meiner eigenen Hardware.

“Once a task is assigned, it simply gets done to a high standard, without the need for follow-ups. Matthias brings a rare mix of technical expertise, ownership, and clarity that I’d recommend to any team without hesitation.”
Projektleiter, Software · LinkedIn
“His expertise in C++ and C#, particularly in embedded systems and CAN protocols, was instrumental in improving our microcontroller library and firmware. Beyond his technical skills, Matthias was a pleasure to work with.”
Teamleiter, BioTech · LinkedIn

Tech-Stack

Womit ich arbeite.

Eine Auswahl. Was hier nicht steht, lerne ich im Projekt.

Sprachen

C++ · C# / .NET · Python · C · C++/CLI · CAPL · WPF · Qt · ASP.NET

Embedded und Bus

ARM Cortex-M · FreeRTOS · Embedded Linux · CAN · LIN · I2C · SPI · UART · USB · BLE · Ethernet

Testautomatisierung

pytest · gtest · Robot Framework · CANoe / vTESTstudio · Software-in-the-Loop · Tests am Gerät

Build und CI

CMake · conan · Docker · GitHub Actions · Jenkins · MSBuild · vcpkg · GitLab · Kubernetes · Azure

Fehlersuche und Performance

gdb · valgrind · ThreadSanitizer · VTune · Wireshark · Coverity · SonarQube

Architektur und Schnittstellen

gRPC · MQTT · REST · OPC UA · pybind11 · Monolith zu Services · DSLs mit Xtext · IEC 61508

Vollständige Liste anzeigen ↓

Sprachen

  • C++
  • C++17
  • C++20
  • C++/CLI
  • C
  • C#
  • .NET
  • ASP.NET
  • Python
  • Java
  • Visual Basic / VB.NET
  • CAPL
  • bash
  • groovy
  • Batch
  • WPF
  • XAML
  • Qt
  • WinForms
  • MFC
  • COM / (D)COM
  • boost
  • opencv
  • pandas
  • numpy
  • Flask
  • FastAPI
  • Django
  • Dependency Injection
  • Smart Pointer
  • RAII
  • Move-Semantik
  • constexpr
  • Templates
  • Multithreading

Embedded und Bus

  • ARM Cortex-M
  • RP2040
  • Nordic nRF52832
  • NXP MK10
  • FreeRTOS
  • Embedded Linux
  • Ubuntu Core
  • Cross-Compilierung
  • platformio
  • Arduino
  • TinyUSB
  • Pico-PIO-USB
  • SoftDevice
  • GATT
  • CAN
  • SocketCAN
  • can-utils
  • LIN
  • I2C
  • SPI
  • UART
  • USB
  • MIDI
  • Bluetooth / BLE
  • Ethernet
  • TCP
  • UDP
  • IPv4
  • IPv6
  • DoIP
  • ISO 13400
  • UDS
  • KWP2000
  • ODX
  • CDD
  • vCDL
  • ASAM XIL
  • CANoe
  • CANalyzer
  • ISO 15118
  • OCPP
  • ADC
  • PWM
  • PCB-Design
  • Schaltungsentwurf
  • Echtzeit

Testautomatisierung

  • pytest
  • gtest
  • cppunit
  • nunit
  • unittest
  • Robot Framework
  • Selenium
  • CANoe
  • vTESTstudio
  • CAPL
  • Software-in-the-Loop
  • Hardware-in-the-Loop
  • Tests am Gerät
  • Konformitätstests
  • Unit Testing
  • Integrationstests
  • Testautomatisierung
  • statische Codeanalyse
  • clang-tidy
  • mypy
  • flake8

Build und CI

  • CMake
  • MSBuild
  • conan
  • vcpkg
  • NuGet
  • poetry
  • gradle
  • maven
  • ant
  • Ivy
  • Artifactory
  • git
  • GitHub
  • GitLab
  • BitBucket
  • SVN
  • ClearCase
  • GitHub Actions
  • GitLab CI
  • Jenkins
  • CI/CD
  • Docker
  • Kubernetes
  • OpenShift
  • helm
  • Terraform
  • Azure
  • VirtualBox
  • PostgreSQL
  • MySQL
  • MSSQL
  • SQLite
  • redis
  • SQLAlchemy
  • Entity Framework
  • Scrum
  • JIRA
  • Confluence

Fehlersuche und Performance

  • gdb
  • valgrind
  • ThreadSanitizer
  • VTune
  • Intel Inspector
  • Crash-Dump-Analyse
  • Memory-Leak-Analyse
  • Performance Profiling
  • Race Conditions
  • Wireshark
  • Coverity
  • SonarQube
  • clang-tidy

Architektur und Schnittstellen

  • gRPC
  • protobuf
  • MQTT
  • REST
  • SOAP
  • OPC UA
  • ZeroMQ
  • RPC
  • JSON
  • XML
  • CSV
  • Swagger
  • pybind11
  • Jinja2
  • NiFi
  • Monolith zu Services
  • Microservices
  • Architecture Decision Records
  • UML
  • Enterprise Architect
  • Xtext
  • Xtend
  • Xcore
  • Roslyn
  • Language Server Protocol (LSP)
  • Codegenerierung
  • Source-to-Source-Transformation
  • T4 Templates
  • IEC 61508
  • Functional Safety
Profil als PDF

Kontakt

Schildern Sie mir die Aufgabe.

Schreiben Sie mir kurz, worum es geht. Ich melde mich spätestens am nächsten Werktag mit einer ersten Einschätzung.

  • Remote aus Böblingen, vor Ort möglich.
  • KI-gestützt, auf Wunsch auf eigener Hardware.
  • Mehr Hände aus meinem Netzwerk.
  • Über die eigene GmbH, mit Berufshaftpflicht.