16.02.2026 aktualisiert


100 % verfügbar
Expert Embedded Software-Entwickler
Hausham, Deutschland
Weltweit
Diplom PhysikÜber mich
Software-Entwickler und Architekt Embedded Systems, Schwerpunkt Embedded Linux, IoT, Security
Skills
BuildrootC++Embedded LinuxPythonTestenGitYoctoBetriebssysteme
Ich bin Software-Entwickler aus Leidenschaft. Woran ich mich messen lasse:
- Verantwortung und Umsicht für den gesamten Softwarestack: Vom Kerneltreiber über den Server bis zum User-Interface: Ich bring's zum Laufen.
- Testen und Deployment gehört dazu und wird gleich mitgedacht.
- Funktionierende Server-Infrastruktur, die der Kunde bei Bedarf mitnutzen kann (Git-Server, Build-Pipelines, Paket-Repositories, Ticketdatenbank, Wikis).
- Viele gut gepflegte Software-Bibliotheken, die dem Kunden unter der LGPL zur Verfügung stehen.
- Sicherer Umgang mit Kundendaten: Streng geschützte Aufteilung der Kundenbereiche auf den Servern.
- Sauberer Code: Meinen Code versuche ich so zu schreiben, dass man ihn weitgehend ohne Kommentare verstehen kann.
- Hohe Effizenz: Ich weiß nicht alles, aber was ich nicht weiß, lerne ich nicht auf Kosten der Kunden.
- Nahtlose Integration: Umfassende Änderungen an existierender Infrastruktur sind manchmal eine gute Idee. Aber keine Voraussetzung für meine Arbeit. Ich versuche, eine Codebasis genau da abzuholen, wo sie ist.
Einen systematischen Eindruck von Projekterfahrungen seit 1998, meiner Skills und der Infrastruktur, die Kunden über die janware GmbH zur Verfügung steht, gebe ich im Profildokument hier: https://janware.com/pub/people/jan-lindemann/ .
Ein Auszug:
- Ich analysiere Embedded-Linux-Betriebssysteme bei Kunden, und ich schreibe Software dafür
- Die Betriebssystem-Images werden typischerweise erstellt von Yocto, Buildroot oder proprietären Lösungen
- Der Quellcode liegt typischerweise verteilt über mehrere Git-Repositories
- Software wird typischerweise geschrieben in C oder modernem C++. Ernsthafte Projekterfahrung kann ich vorweisen bis einschließlich C++17. Wenn man von wenigen Features in C++20 absieht.
- Ich habe mehrjährige Erfahrung im automatisierten Integrations-, Unit- und Performancetests von embedded Software, auch Hardware-in-the-Loop, und bringe brauchbare Testtools mit
Erfahrung
Berufserfahrungmehr als 10 Jahre
Freelancer seit1998
Sprachen
DeutschMutterspracheEnglischverhandlungssicherFranzösischgutItalienischgutPortugiesischgut
Projekthistorie
- CI/CD-Pipeline verbessert, GitHub Actions, automatisches, nächtliches Deployment als Debian- & RPM-Pakete auf alle Server und Workstations
- Lokale KI eingerichtet (llama-cpp)
- Gitea / Forgejo-Integration, Anpassungen von Forgejo Upstream
- Updates aller sicherheitsrelevanten Software
- Neuentwicklung DevOps-Client für verschiedene Backends (Azure DevOps, Bugzilla, Jira), Web-Interface mit FastAPI
- Neuentwicklung Buchhaltungsdatenbank, ebenfalls mit FastAPI
- Umstellung aller Server von AppArmor auf SELinux
- Diverse Fixes in Bugzilla Upstream, responsive Design für alle Seiten
- Mail-Server-Upgrade von Cyrus, Postfix, Unterstützung für diverse serverseitige Anti-Spam-Maßnamen, DMARC, SpamAssassin, SPC, DKIM
- DNS: Migration der DNS-Daten in OpenLDAP von SDB auf Bind-DLZ-Schema mit Python
- Borg-Backup-Server eingerichtet, automatisches Backup sämtlicher Workstations, Server und Mobilgeräte
- Einrichten eines Testplatzes und Implementierung einer HIL-Testarchitektur in Python
- Relaisgesteuertes An- und Ausschalten der Geräte
- Parsen der seriellen Kommunikation, Erkennen und Protokollieren von Fehlern, Auslösen von Softwareupdates, Konfigurieren des Geräts, etc.
- Automatisierte Analyse des stark ineinander verwobenen Software-Stacks
- Implementierung von Principle-of-least-Privilege für alle auf dem System laufenden Prozesse:
- Dedizierte EUIDs für jeden Prozess
- Minimale Dateisystem-Berechtigungen und Capabilities für jeden Prozess
- Viele Patches und neue Funktionalität verteilt über den gesamten Software-Stack, z.B.
- kundenseitig in Kerneltreibern, Kundenapplikationen, Komplette Codebasis (C/C++, Ash, Python, Bash, awk, make, Yocto-Recipes, -Klassen und -Konfiguration)
- plattformseitig in OpenEmbedded Core, Wind River Linux, Systemd, udev-Regeln, Syslog-ng, LTTng, BusyBox udhcpc, rngd, ...
- Zugriff auf verschlüsselte Dateisystempartitionen nur für bestimmte EGIDs ermöglichen, Key Management selektiv aufbohren
- System Limits für Shared Memory, Dateideskriptoren, Semaphoren usw. für einzelne EUIDs anpassen
- Finden und Beseitigen von Sicherheitslücken im Quellcode der Anwendungssoftware
- Performanzmessung über alle 500 Commits, Finden und Beseitigen von Performanzproblemen beim Booten und im Betrieb
- Debuggen und Fixen von Buildfehlern
- Entwicklerdokumentation
- Kameradaten von /dev/mem gelesen und in verschiedenen Formaten gespeichert, Fehler in den Formaten behoben
- Video4Linux-Treiber geschrieben
- mediad: Neuimplementierung eines modularen RTP- + RTSP-Videostreaming- und Routing-Service. Dabei wurde die gesamte Pipeline für Video- und Audiodaten vom Speicher über diverse Treiber-Abstraktionsschichten im Kernel bis zu einem Userspace-Daemon und dessen Integration ins System implementiert:
- Kernelspace:
- Xilinx Zync Video Processing Pipeline, existierende Treiber von Xilinx und Zeiss analysiert, gefixt und komplettiert, fehlende IOCTLs und Interrupt-Handling ergänzt, Devicetree-Konfiguration debugged und gefixt
- Video4Linux Kerneltreiber geschrieben
- Audiotreiber gefixt
- Userspace:
- Modulares Framework in C++ geschrieben
- Integration verschiedener Encoder- und Streaming-Engines mit Hilfe verschiedener Bibliotheken (FFmpeg, VLC, GStreamer, OpenH264, live555, libjpeg-turbo)
- Backport der main-Zweige von GStreamer, GStreamer Plugins, VLC legacy Version von PetaLinux des Kunden
- V4L Loopback Device zum Testen eingerichtet
- GStreamer-Interpipes gefixt
- Yocto-Recipes für externe Bibliotheken geschrieben
- Integration in Bootvorgang und Update-Skripten
- BusyBox depmod gefixt
- Patches in FFmpeg, ImageMagick, Bugfixes
- Fixes im Encoding der Bilddaten / Dokumentation
- Log-Framework der gesamten Codebasis erneuert und vereinheitlicht
- Testen mit Qemu und dem Gerät, Skripten dafür geschrieben
- Integration in Build (Yocto / PetaLinux)
- Fixes im Build-Prozess (Docker / PetaLinux / Yocto)