Projekte

Eigene Projekte, Arbeit aus Ausbildung und Studium und meine Stationen als Entwickler. Zu jedem steht, was es ist, was ich daran gemacht habe und womit.

Eigene Projekte

flutter_template

Flutter-Monorepo als Vorlage für meine eigenen Apps

Dart, Flutter · privat, nicht öffentlich

Jede neue App kopiert die Vorlage einmal und entwickelt sich dann eigenständig weiter. Darin stecken ein eigenes MVC-State-Management mit einem Lint-Plugin, das die Regeln durchsetzt, Lokalisierung und ein Grundgerüst für macOS, Windows und Linux. Dazu kommen eigene Dart-Pakete, deren Code mit build_runner generiert wird. barrierewacht entsteht auf dieser Vorlage.

barrierewacht

Ein Werkzeug, mit dem Webagenturen die Websites ihrer Kundschaft auf Barrieren prüfen

in Entwicklung · Flutter, Dart · ein Produkt meiner Firma

Eine Agentur trägt die Websites ein, die sie betreut. barrierewacht prüft sie automatisch nach WCAG 2.2 AA, ordnet die Mängel nach Wichtigkeit und prüft regelmäßig erneut. Es ist ein automatisches Prüfwerkzeug, kein zertifizierter BITV-Test und keine Rechtsberatung.

groundwork

Workflows und Arbeitsprinzipien für Claude Code, in Markdown-Dateien unter Versionskontrolle

Markdown, Python, just · Apache-Lizenz 2.0 · Open Source auf GitHub

groundwork hält in Markdown-Dateien fest, was man über die Arbeit mit KI-Coding-Agenten lernt: Workflows, Arbeitsprinzipien und Slash-Commands. So liegt das Wissen unter Versionskontrolle statt im Chatverlauf. Ein kleines Python-Skript setzt daraus das Verzeichnis zusammen, das Claude Code zu Beginn jeder Sitzung liest. Es meldet auch, wenn Notizen veralten, etwa bei einem kaputten Link. Ich habe groundwork als Open Source veröffentlicht. Eigene Angaben wie die genutzten Anbieter kommen in eine private Ebene darüber.

Minecraft-Mods

Mods in Java für Minecraft, mit öffentlichem Quellcode

seit 2026 · Java · MIT-Lizenz · in Entwicklung, noch kein Release · Quellcode auf GitHub

  • villager_voices Dorfbewohner reagieren mit Stimme und Text auf das, was ihnen passiert. Die erste Fassung entsteht für Fabric.
  • grounded_villages Dörfer entstehen auf einer ebenen, trockenen Fläche, in Größen vom Weiler bis zur Stadt. Geplant für Fabric, NeoForge und Forge, Minecraft 1.20.1 bis 26.2.
  • Create Fly add-ons Kleine Erweiterungen für die Mod Create Fly, alle für Minecraft 26.2 und Fabric:
    • Brass Compass Ein Messingkompass, der sich jeden gezeigten Leitstein merkt und auf den gewählten zeigt.
    • Metered Motor Ein Motor, den man beim Werkzeugschmied kauft und der Smaragde verbraucht, je nachdem, wie stark er belastet wird.
    • Synthetic Diamonds Eine Presse, die aus Kohle mit kleiner Chance einen Diamanten macht.
    • Villager Customers Dorfbewohner als Kundschaft.

Beruf

oculavis GmbH (heute maintastic), Aachen

Mitarbeit an einer Plattform für die Fernwartung und drei Unity-Apps

02/2021–07/2023 · Ausbildung, ab 08/2022 Werkstudent · C#, Unity

Bei oculavis habe ich meine Ausbildung fortgesetzt und war im Team Computer Vision und Augmented Reality. Als Auszubildender habe ich am Hauptprodukt mitgearbeitet, einer Plattform für Fernwartung und Remote-Support. Darüber arbeiten Service-Teams und Fachleute gemeinsam an Störungen. Außerdem habe ich zwei White-Label-Unity-Apps für EU-Forschungsprojekte fertiggestellt. Dazu kam eine weitere Unity-App auf Basis einer Vorlage, die Maschinendaten per MQTT anzeigt; sie war das Thema meiner Seminararbeit.

Apodius GmbH (Hexagon Manufacturing Intelligence), Aachen

Benutzeroberflächen in WPF und interne Forschungsprojekte mit OpenCV, in C#

08/2019–01/2021 · Ausbildung · C#, WPF, OpenCV

In der Ausbildung habe ich an der Hauptanwendung mitgearbeitet, an ihren Benutzeroberflächen mit WPF in C#. In internen Forschungsprojekten mit OpenCV habe ich einen Siemensstern im Kamerabild erkannt und daraus die Fokusqualität berechnet. Außerdem habe ich das Focus Peaking von Sony-Kameras selbst umgesetzt, das scharfe Kanten im Bild farbig markiert. Kamerasysteme habe ich mit aufgebaut und installiert; getestet habe ich an einem produktionsnahen System im Testlabor.

Aus dem Studium

App für den digitalen Zwilling eines Waldes

Flutter-App, die Fotos mit dem digitalen Zwilling eines Waldes verbindet

2020/2021 · Gruppenprojekt im Studium, FH Aachen · mein Teil: vor allem das Frontend · Flutter

Für ein Pflichtprojekt im Studium haben wir als Gruppe eine Flutter-App gebaut. Angebunden war sie an das System des Instituts für Mensch-Maschine-Interaktion (MMI) der RWTH Aachen. Das Institut forschte im Umfeld des Forschungsprojekts „Kompetenzzentrum Wald und Holz 4.0“ an digitalen Zwillingen von Wäldern. Man lädt ein Foto hoch, unser Backend wertet das Bild aus und fragt den Digital-Twin-Server an. Die App zeigt dann Informationen zu einzelnen Bäumen, zum Personal oder zu Maschinen. Flutter hatten wir selbst gewählt; mein Teil war vor allem das Frontend. Gezeigt haben wir die App auf einer Software-Schau der Hochschule.

Seminararbeit: MQTT in Unity-Apps

Maschinendaten per MQTT in eine Unity-App holen

12/2021 · FH Aachen · C#, Unity, MQTTnet · Code-Auszüge auf GitHub

Meine Seminararbeit „Einbindung einer MQTT Schnittstelle in Unity-Apps zur erweiterten Darstellung von Maschineninformationen“ zeigt, wie eine Unity-App über MQTT Informationen zu Maschinen empfängt und darstellt. Die Code-Auszüge in C# sind öffentlich: eine Client-Schnittstelle, ein Client auf Basis von MQTTnet und ein Connection-Manager. Das Thema kam aus meiner Arbeit bei oculavis, aus der Unity-App für Maschinendaten.

Weitere Erfahrung

  • Ethereum-Bibliotheken in Dart. Bibliotheken, mit denen Dart- und Flutter-Apps mit Ethereum arbeiten. Eine davon erzeugt Dart-Code aus der Schnittstelle eines Smart Contracts.
  • Smart-Contract-Auftrag für ein US-Start-up. Von der Anforderungsaufnahme bis zur Übergabe umgesetzt, die Abstimmung lief auf Englisch.

Wie es angefangen hat

Stundenplan-App für mein Android-Handy

Schulzeit · Java, XML-Layouts, etwas Kotlin, SQLite

Als Schüler habe ich mir Java selbst beigebracht und eine Stundenplan-App für mein eigenes Handy gebaut, die ich in der Schule genutzt habe. Sie in Flutter neu zu bauen, war der Anlass, Flutter auszuprobieren. Umgesetzt habe ich das nie.