Das wohl vielseitigste Projekt zielte darauf, ein Entwickler-Team beim Kunden selbst aufzubauen. Im Zuge dessen dufte ich viele Teilprojekte in einem sehr breitgefächerten Feld realisieren.
Mit der Zeit hatte das Unternehmen auch eigene Entwickler. Diese wurden in die verwendeten Technologien eingeführt, sodass diese ihre Projekte selbstständig umsetzen können. In dieser Zeit blieb ich jederzeit Anlaufstelle für sämtliche Fragen. Hier eine kleine Auswahl an Projekten.
Bislang wird alles on-premise gehostet, dafür werden Virtuelle Maschinen auf Basis von Linux zur Verfügung gestellt. Dort wurde dann stets Docker installiert und entsprechende Partitionen gemountet.
Aufgrund meines Backgrounds als Systemadministrator und meiner Nähe zum Team wusste ich welche Angaben die IT benötigt, um so Sachen wie Portweiterleitungen in der Firewall einzurichten. Daher habe ich auch viel von der Kommunikation übernommen.
Das Dashboard sollte dazu dienen, den Status verschiedener Entitäten anzuzeigen. Nach einiger Zeit war es notwenig, für weitere Kunden eine weitere Instanz des Dashboards aufzusetzen. Anfangs habe ich das mit den DNS-Einträgen selbst übernommen, bevor das dann jemand im Team machen konnte.
Bei diesem Teilprojekt ging es darum, Daten, die via MQTT in einem JSON-Format daherkommen zu empfangen und auf Basis dieser Messages via RS485 an einen Verkehrsrechner zu schicken.
Aus den JSON-Messages, die via MQTT emfangen werden, werden die relevanten Daten extrahiert und für Langzeitanalysen in einer Datenbank gespeichert. Andere Events werden via OpenVPN und Websockets abgeholt.
Aktuell verarbeitet die Datenbank mehr als 800.000 Inserts in der Stunde.
Hier wurde ein webbasiertes Befragungstool implementiert, das es ermöglicht, Umfragen zu gestalten, die Geobasierte Daten enthalten kann. Dabei ist es unter Anderem erforderlich, Shape-Files upzuloaden und im GeoJSON-Format an ein User-Interface auf Openlayer-Basis auszugeben.
Diese Komponente wurde entwickelt um Verkehrsströme anhand des Verkehrskommen grafisch darzustellen. Die Komponente wurde vollständig in Javascript implementiert und erforderte vor allem jede Menge geometrischer Berechnungen inklusive Vektorrechnung, etc.
In diesem Projekt half ich einer universitären Forschungsgruppe zunächst, die Projektwebseite online zu bringen. Seither hoste ich diese auch.
Weiters habe ich mich darum bemüht, Daten die die Forschungsgruppe in R erarbeitet hatten und die auf verschiedene Files aufgeteilt waren in eine Postgres-Datenbank zusammenzufassen.
Im Zuge der Corona-Pandemie kam bei einem potentiellen Kunden eine Projekt-Idee auf, die stark auf Video-Streaming aufbaut. Bei den Projektbesprechungen durfte ich viel vom Fachwissen in Form von Beratung einbringen, darunter Internet, Routing, Switching, WebRTC, etc.
Um die Realisierbarkeit unter Beweis zu stellen habe ich dabei auch eine Industriekamera, für die es nur eine C++-Bibliothek gibt in eine Gstreamer-Pipeline gebracht, um das Video in ein Video-Konferenzsystem einzubetten.
Weil Beispielcode für eine Gstreamer-Pipeline vor allem in C verfügbar war, habe ich das auch in der Programmiersprache implementiert. Die Verbindungsdaten kamen via Websocket im JSON-Format daher, weshalb ich einen Python-Wrapper für die Gstreamer-Pipeline implementiert habe.
Ein vorhergehendes Projekt wurde um die Funktion von Peer To Peer erweitert, sodass dieses auch remote verwendbar wurde. Dabei kam WebRTC zum Einsatz, das auch in Videokonferenzsystemen zum Einsatz kommt. Peer To Peer ist bei vielen Netzwerken herausfordernd, aufgrund der Tatsache dass fast überall NAT zum Einsatz kommt. Hierzu kamen STUN und TURN zum Einsatz.
Abbildung des Geschäftsprozesses einer Kundin in einer Webapplikation. Dabei wurden auch Sprachaufnamen im Browser angefertigt, diese komprimiert und auf einen Server hinaufgeladen.
Als Beschäftigung neben dem Studium habe ich für ein österreichisches Computergeschäft gearbeitet. Im Rahmen dessen durfte ich viele Verkaufs- und v.A. Beratungsgespräche führen, aber auch jede Menge Rechner selbst konfigurieren zusammenbauen und reparieren – Laptops inklusive.
Bei dieser Anstellung konnte ich vorher angeeignetes Wissen gut umsetzen um die Server- und Netzwerkinfrastruktur des Unternehmens grundlegend zu erneuern.
Weiter fiel auch das Umsetzen einzelner Webprojekte in mein Aufgabengebiet.
Im Rahmen einer Anstellung habe ich dort als Systemadministrator gearbeitet und zunächst das Werk meines Vorgängers übernommen und dann – auch mit seiner Hilfe – entsprechend weiterentwickelt.
In dem eher kleinen Unternehmen war ich auch der Ansprechpartner dafür, weiter Arbeitsplatzrechner einzukaufen, zu installieren und so einzurichten, dass die Mitarbeiter damit arbeiten können.
Abgesehen davon fiel auch die Verwaltung des Netzwerkes und der Server in meinen Aufgabenbereich.
Dieses Unternehmen hatte den Auftrag für ein weltweit agierendes Unternehmen sowohl Asset-Management als auch On-Site-Support in Österreich zu übernehmen. So war ich quasi dauerhaft an einem der Standorte des Unternehmens vor Ort. Aufgabe hier war die Installation und Reparatur von Rechnern im Enterprise-Umfeld, Kundenkontakt im Rahmen des Asset-Managments, Fehlerbehebung.
Bei dieser Anstellung war es v.A. meine Aufgabe, einen Datenlogger anzubinden.
Dieser zeichnete einerseits Daten auf einer Speicherkarte auf. Diese Daten wurden mittels C++ ausgelesen. Andererseits lieferte dieser Datenlogger auch Live-Daten via RS232. Die Anbindung dieser Schnittstelle habe ich ebenfalls in C/C++ implementiert.
Beides wurde mittels C-Binding in einem C# Projekt eingebunden, das auch eine grafische Oberfläche zur Verfügung stellte. Ziel des Unterfangens war es ein Digitales Bildmessystem für Tunnels zu bauen, in diesem Fall speziell für Bahntunnels.