Meine Arbeit
Ich bin seit 2014 in der IT-Branche tätig. Angefangen als Systemadministrator hat es mich nach meiner Ausbildung in die Softwareentwicklung verschlagen. Ich habe großes Interesse an den Grundlegenden Webtechnologien HTML, CSS und JavaScript gefunden.
Bei verschiedenen Arbeitgebern konnte ich dann ein solides Fundament an Wissen in der Webentwicklung aufbauen. Mir ist es immer wichtig gewesen, den ganzheitlichen Prozess der Webentwicklung zu verstehen, um komplette Projekte und Features selbstständig umsetzen zu können. Dennoch habe ich meist vorwiegend die Rolle des Frontend Entwicklers eingenommen. Daher sehe ich mich selbst als Generalisten mit einer Spezialisierung in der Frontend Entwicklung.
Seit 2018 bin ich nun als selbstständiger full-stack Webentwickler tätig. Die Gründe hierfür sind vielfältig. Einerseits macht es mir Spaß, mich in neue Projekte und Technologien einzuarbeiten. Andererseits setze ich für meine Kunden gerne komplette Projekte mit einem Technologie-Stack um, der zu den Anforderungen des Projektes passt und sich über Zeit bewährt hat. Zudem kann ich mit dieser Arbeitsweise Verantwortung für meine Arbeit übernehmen, wie es sonst nicht möglich wäre.
Über die Jahre meiner Selbstständigkeit hatte ich die Möglichkeit mit einer Vielzahl verschiedener Kunden zusammenzuarbeiten. Die Projekte reichen von einer einfachen Webseite zu der fortlaufenden Wartung und Weiterentwicklung einer der führenden Webapplikationen in der Automobilbranche.
- Webapplikationen
- Mobile-App-Entwicklung
- Single-Page-Applikationen
- Webseiten
- Frontend-Entwicklung
- Backend-Entwicklung
- Infrastruktur
Referenzen
SNAPS
Bei diesem Projekt ging es darum, eine Social-Media Platform zu erstellen, bei der Interaktionen mit Posts und Kommentaren zu Transaktionen mittels der Kryptowährung "Bitcoin SV" führen, wodurch der Ersteller des Posts oder Kommentars profitiert. Die Iterationen waren sehr kurz und es gab häufige pivots. Es ging also hier hauptsächlich um die Suche nach einem Product-Market-Fit außerhalb der "BSV" Szene. Technologisch gesehen hat mich das Projekt in das Framework Ruby on Rails eingeführt, welches ich seitdem gerne für neue Projekte verwende sofern es für die Anforderungen passend ist. Zum Webauftritt, der für Desktop und mobile Browser optimiert wurde kam zudem noch eine mobile Applikation. Diese mobile Applikation haben wir getreu dem Ersteller von Rails mit einem Webview/Nativen Hybriden mittels React Native erstellt. Wir hatten somit durch React Native die Möglichkeit, native Features wie z.B. Push notifications, haptisches Feedback und komplett native Ansichten zu erstellen. Der eigentliche Inhalt wurde jedoch durch eine Webview angezeigt, die wie ein Browser fungiert. Das hat es uns ermöglicht, neue Features ohne großen Aufwand zu implementieren.
Abfahrtsmonitor
Der Kunde wollte eine mandantenfähige Webapplikation, die es ermöglicht, einen Abfahrtsmonitor für einen Bahnhof in dem Design des Mandanten zu konfigurieren. Die Deutsche Bahn stellt eine Programmierschnittstelle zur Verfügung mit der sich für eine Station die planmäßigen Abfahrten inklusive der eintreffenden Änderungen abfragen lassen. Die entwickelte Applikation benutzt diese Programmierschnittstelle, um die Daten abzufragen und dann temporär in einer Datenbank zu speichern. Es können beliebig viele Mandanten bzw. Kunden erstellt werden mit unterschiedlichen Bahnhöfen, Farben, Icons und Texten. Das Projekt wurde mit Nest.js/Typescript im Backend und mit Angular im Frontend umgesetzt und auf einem CentOS Server gehostet.
Automated Smoketest System
Ziel des Projektes war es, das manuelle Testen aller Mandanten einer Webapplikation in einer bestimmten Umgebung (QA/Produktion) durch ein automatisiertes Testsystem zu ersetzen. Dabei gab es einige Herausforderungen, denn die Konfiguration der Mandanten weisen zum Teil massive Unterschiede auf und ändern sich häufig. Die Lösung zur Problemstellung war, die automatisierten Cypress tests in einer Art und Weise zu entwickeln, sodass diese dynamisch anhand einer aktuellen Mandanten-Konfigurationsdatei (JSON) aufgebaut werden. Der aktuelle Stand dieser Konfigurationsdatei wird jedes Mal vor dem Ausführen der Tests von einem Azure Blob Storage mittels eines Node.js scripts heruntergeladen und bearbeitet. Aktuelle Zugangsdaten werden beim Ausführen der Tests von Azure Keyvault abgefragt und dann als Umgebungsvariablen zur Verfügung gestellt, damit diese nicht sichtbar sind. Dieser Lösungsweg hat den Vorteil, dass durch Änderungen an der Mandantenkonfiguration oder der Passwörter kein erneuter deploy notwendig ist. Stattdessen passen sich die Tests automatisch an Änderungen der Konfiguration an und Passwörter müssen lediglich in einem Webinterface aktualisiert werden.
Next generation UI POC
Die Angular Projekte des Kunden wurden vor einigen Jahren ins Leben gerufen und haben sich seither zu komplizierten mandantenfähigen Applikationen entwickelt, deren Codebasen viel Komplexität und duplizierten Code beinhalten. Die Aufgabe war es, einen proof of concept (POC) zu entwickeln, wie die nächste Generation der user interfaces (UIs) aussehen können. Hierfür haben wir aktuelle Technologien wie Tailwind CSS, Webpack Module Federation und NX verwendet. Durch die Verwendung dieser Technologien, können ganze Module dank Webpack Module Federation unabhängig deployed und von host Applikationen konsumiert werden. Stichwort Microfrontends. Zusätzlich ist es auch möglich, einzelne Komponenten wie z.B. das Applikationsmenü zu teilen. Somit muss nicht jede Applikation der Suite die Menülogik inklusive API Anbindung reimplementieren.