Fari Software GmbH

Ihr Engineering-Partner für bestehende Systeme — vom akuten Problem bis zur Weiterentwicklung.

Ich übernehme, was schwierig ist: Debugging, Performance, Stabilisierung. Und ich bleibe an Bord, wenn Teams dauerhaft Verstärkung brauchen. Schwerpunkt: C++, Python, Embedded und systemnahe Umgebungen.

  • C++
  • C#
  • Python
  • Embedded
  • Systemnahe Umgebungen

01Symptome

Kommt Ihnen das bekannt vor?

Bestehende Systeme scheitern selten spektakulär. Es wird schleichend schwieriger: Änderungen dauern länger, Fehler lassen sich schwer eingrenzen, und niemand kann mehr sicher sagen, wo die Ursache liegt.

  • Abstürze oder sporadisches Fehlverhalten, das niemand sauber erklären kann.
  • Performance-Probleme ohne klare Ursache.
  • Gewachsener Code, den niemand mehr sicher durchdringt.
  • Technische Schulden, die jede Änderung riskant und langsam machen.
  • Fehler, die nur auf der Zielhardware auftreten — und im Labor nicht reproduzierbar sind.
  • Fragile Test- und Deployment-Abläufe, die Zeit kosten und Releases bremsen.

Genau hier fange ich an: bei der Ursache, nicht beim Symptom.


02Leistungen

Wobei ich konkret helfe

Keine Entwicklung von der Stange. Gezielte Unterstützung dort, wo bestehende Systeme schwierig werden — und verlässliche Weiterentwicklung danach.

01

Debugging & Root-Cause-Analyse

Abstürze, Race Conditions, Speicherprobleme, sporadisches Fehlverhalten — auch direkt auf Embedded-Zielhardware.

02

Performance-Analyse & Optimierung

Wenn Systeme zu langsam werden, unter Last kippen oder Ressourcen fressen. Erst messen, dann optimieren.

03

Stabilisierung & Modernisierung

Gewachsene Systeme mit Altcode und technischen Schulden wieder wartbar machen — gezielt, ohne Big-Bang-Rewrite.

04

Weiterentwicklung & Entlastung

Features in Bestandssystemen umsetzen, Tests und Deployments automatisieren — damit Ihr Team wieder vorankommt.

Wie ich arbeite

Ich komme nicht für Folien und Moderation. Ich komme, wenn ein technisches Problem verstanden und gelöst werden muss — und bleibe, wenn daraus mehr wird.

  • Schnelle, eigenständige Einarbeitung in bestehende Systeme
  • Ursachenanalyse statt Symptombehandlung
  • Pragmatische Verbesserungen mit Blick auf Wartbarkeit
  • Direkte Zusammenarbeit, kurze Wege, klare Verantwortung
  • Minimaler Betreuungsaufwand auf Kundenseite

Für wen das passt

  • Teams, die ein bestehendes technisches System weiterentwickeln, stabilisieren oder retten müssen
  • Teams mit klaren Ansprechpartnern und kurzen Entscheidungswegen
  • Wenn schnelle technische Unterstützung gebraucht wird
  • Wenn ein Problem gelöst werden soll, nicht monatelang diskutiert

03Fallbeispiele

Ausgewählte Einsätze

Anonymisierte Beispiele aus realen Projekten — Branchen und Details bewusst verallgemeinert.

BioTech · Embedded Linux

Sporadische Abstürze in Gerätesoftware

Symptom
Die C++/C#-Steuerungssoftware eines Flüssigkeitsanalyse-Geräts stürzt sporadisch ab. Nicht reproduzierbar — und niemand weiß, woran es liegt.
Vorgehen
Crash-Dumps, Speicher und Laufzeitverhalten direkt auf dem Embedded-Linux-System analysiert — mit valgrind, ThreadSanitizer und gdb. Am Ende bleiben zwei Baustellen: Speicherverwaltung und Multithreading.
Ergebnis
Ursachen behoben, das Gerät läuft stabil. Dazu ein Bericht, mit dem das Team ähnliche Fehler künftig selbst vermeidet.

Halbleiter · Messtechnik

