Die Idee einen Kite selber zu nähen und die Software dazu selber zu entwickeln ist in einem Sommerurlaub in Portugal entstanden. Für meinen Windsurfer war zu wenig Wind, aber die Kiter waren jeden Tag auf dem Wasser. Genug Zeit also die ersten Konzepte zu entwickeln.
Im folgenden Frühjahr habe ich dann mit selber gebautem Kite und Board das Kiten begonnen und die ersten Bahnen in Gold gezogen. Seitdem habe ich Kites und Software immer weiter verbessert und freue mich immer wieder über meine DIY Projekte.
Beruflich mache ich etwas ganz anderes und arbeite in der Softwareentwicklung als Projektleiter und Architekt. Auch dabei gibt es sehr viele spannende Herausforderungen und interessante Technologien.
Hier eine Auzug der Technologien die ich aktuell gerne verwende:
Meteor für Onlineanwendungen
Dynamische Anwendung für web und mobile devices lassen sich schnell und einfach mit Meteor entwickeln.
Als moderne JavaScript Plattform bringt Meteor 1.3 einen sehr umfangreichen Technologiestack mit Datenbank, Server, Client etc. mit und lässt sich über npm flexibel erweitern.
React für WebUIs
Moderne UIs werden schnell sehr komplex. Mit React können sie sehr gut in einzelne Komponenten aufgeteilt werden, die unabhängig voneinander
entwickelt und getestet werden. Und wenn sich dann noch das UI automatisch aktualisiert sobald sich Daten auf dem Server ändern kommt beim
Anwender immer wieder der „Wow“ Effekt auf.
Selenium für Testautomatisierung
Für automatisierte Entwicklungs- und Deploymentprozesse ist eine Testautomatisierung unersetzlich. Mit Selenium lassen sich sowohl Webseiten testen als auch ganze Anwendungen
automatisiert initialisieren, überprüfen und konfigurieren. Eine tiefe Integration in den Entwicklungsprozess ist dafür allerdings Voraussetzung.
Python für Datenkonvertierungen
Daten sind die Basis fast aller Anwendungen. Daher wird es immer wichtiger diese in unterschiedlichen Formaten bereit zu stellen. In der Regel sind dazu
Konvertierungen erforderlich die entweder dynamisch als Microservices eingebunden werden oder als einmaliger Prozess durchgeführt werden.
Egal ob die Anbindung des ERP-Systems an einen Onlineshop oder die Aufbereitung der Daten für die Visualisierung als dynamische Grafik im Browser in Echtzeit. Die Basis für jede Datenkonvertierung ist ein gutes Verständnis der Strukturen und eine
vollständige Testabdeckung der Konvertierungen.
Anwendungen erweitern über APIs
Viele moderne Anwendungen bieten Schnittstellen (APIs) an mit denen der Funktionsumfang erweitert und Arbeitsabläufe automatisiert werden können.
Auf dieser Basis ist auch meine Kite Software WingCalc aufgebaut. Einen Kite von Hand mit Blender zu modellieren dauert mehrere Stunden. Jede Änderung an den Parametern
erfordert eine neue Modellierung. Über die API wird der Kite innerhalb von Sekunden erzeugt und kann beliebig oft geändert werden.
So lassen sich auch in den meisten CAD Systemen Abeitsabläufe automatisieren und Objekte erzeugen die ansonsten mühsam von Hand erstellt werden müssen. Der Zeitgewinn ist enorm.
Microservices
Viele Aufgaben lassen sich in kleine Komponenten verpacken. Das vereinfacht die Weiterentwicklung, reduziert die Komplexität und verhindert dass große Monolithen entstehen. Ein weiterer Vorteil ist, dass unterschiedlichen Technologien parallel eingesetzt werden können.
Docker
Die Zeiten komplizierte Deployments sind zum Glück vorbei. Mit Docker lassen sich Anwendungen automatisiert deployen und aktualisieren. Reproduzierbar und nachvollziehbar mit der vollständigen Dokumentation im Git-Repository.