Derzeit freue ich mich auf spannende Angebote für Projekte im Raum Frankfurt am Main, Stuttgart, Mannheim und Karlsruhe. Auch Projekte in anderen Regionen sind bei entsprechend überwiegendem Remote-Anteil eine interessante Option.
Bereits mit ca 10 Jahren habe ich die ersten Erfahrungen im Bereich Programmierung gemacht und später zu
meinem Beruf. Dadurch verfüge ich über rund 30 Jahre Erfahrung im Bereich Programmierung und über ein sehr
weit gefächertes Spektrum.
Ich habe mich in den letzten Jahren auf die Entwicklung mit Javascript/Typescript spezialisiert.
Hierbei node.js im Backend und React.js und Angular im Frontend.
Entsprechend zugehörige Techniken wie HTML, CSS, Less/Sass und der Umgang mit entsprechenden Tools wie Git,
Jira, Docker etc gehören zum täglichen Umfeld.
In einem agilen Umfeld fühle ich mich am Wohlsten.
Implementierung von Microservices in Typescript in einer Cloud basierenden Infrastruktur zur Generierung von verschiedenen Dokumenten und Ausgabeformaten.
Hierbei wurde RabbitMQ zur Kommunikation zwischen einzelnen Microservices genutzt und MSSql als
Datenspeicher.
Die Herausforderung hierbei lag insbesondere in der Notwendigkeit Millionen von Dokumentaufträgen zu
Handhaben bei begrenzten Ressourcen.
Aufträge zur Dokumenterzeugung wurden gebündelt und an einen externen Service via Rest-API
übertragen.
Der externe Service wiederum konnte nur eine begrenzte Anzahl von Aufträgen gleichzeitig verarbeiten und
deren Abarbeitung war sehr zeitintensiv, sodass hier entsprechende Warteschleifen-Mechanismen nötig
wurden, welche auch über mehrere Service-Instanzen (parallele Verarbeitung) zuverlässig funktionieren.
Weiterhin mussten generierte Dokumente entsprechend weiterverarbeitet werden und an diverse weitere externe Dienste geliefert werden.
Das Projekt musste leider Aufgrund des EuGH Urteils zur deutschen PKW Maut vorzeitig durch den Auftraggeber beendet werden.
Durch die Erfahrungen in vorangegangen Projekten bei der Node.js Anbindung an den Eventstore (eventstore.org) entstand die Idee eine eigene Client-Library zu erstellen, die den modernen Bedürfnissen entspricht.
Ein besonderes Augenmerk wurde hier auf Test Driven Development, Clean Code und Dokumentation
gelegt.
Hierdurch ist es den Nutzern möglich, selbst einfach zu verstehenden Quellcode in eigenen Anwendungen zu
erstellen.
Dazu tragen nicht nur die Verwendung und Bereitstellung von async/await Funktionen bei, sondern auch die
Benennung von Methoden und (Alias-)Funktionen.
Die Umsetzung erfolgte in Typescript um zum einen die Vorteile von Typisierung nutzen zu können und zum Anderen um eine einfache Nutzung sowohl in plain Javascript als auch Typescript zu gewährleisten.
Um den Prozess möglichst weit zu automatisieren, wurde eine CI/CD-Pipeline aufgebaut, welche automatisch Tests in entsprechenden Docker Umgebungen laufen lässt, Code-Coverage erstellt und an Drittanbieter sendet und bei Bedarf die Client-Library erstellt und an das NPM Repository überträgt.
Der Quellcode und die Dokumentation ist frei verfügbar unter:
https://github.com/sebastianwessel/eventstore-ts-client
Umsetzung der zentralen Funktionen des Gesamtsystems von der Konzeption über die Implementierung bis hin zum automatisierten Testen.
Für die Backend-Entwicklung wurden Node.js basierende microservices innerhalb einer auf Microsoft Azure basierenden Cloud Infrastruktur umgesetzt. Hiebei spielten insbesondere folgende Dinge eine herausstechende Rolle:
Die Anbindung an externe Loyalty Anbieter via API und Web-Scraping zum Datenaustausch und die die Bereitstellung von Daten via REST-API für mobile Clients. Weiterhin basiert die komplette Architektur auf CQRS/Event-Driven-Design und es wurde als Datenspeicher keine klassische Datenbank, sondern Eventstore genutzt.
Da es sich bei diesem Projekt um ein Projekt innerhalb der Finanzbranche und um sensitive Nutzerdaten handelt, wurde entsprechend den Themen Security, Audit, Testing etc. ein überdurchschnittlich hoher Stellenwert gegeben.
Bei diesem Projekt wurde der komplette Prozess von der Grundidee bis hin zum öffentlich verfügbaren Produkt mit begleitet und mit gestaltet.
Erstellung einer Software zum Testen von Maut-Terminals, welche für Toll Collect durch die Firma Krauth technology gebaut werden.
Hierbei geht es im Speziellen um die Kommunikation einzelner Komponenten innerhalb des Terminals (Drucker,
Bildschirm, Karten-Bezahlsystem
etc.) via Dbus und um die Kommunikation zum Backend (Toll Collect) via SNMP eine entscheidende Rolle um
die
entsprechenden Nachweispflichten gegenüber Toll Collect und dem Gesetzgeber erfüllen zu können.
Dabei spielen neben der eigentlichen Umsetzung des Test-Tools auch die Erarbeitung von Testabläufen
und Test
direkt an den Terminals eine entscheidende Rolle. Dies Alles erfolgt in enger Zusammenarbeit mit dem
Projektmanagement
und den diversen Entwicklern und Entwicklerfirmen.
Im weiteren Projektverlauf wurde der Aufgabenbereich auf das komplette Terminal-System erweitert und deckt sowohl Tests einzelner Komponenten als auch des Gesamtsystems ab. Weiterhin erstreckt sich der Aufgabenbereich von Softwaretests, über Fehlersuche & Fehleranalyse bis hin zur Hilfe bei der Integration einzelner Terminals in das Gesamtsystem Toll Collect.
Bei diesem Projekt ging es um Dokumentation, Rückverfolgbarkeit (Stichwort ISO-Zertifizierung etc) und Echtzeit-Standort-Informationen im Bereich Logistik & Transportwesen. Dabei wurde das komplette Frontend auf Bedienung über einen Browser ausgelegt, so dass entsprechende Eingabemasken, Dashboards, Auswertungen und Übersichten etc. durch Umsetzung mittels JavaScript, HTML und CSS auf allen gängigen Eingabegeräten verfügbar sind.
Hier wurden insbesondere Leistungsanforderungen in Bezug auf Verfügbarkeit, Skalierbarkeit und Performance umgesetzt um auch in Zukunft wettbewerbsfähig zu bleiben.
Entsprechende Userinterfaces für Administration, Einstellungen sowie die graphische Darstellung in diversen Dashboards und die Aufbereitung der Daten zur leichten Verständlichkeit und Übersicht wurden in JavaScript, HTML und CSS (LESS) umgesetzt.
Ein Portal mit internationaler Ausrichtung realisiert mit PHP & MySQL bei dem es um mehrere Hauptfunktionen ging:
Entsprechende Userinterfaces für die Verwaltung, Auswertung und Dashboards zur Übersicht wurden für die Verwendung im Browser konzipiert und umgesetzt
Diverse kleinere Projekte, meist mit dem Hauptaugenmerk auf PHP.
Dies geschah oft in enger Zusammenarbeit mit z.B. Webdesignern, Vertrieb/Marketing, Geschäftsführung,
Entwicklern und Endanwendern
Während meiner Ausbildung habe ich an der Buchungs-Webseite der Autovermietung AVIS mitgearbeitet und hier insbesondere den Stations-Finder und die Anfahrts-Routenplanung umgesetzt.
Die Umsetzung erfolgte auf Basis von Lotus Domino in Kombination mit Java und einem Datenaustausch via XML.
Frontendseitig wurde entsprechend dem damaligen Stand der Möglichkeiten JavaScript, HTML und CSS verwendet.
Während meiner Ausbildung habe ich eine Supportlösung speziell für die Deutsche Flugsicherung in Langen entwickelt, damit dort die internen Prozessabläufe entsprechend klar gegliedert, nachvollziehbar und dokumentiert werden konnten.
Die Umsetzung erfolgte auf Basis von Lotus Domino.
Frontendseitig wurde entsprechend dem damaligen Stand der Möglichkeiten JavaScript, HTML und CSS verwendet.
Nach dem Abitur und der Wehrpflicht, habe ich ein Studium an der FH Leipzig begonnen, welches leider nicht meine Vorstellungen erfüllen konnte.
Daher habe ich eine Ausbildungsstelle als Fachinformatiker für Anwendungsentwicklung angenommen. Diese Entscheidung habe ich nie bereut.
Diese Liste ist nicht vollständig. Es sind nur die in letzter Zeit am meisten genutzten Dinge aufgezählt.
Node.js als Backend-Plattform bietet ideale Vorraussetzungen für:
Im Frontend bietet die Kombination aus Browser und modernen HTML/CSS/JavaScript-Techniken die vielfältige
Möglichkeiten.
Von reinen Webseiten über komplexe Webanwendungen bis hin zu plattformübergreifenden Desktop-Anwendungen sind
die Anwendungsgebiete breit gefächert.
Besonders die Möglichkeit für verschiedene Endgeräte mit unterschiedlichen Eingabevarianten eine einheitliche
Basis unabhängig vom zugrunde liegenden Betriebssystem zu schaffen ist ideal für die Bedürfnisse der heutigen
Zeit.
Auch der wichtige Aspekt der Nachhaltigkeit in Bezug auf Code-Pflege und Langzeit-Kompatibilität ist eine der
Stärken von browserbasierten Anwendungen.
In Kombination mit Verfahren wie Living-Style-Guides, LESS/SASS können auch hohe Anforderungen in den
Bereichen CI, UI und UX effizient und übersichtlich abgedeckt werden.
Mit Framworks wie React, Angular oder Vue lassen sich viele Teile von Anwendungsfunktionen clientseitig
effizient umsetzen.
Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
Diese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. (''Google''). Google Analytics verwendet sog. ''Cookies'', Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglicht. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Website (einschließlich Ihrer IP-Adresse) wird an einen Server von Google in den USA übertragen und dort gespeichert. Google wird diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten für die Websitebetreiber zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen zu erbringen. Auch wird Google diese Informationen gegebenenfalls an Dritte übertragen, sofern dies gesetzlich vorgeschrieben oder soweit Dritte diese Daten im Auftrag von Google verarbeiten. Google wird in keinem Fall Ihre IP-Adresse mit anderen Daten der Google in Verbindung bringen. Sie können die Installation der Cookies durch eine entsprechende Einstellung Ihrer Browser Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website voll umfänglich nutzen können. Durch die Nutzung dieser Website erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch Google in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck einverstanden.