C++-Testsystem per Python skriptbar gemacht

Symptom
Ein Halbleiter-Tester soll per Python steuerbar werden. Die C++-Software ist über Jahre gewachsen — und die Messperformance darf nicht leiden.
Vorgehen
Python-Interpreter mit pybind11 eingebettet, Wrapper automatisch generiert. Danach gemessen statt geraten: IPC-Aufrufe reduziert, Multithreading nachgezogen.
Ergebnis
Der Tester lässt sich per Python skripten — und ist dabei schneller geworden, nicht langsamer.

Sensorik · Industrie

Gewachsenen Python-Monolithen modernisiert

Symptom
Ein über Jahre gewachsener Python-Monolith: schwer zu warten, an den performancekritischen Stellen am Limit.
Vorgehen
Schritt für Schritt Richtung Microservices umgebaut. Kritische Pfade nach C++ portiert (pybind11), sicherheitsrelevante Logik gehärtet, Unit- und Integrationstests samt Container-Testumgebung aufgebaut.
Ergebnis
Die Architektur trägt wieder: kritische Pfade laufen in C++, Änderungen sind durch Tests abgesichert.

04Zusammenarbeit

Formen der Zusammenarbeit

Je nach Situation steige ich unterschiedlich ein — von der ersten Einschätzung bis zur langfristigen Zusammenarbeit.

01 Einstieg

Technische Ersteinschätzung

Für konkrete Probleme, bei denen zunächst Klarheit gebraucht wird: Was ist wahrscheinlich das eigentliche Problem? Wie geht man sinnvoll vor? Lohnt sich ein tieferer Einstieg?

Unklare technische Probleme

Erste Einordnung vor größerem Aufwand

Erfahrener technischer Blick von außen

02 Diagnose

Analyse & Handlungsempfehlung

Ich analysiere ein konkretes Problem strukturiert — und liefere eine klare Einschätzung, Prioritäten und die nächsten Schritte für Ihr Team.

Komplexere technische Situationen

Gewachsene Systeme mit mehreren möglichen Ursachen

Orientierung und strukturierter Einstieg

03 Direkteinsatz

Direkte technische Unterstützung

Hands-on-Einstieg ins System: analysieren, stabilisieren, optimieren, weiterentwickeln — remote oder vor Ort, punktuell oder dauerhaft.

Akute technische Engpässe

Konkrete Probleme mit Umsetzungsbedarf

Dauerhafte Verstärkung im Team

Viele Projekte beginnen mit einem konkreten Problem — und werden zu langfristiger Zusammenarbeit. Welche Form sinnvoll ist, klären wir am konkreten Fall. Kurz schildern, worum es geht →


05Über mich

Fari Software GmbH

Software-Engineering aus Böblingen bei Stuttgart

AutomotiveHalbleiterMess- & PrüftechnikBioTechLogistik

Fari Software ist die spezialisierte GmbH von Matthias Spiller in Böblingen. Ich mache bestehende technische Systeme wieder beherrschbar — und entwickle sie weiter, wenn der akute Druck raus ist.

Ich arbeite hands-on: Code lesen, debuggen, messen, optimieren. Konzeptpapiere sind nicht mein Geschäft.

Wenn ein Vorhaben mehr Hände braucht, hole ich erfahrene Entwickler aus meinem Netzwerk dazu.

Ihr Ansprechpartner

Matthias Spiller

Matthias Spiller

Geschäftsführer & Softwareentwickler

Über 20 Jahre Erfahrung in komplexen technischen Systemen — C++, Python, Embedded, systemnahe Umgebungen, darunter sicherheitskritische Umfelder in Automotive und BioTech. „Fari" ist Esperanto und bedeutet: etwas tun, etwas schaffen.

Stimmen aus Projekten

“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
“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

Quelle: LinkedIn ↗

06Kontakt

Lassen Sie uns sprechen.

Ein konkretes Problem — oder die Frage, ob ich der Richtige bin? Schreiben Sie mir kurz. In der Regel antworte ich innerhalb von 24 Stunden mit einer ersten Einschätzung.

Verfügbar für neue Einsätze

info@fari-software.de