05/2018 ? 07/2019
Freiberufliche Anstellung als Entwickler / Software Engineer bei LOTTO24 AG
Technologien: Spring, JaxB, Hibernate, XML/XSD, JMS (1.0/2.0), Swing, JMX. JNI, Java Bytecode Modifikation, Camel, Kafka, Reflections, Kubernetes, Docker Swarm, Ingress, Helm, Hazelcast (Cache Replication / Hibernate L2), Nginx, Discoveries, Failover, Chainbreaker
Eine bestehende, sehr komplexe Software-Applikation wurde technisch weiterentwickelt und im agilen Umfeld gearbeitet. Die bestehende teilweise monolithische Applikation wurde Stück für Stück modularisiert und diese Verbesserungen in einem hochfrequenten Release-Zyklus live gestellt. Ich habe zudem neue Micro Services primär auf Spring-Boot2 Basis auf Java bzw. Kotlin und Go erstellt und teilweise mit Eureka bzw K8s Ingress skalierbar realisiert. Das ältere Frontend auf Basis von Spring 4 MVC mit JSP und Angular-JS wurde zudem in einem Projekt mit Angular 6 neu erstellt und per Ionic ebenfalls für die App Releases genutzt. Die alte Datenbank Oracle 12 ist durch die Micro Service-Extraktion Stück für Stück auf PostgreSQL migriert worden. Services wurden multiinstanzfähig gemacht. Weiterhin habe ich auf Basis von Nginx Loadbalancern und einem Set von Upstream-Servern eine Lösung für einen unterbrechungsfreien Betrieb auch bei Releases verschiedener Versionen mit Failover und CDN (Akamai als Live und Cloudflare) Support entwickelt. Auf Basis von TensorFlow und parallel DL4J habe ich komplett eine neue Lösung entwickelt, die basierend zum einen die Email-Kommunikation mit Kunden analysiert und bei entsprechenden Treffern bestimmte Aktionen wie Spielquittungszusendungen oder Informationen automatisiert erstellt. Zudem wurden die Anfragen vorbereitet und kategorisiert. Letztendlich konnte so der Aufwand massiv reduziert werden. Parallel habe ich per Java-Bridge eine Anbindung zum Fronend erzeugt, wodurch ebenfalls per ML automatisiert Teaser oder das Frontend angepasst wurde. In 12/2018 wurde das Unternehmen übernommen 50% der internen Mitarbeiter zu 07/2019 abgebaut. - Programmiersprachen: Java8/9, PLSQL, SQL, Kotlin, XML/XSD, JavaScript, Html, JSP, TypeScript ( NG / Angular6 ) auf Windows, Linux (CentOs6/7/Ubuntu/Mint) Technologien: Spring, JaxB, Hibernate, XML/XSD, JMS (1.0/2.0), Swing, JMX. JNI, Java Bytecode Modifikation, Camel, Kafka, Reflections, Kubernetes, Docker Swarm, Ingress, Helm, Hazelcast (Cache Replication / Hibernate L2), Nginx, Discoveries, Failover, Chainbreaker
09/2014 ? 05/2018
Freiberufliche Anstellung als Entwickler / Software Engineer bei der deutschen Lufthansa Industry Solutions
Technologien: Spring, JaxB, Hibernate, XML/XSD, JMS (1.0/2.0), Swing, JMX. JNI, Java Bytecode Modifikation, Camel, Kafka, Reflections, Kubernetes, Docker Swarm, Ingress, Helm, Hazelcast (Cache Replication / Hibernate L2), Nginx, Discoveries, Failover, Chainbreaker
Softwareengineer & Softwareentwickler / LEAD Developer Schwerpunkte: Der beschäftigende Bereich entwickelt Multimedia Entertainmentsysteme, welche wahlweise auf bestehender Hardware oder auf selbstentwickelter Hardware mit integriertem WLAN und 4Kanal-Mobil-4G Interface laufen können bzw. horizontal und vertikal skalierbare Cruise & Hospitality-Entertainmentsysteme. Im Rahmen dieses Projektes umfasste meine Aufgabe anfänglich mehrere Module, Release-Planung, die operative Projektplanung und -leitung im Bereich der Entwicklung, Spezifizierung und Umsetzung / Entwicklung bis hin zur Auslieferung. Diese Module wurde von der Planung über die Erstellung bis zum Test und der QA Phase von meiner Person durchgeführt bzw. geleitet. Parallel dazu wurden kleinere Aufgaben im Umfang von ja ca. 1-2 Arbeitswochen in Teams mit 2-5 Personen realisiert. Im Laufe der Zeit wurde mir die Rolle als Lead-Developer gegeben. - Als Erstes entwickelte ich eine Library, die auf Basis eines abstrakten Persistenz Managers beliebige Datenbankobjektstrukturen in konfigurierbare Datenformate (JSON, XML) und diese Datenformate wieder zurück in Datenbankobjekte konvertieren konnte. Die Library konnte beliebige Datenbankreferenzen wie OneToOne, OneToMany und ManyToOne handhaben. Dabei wurden die Stati ?Touch?, ?Update?, ?Create? und ?Delete? von Beliebigen im Datenbankcluster verarbeiteten Datensätzen verwaltet. Intern arbeitete diese Library zusätzlich mit einer Statemachine, welche Implementierungen für objektbezogene Aufgaben ermöglichte. Ziel dieser Library war die Replikation von Datensätzen, die erstellt, geändert oder gelöscht wurden und dabei von einer beliebigen Anzahl von Systemen zu einem Server oder umgekehrt per JaxB XML / JSON per JMS transferiert wurden. - Ein bestehendes DRM System wurde komplett überarbeitet und upgedatet. Auf Basis von PlayReady DRM komplett geschützte Filme werden auf sicheren Transportwegen per Aspera zu einem Streaming Server transportiert. Auf diesen Servern werden diese Filme inkl. Ihrer Smooth Streaming-Segmente kontrolliert automatisiert eingespielt. Auf Basis von PlayReady DRM, CMLAOMA und Widevine werden die PlayReady geschützten Filme für alle Endgeräte ausgespielt (BROWSER, TV-SmartTV, Non-Smart TV durch secure Multicast Playback per TransportStream, Android, iOS, MacOS, AndroidTV, Windows Mobile). Der Content war dabei komplett gemanagt und per POS-System erfasst und eingebettet. Die Wiedergabe wurde automatisiert geprüft durch Codecprüfungen und ein Key-Management für KID Readout aus den Dateien des PlayReady geschützten Contents. - Codierung auf aufspielen von DRM Schutz per Cloud Media Services in Azure Cloud auf Filme / bzw. Umwandlung in Smooth Streaming. - Ein weiteres Modul beinhaltet die sichere Übertragung von Events und Datenbankänderungen auf Konfigurationsbasis zwischen beliebigen Netzwerken von Servern. Diese Server wurden per eindeutiger ID definiert und waren in der Lage, mit diesem Modul miteinander zu kommunizieren. Dieses Protokoll entwickelte ich auf Basis von JMS und Camel auf ActiveMQ und JMX. Die Verbindungen zwischen den einzelnen Systemen waren per Vorgabe unsicher und konnten jederzeit durch externe Einflüsse unterbrochen werden. Dabei wurden Kommunikationsmethoden wie Events, Push-Messages und Request/Reply-Messages mit je optionalem JMS unabhängigem Acknowledge implementiert. Real handelte es sich um ein System zur gebundenen transaktionale, entfernten & verteilten, konditionalen Datenbankreplikation. Multicast-Kommunikation und konfigurierbare dynamische Trigger, die zur Laufzeit geändert wurden, stellten die Möglichkeit bereit, gezielt Daten mit bestimmen Inhalten und aus gewünschten Tabellen mit Objektstrukturen zu replizieren oder von anderen Modulen per Event Nachrichten an eine Liste von Remotesystemen sicher zu übertragen und somit eine sichere, verteile, selektive Datenreplikation zu ermöglichen. - Ein Framework wurde für ein CDS (Content Distribution System) basierend auf Aspera las Transportmedium entwickelt, welcher Userinterfaces für verschiedene Inhalte Typen (VOD, AOD, etc.) generiert und anzeigt. Das Modul erzeugt auf Basis von zKoss (vergleichbar mit GWT/Vaadin) einen UI-Framework, welcher durch Setzen einer beliebigen JaxB-Klasse aus dieser JaxB Klasse eine komplexe Struktur erstellt, welche alle Felder und deren interne Abhängigkeiten und Datentypen erzeugt und ein abstraktes, performantes Eingabesystem generiert. Dieses ist per Attribute-Definitionen in den implementierten JavaKlassen komplett konfigurierbar und kann die Werte aus instanziierten JaxB-Objekten in diese UI-Forms übertragen oder die Werte aus diesem Userinterface wieder in die instanziierten JaxB Klasse schreiben inkl. voller Validierung und dynamischen Komponenten wie Datenbankinhalten und Listen. Dieser Framework hat das Ziel, als Basis für eine Reihe von implementierenden Frameworks komplexe UI Interfaces mit geringstem Zeitaufwand für wiederkehrende Aufgaben und unterschiedliche Typen der Medien (Audio, Video, PDF, Pages, Games .. ) bereitzustellen. - Ein System zur Übertragung von Content- und Navigationssystemen wurde auf Basis einer State Engine entwickelt, mit welchem beliebige Navigationsbäume aus der Datenbank ausgelesen, analysiert und alle damit verbundenen Dateien in Archive verpackt und per Aspera CDS System auf diverse Systeme verteilt wurden. - Mit Jasper Reports wurden diverse Reports erstellt, um diverse Daten zum Nutzerverhalten sowie BI zu verarbeiten und umzusetzen. Dabei wurden die Daten über das zuvor erwähnte Eventsystem von allen Satelliten-Systemen zu einem Central Server übertragen und dort per JasperReports ausgewertet. Diese Reporte inkl. der Stored Procedures, Jasper Reports, SQL-Skripte und Report-Strukturen wurden von mir entwickelt bzw. übernommen. - Auf PostgreSQL war das bestehende System extrem CPU-lastig. Das gesamte System inkl. Datenbanksettings, Treiber und Implementierung sowie ORM Framework wurden von mir überarbeitet und optimiert, um die CPU Last zu senken. - JBOSS Customer Build. Mit einem Gradle Script wurde ein JBoss aus dem MavenRepro geladen und per Konfiguration ein dedizierter Build für bestimmte Voraussetzungen geschaffen, so dass im Modules Pfad des JBoss Komponenten und Abhängigkeiten als gemanagte Abhängigkeiten als JBoss Module hinterlegt werden. - Aufsetzen einer neuen VM für zukünftige Projekte im Bereich Hospitality & Cruise mit RDBMS (PostgreSQL 9.4 BDR) active/active Replikation mit n Instanzen und einen CustomBuild Wildfly 10.x mit Multiinstanzen erweiterbar. Auf einem DS (Digital Signage) Gerät habe ich per C# eine Applikation generiert, welche per Rest-Calls und JSON-Objekt-Kommunikation auf Basis von .Net 2/2.5 eine Ansteuerung des DS-Gerätes ermöglicht, um diese zu steuern und zu verwalten und Funktionen wie Neustarts, das steuern einer Applikation durch ein zentralisiertes System (DMAC) zu ermöglichen - Des Weiteren wurde Software erstellt und gewartet, welche mobilen Devices und TV, STB und DS Geräte aktiv gewartet, gemanagt und in Relation zu Personen, Positionen und Accounts gesetzt hat. Dabei wurden Themen wie ?Locationbased Tracking? als zentrale Elemente behandelt. - Ein CMS (Magnolia5) wurde über JCR?s direkt in den gemanagten ContentLifeCycle des Entertainment Systems angebunden und eingebettet. Beliebige ContentElemente konnten per Magnolia vom Kunden als Betreiber gemanagt und editiert werden und nach Ablauf des Editierungs-Lifecycle in das Entertainmentumfeld ausgeliefert werden. - Für die Hospitality und Cruise HMS / PMS Systeme von InforHMS, Agilysys Guestware und Fidelio habe ich Schnittstellen auf Basis von XML entworfen und implementiert bzw. weiterentwickelt, um Legacy Systeme mit dem Entertainment System in einer serviceorientierten Struktur zu verbinden und somit Informationen wie Folios oder Bestellungen auf beliebigen Endgeräten wie TV, STB oder Mobile in Kundenrelation anzuzeigen. - Applikationen für TV und Smartphones wurden auf Basis von - Betreuung diverser Projekte von Betrieb bis hin zu Updates/Hotfixes - Planung und Konzeption der Software - Erstellung einer Angular2 Applikation zur schnellen Inventarisierung von Smart TV / DS Units. Zudem wurden bestehendfe monolithische Applikationen hin zu MIcroservices umgebaut und migriert und in ein Kubernetes Umfeld migriert.
Programmiersprachen: Java, Kotlin, PLSQL, SQL, Kotlin, XML/XSD, JavaScript, Html, C#/C++, TypeScript ( NG2 / Angular4 ) auf Windows, Linux (CentOs6/7) , Ubuntu 14+ Technologien: CDI, JaxB, Hibernate, XML/XSD, JMS (1.0/2.0), Serialisierung von Objekten (XML (Dom, Jax, Sax) /JSON), zKoss, Spring, Swing, JMX. JNI, Java Bytecode Modifikation, remote Replikation, Multicast via JMS, Datenbanken aktive Java Trigger / Prozeduren, Injection, JBoss, Camel, Modulgenerierung, Reflections, JEE, EE Beans, JSF 2.1, zKoss, Vaadin, C#, .NET 2.0 / 2.5 / 4 Softwareprodukte: JBoss EAP 6.3,6.4 / Wildfly 8.2, 10.x, PostgreSQL 9.x (BDR), ActiveMQ , Guestware, Fidelio, InforHMS, Infogenesis, Agilysys, Magnolia, Protel, Kubernetes
12/2013 ? 08/2014
Freiberufliche Tätigkeit als Entwickler / Software Engineer bei der HHLA / Hamburg
01/2008 ? 11/2013
Anstellung als Geschäftsführer / Leitender Entwickler
Schwerpunkte: In diesem neu gegründeten Unternehmen baute ich
einen Kundenstamm auf und akquirierte Projekte. Dabei waren wir
hauptsächlich als Subunternehmer für Teilprojekte anderer eBusiness-
Projekte aktiv. Ich leitete verschiedene Projekte als Projektleiter und
Lead-Programmer. Zudem entwickelten wir Apps für Android und iOS
sowie komplexe Frameworks mit Apps <-> Browser <->Serverkommunikation. Das oben aufgeführter eBusiness-Framework
wurde zudem weiterentwickelt und in Projekten umgesetzt. Im
Projektkreis wird aktuell ein MMORPG auf Basis der Unreal3 Engine mit
iOS/Android Unterstützung seit 2009 entwickelt. Dabei wird die
Kundendatenbank und die Anbindung von iOS / Android über den
eBusiness-Framework realisiert und bietet so eine Echtzeit interaktive
MMORPG Funktionalität zur Verfügung, das Events oder Aktionen über
den Browser oder das Handy / Tablett ausgelöst werden können und
Einfluss auf das System der Unreal Engine 3 haben. So können
Spracheingaben oder Bewegungen über das / des Telefon(s) das
gesamte System verändern und eine neuartige, hoch-interaktive
Umwelt für den Nutzer generieren. Dabei wurden die Frontends auf Windows über
die Unrealengine3 mit Flash, und über C diverse DDL eingebunden und mit der Engine kompiliert. Auf iOS und Android ist das Userinterface via Flash und der UE3 generiert worden. Systemmodule wurden über Jaca auf die jeweiligen Systeme compiliert und in die Engines als Module eingebunden, um die Bindung Server-Client umzusetzen.
In eBusiness Projekten wurden vorhandene Systeme an neue CMS
angeschlossen und bestehende Contents übertragen . Diese CMS
basierten auf IBM ECM, MS SPF, Lenya und Magnolia. Unsere Aufgaben
umfassten dabei hauptsächlich die Verbindung bestehender Systeme
an die neuen Systeme und die Bereitstellung von einer Lösung, um
aktuelle Editierungsumgebungen zu verbinden bzw. zusätzliche Quellen
anzubieten.
Neue Spin-offs bzw. Produktwechsel wurden mit den
Standardlösungen InterShop, WCS, dem Commerce Server und
Interchange gestartet. Diese wurden per Java an die bestehenden
Warenwirtschaftssysteme angeschlossen und entsprechende
Abgleiche vorgenommen. In zwei Fällen wurden die Produktdaten
verschiedener Supplier direkt vom Hersteller via XML Feed geladen und
in den Shop abgeglichen. Ja nach Anforderung wurden Verfügbarkeit
und tagesaktuell eingespielt der mit der Bedienoberfläche durch den
Kunden verwaltet. Die Bestellungen wurden via Java ausgelesen und in
die Warenwirtschaft zurück übergeben. Diese Techniken sind je nach
Produkt mit JEE bzw. automatischen Abläufen generiert worden.
Programmiersprachen: C/C++, C#, Java, JSP, Assembler , PL SQL,
UML, JSP, XSLT, UC, PERL
10/2001 ? 01/2008
Anstellung als Geschäftsführer und leitender Programmierer
Schwerpunkte: Nach der Geburt meines ersten Kindes habe ich eine neue Tätigkeit mit begrenzter Arbeitszeit gesucht, um mich mehr der Erziehung widmen zu können. Meine Ausgaben umfassten Akquise und Leitung verschiedener Projekte mit Einsatz eines selbstenwickelten eBusiness-Frameworks auf Basis von Java / XML und RDBMS.
- Softwareentwicklung für CMS eBusiness Framework auf Basis von Java. Basierend auf beliebigen Datenbanken (RDBMS bevorzugt, alle anderen z.B. SQLite , bieten die gleichen Funktionen über eine Abstraktionsschicht. Ein Kernel, der zur Laufzeit Ablauflogiken aus der Datenbank lädt, aktualisiert sich selber ständig durch diese Logiken. Verschiedene Module werden über Interfaces zur Laufzeit dynamisch eingebunden. Diese Module basieren auf Typen und Instanzen. Es wird nur eine Typ einer Anfage in das System mit einer bevorzugten Instance gegeben und dieser Auftrag dann an das entsprechende Modul weitergeleitet. Das System basierte in der Entstehung und auf J2EE und bis heute auf J6EE. Die interne Kommunikation basiert auf XML mit dynamisch generiertem Deskriptor. Das Design und die Verbindung von Aufgaben und Modulen wird per Prozessdesigner realisiert und ist komplett grafisch dargestellt. Eine persistente Datenbank API wurde entwickelt und genutzt. Alternativ sind Hibernate oder JPA nutzbar. Folgende Module wurden erstellt:
CMS mit Sicherheitssystem und Multiserversystem ( Live, Editierung, Abnahme), beliebig erweiterbar
Auf Basis von Java, C++ und C wurden unter Nutzung von Standard-OpenSource Libraries die oben aufgeführten Funktionen erstellt bzw. komplett eigenständig entwickelt. Diese Projekte / Funktionalitäten wurden durch Kundenprojekte angefragt und nach Bedarf entwickelt. Alle Bereiche wurden über UML designed und teilweise entwickelt. Dadurch hat sich das Knowhow in diesen Bereichen erweitert und ist mit Projekten, die bereits realisiert wurden , verfügbar mit Theorie und als Doing Prozess.
- Programmiersprachen: C/C++, Java, JSP, Assembler , PL SQL, UML
01/2000 ? 05/2001
Angestellte Tätigkeit als Projektbereichsleiter und Lead-Programmierer
Schwerpunkte: Bei der Entwicklung eines Produktes auf der Basis von Java war ich über einen Zeitraum von 16 Monaten eigenständig für ein Budget sowie für das Personal verantwortlich. Dieses Projekt wurde in Hamburg und Minsk / Weißrussland umgesetzt. Weitere zwei sehr umfangreiche Projekte wurden von mir unterstützt und technisch spezifiziert. Diverse andere Projekte standen durch einen Umbruch im Personalstamm vor dem aus und mussten weitergeführt bzw. durch KnowHow und Doing unterstützt werden
Details:
01/1997 - 12/1999
Tätigkeit als Programmierer / Consultant / Projektleiter
Schwerpunkte: Akquise und Beratung der Kunden
Von den ersten Gesprächen über eine Evaluierung von Produkten und einer technischen Konzeption bis hin zur Implementierung dieser Produkte im Projektgeschäft war ich in verschiedene Projekte eingebunden bzw. dafür verantwortlich.
Details:
06/1994 - 10/1997
Selbstständigkeit / Akquise von eigenen Projekten für Internet-Auftritte
Schwerpunkte: Freiberufliche Umsetzung von Internetauftritten.
Die Websites wurden teilweise statisch und zum Teil dynamisch erzeugt. Die Techniken umfassten Java, HTML, Javascript und die dazu notwendigen Grafikerstellungen. Serverseitig wurde primär C und Perl eingesetzt.
Details:
05/1994 - 10/1997
Freiberufliche Tätigkeit
Schwerpunkte:
Auf den Plattformen Playstation, Nintendo 64, Jaguar und MS Windows Entwicklung von 3D-Engines, Programmen zur Objektmodellierung und ?umwandlung sowie Grafik, Musik und Spielgestaltung.
Details:
05/1991 - 05/1995
Freiberufliche Tätigkeit
Schwerpunkte: Für Spiel wurde ein Scriptingsystem sowie ein Grafiksystem entwickelt. Zudem an diversen API?s für Spiele gearbeitet und selbstentwickelte Datenbanken programmiert und bearbeitet
Details:
12/1989 - 07/1992
Freiberufliche Tätigkeit
Schwerpunkte: Die Aufgabenbereiche umfassten ein Systemebenendebugging für Anwendungen, eine Programmierung von verschiedensten Programmcodesegmenten für Audio und Video sowie die Erstellung von Mehrschichtmodellen für Programmcode zur Optimierung der Leistungsfähigkeit.
Details:
1995 – 2001
Studium an der Fernunsiversität Hagen ( Diplom II 09/2001) zum Diplom-Informatiker (1,9)
1989 – 1991
Gymnasium EOS Grevesmühlen / MV Abitur mit Abschluss (1,2) 07/1991
1979 – 1989
POS – Mittlere Reife 07/1989 mit Abschluss (1,1) in Schönberg / MV
Formate:
Frameworks, Libraries und SDK's:
Technische Verfahren:
Genutzte Produkte:
Windows
Android
iOS
Linux
MacOS
Solaris
OpenVMS
AmigaOS
BeOS
MS-DOS
OS/390
IBM Großrechner
MIPS Systeme
Sun Server
PC Systeme
3DMAX
MAYA
Motionbuilder
Handel
Automotive
Energieversorgung
Information und Kommunikation
Dienstleistungen
05/2018 ? 07/2019
Freiberufliche Anstellung als Entwickler / Software Engineer bei LOTTO24 AG
Technologien: Spring, JaxB, Hibernate, XML/XSD, JMS (1.0/2.0), Swing, JMX. JNI, Java Bytecode Modifikation, Camel, Kafka, Reflections, Kubernetes, Docker Swarm, Ingress, Helm, Hazelcast (Cache Replication / Hibernate L2), Nginx, Discoveries, Failover, Chainbreaker
Eine bestehende, sehr komplexe Software-Applikation wurde technisch weiterentwickelt und im agilen Umfeld gearbeitet. Die bestehende teilweise monolithische Applikation wurde Stück für Stück modularisiert und diese Verbesserungen in einem hochfrequenten Release-Zyklus live gestellt. Ich habe zudem neue Micro Services primär auf Spring-Boot2 Basis auf Java bzw. Kotlin und Go erstellt und teilweise mit Eureka bzw K8s Ingress skalierbar realisiert. Das ältere Frontend auf Basis von Spring 4 MVC mit JSP und Angular-JS wurde zudem in einem Projekt mit Angular 6 neu erstellt und per Ionic ebenfalls für die App Releases genutzt. Die alte Datenbank Oracle 12 ist durch die Micro Service-Extraktion Stück für Stück auf PostgreSQL migriert worden. Services wurden multiinstanzfähig gemacht. Weiterhin habe ich auf Basis von Nginx Loadbalancern und einem Set von Upstream-Servern eine Lösung für einen unterbrechungsfreien Betrieb auch bei Releases verschiedener Versionen mit Failover und CDN (Akamai als Live und Cloudflare) Support entwickelt. Auf Basis von TensorFlow und parallel DL4J habe ich komplett eine neue Lösung entwickelt, die basierend zum einen die Email-Kommunikation mit Kunden analysiert und bei entsprechenden Treffern bestimmte Aktionen wie Spielquittungszusendungen oder Informationen automatisiert erstellt. Zudem wurden die Anfragen vorbereitet und kategorisiert. Letztendlich konnte so der Aufwand massiv reduziert werden. Parallel habe ich per Java-Bridge eine Anbindung zum Fronend erzeugt, wodurch ebenfalls per ML automatisiert Teaser oder das Frontend angepasst wurde. In 12/2018 wurde das Unternehmen übernommen 50% der internen Mitarbeiter zu 07/2019 abgebaut. - Programmiersprachen: Java8/9, PLSQL, SQL, Kotlin, XML/XSD, JavaScript, Html, JSP, TypeScript ( NG / Angular6 ) auf Windows, Linux (CentOs6/7/Ubuntu/Mint) Technologien: Spring, JaxB, Hibernate, XML/XSD, JMS (1.0/2.0), Swing, JMX. JNI, Java Bytecode Modifikation, Camel, Kafka, Reflections, Kubernetes, Docker Swarm, Ingress, Helm, Hazelcast (Cache Replication / Hibernate L2), Nginx, Discoveries, Failover, Chainbreaker
09/2014 ? 05/2018
Freiberufliche Anstellung als Entwickler / Software Engineer bei der deutschen Lufthansa Industry Solutions
Technologien: Spring, JaxB, Hibernate, XML/XSD, JMS (1.0/2.0), Swing, JMX. JNI, Java Bytecode Modifikation, Camel, Kafka, Reflections, Kubernetes, Docker Swarm, Ingress, Helm, Hazelcast (Cache Replication / Hibernate L2), Nginx, Discoveries, Failover, Chainbreaker
Softwareengineer & Softwareentwickler / LEAD Developer Schwerpunkte: Der beschäftigende Bereich entwickelt Multimedia Entertainmentsysteme, welche wahlweise auf bestehender Hardware oder auf selbstentwickelter Hardware mit integriertem WLAN und 4Kanal-Mobil-4G Interface laufen können bzw. horizontal und vertikal skalierbare Cruise & Hospitality-Entertainmentsysteme. Im Rahmen dieses Projektes umfasste meine Aufgabe anfänglich mehrere Module, Release-Planung, die operative Projektplanung und -leitung im Bereich der Entwicklung, Spezifizierung und Umsetzung / Entwicklung bis hin zur Auslieferung. Diese Module wurde von der Planung über die Erstellung bis zum Test und der QA Phase von meiner Person durchgeführt bzw. geleitet. Parallel dazu wurden kleinere Aufgaben im Umfang von ja ca. 1-2 Arbeitswochen in Teams mit 2-5 Personen realisiert. Im Laufe der Zeit wurde mir die Rolle als Lead-Developer gegeben. - Als Erstes entwickelte ich eine Library, die auf Basis eines abstrakten Persistenz Managers beliebige Datenbankobjektstrukturen in konfigurierbare Datenformate (JSON, XML) und diese Datenformate wieder zurück in Datenbankobjekte konvertieren konnte. Die Library konnte beliebige Datenbankreferenzen wie OneToOne, OneToMany und ManyToOne handhaben. Dabei wurden die Stati ?Touch?, ?Update?, ?Create? und ?Delete? von Beliebigen im Datenbankcluster verarbeiteten Datensätzen verwaltet. Intern arbeitete diese Library zusätzlich mit einer Statemachine, welche Implementierungen für objektbezogene Aufgaben ermöglichte. Ziel dieser Library war die Replikation von Datensätzen, die erstellt, geändert oder gelöscht wurden und dabei von einer beliebigen Anzahl von Systemen zu einem Server oder umgekehrt per JaxB XML / JSON per JMS transferiert wurden. - Ein bestehendes DRM System wurde komplett überarbeitet und upgedatet. Auf Basis von PlayReady DRM komplett geschützte Filme werden auf sicheren Transportwegen per Aspera zu einem Streaming Server transportiert. Auf diesen Servern werden diese Filme inkl. Ihrer Smooth Streaming-Segmente kontrolliert automatisiert eingespielt. Auf Basis von PlayReady DRM, CMLAOMA und Widevine werden die PlayReady geschützten Filme für alle Endgeräte ausgespielt (BROWSER, TV-SmartTV, Non-Smart TV durch secure Multicast Playback per TransportStream, Android, iOS, MacOS, AndroidTV, Windows Mobile). Der Content war dabei komplett gemanagt und per POS-System erfasst und eingebettet. Die Wiedergabe wurde automatisiert geprüft durch Codecprüfungen und ein Key-Management für KID Readout aus den Dateien des PlayReady geschützten Contents. - Codierung auf aufspielen von DRM Schutz per Cloud Media Services in Azure Cloud auf Filme / bzw. Umwandlung in Smooth Streaming. - Ein weiteres Modul beinhaltet die sichere Übertragung von Events und Datenbankänderungen auf Konfigurationsbasis zwischen beliebigen Netzwerken von Servern. Diese Server wurden per eindeutiger ID definiert und waren in der Lage, mit diesem Modul miteinander zu kommunizieren. Dieses Protokoll entwickelte ich auf Basis von JMS und Camel auf ActiveMQ und JMX. Die Verbindungen zwischen den einzelnen Systemen waren per Vorgabe unsicher und konnten jederzeit durch externe Einflüsse unterbrochen werden. Dabei wurden Kommunikationsmethoden wie Events, Push-Messages und Request/Reply-Messages mit je optionalem JMS unabhängigem Acknowledge implementiert. Real handelte es sich um ein System zur gebundenen transaktionale, entfernten & verteilten, konditionalen Datenbankreplikation. Multicast-Kommunikation und konfigurierbare dynamische Trigger, die zur Laufzeit geändert wurden, stellten die Möglichkeit bereit, gezielt Daten mit bestimmen Inhalten und aus gewünschten Tabellen mit Objektstrukturen zu replizieren oder von anderen Modulen per Event Nachrichten an eine Liste von Remotesystemen sicher zu übertragen und somit eine sichere, verteile, selektive Datenreplikation zu ermöglichen. - Ein Framework wurde für ein CDS (Content Distribution System) basierend auf Aspera las Transportmedium entwickelt, welcher Userinterfaces für verschiedene Inhalte Typen (VOD, AOD, etc.) generiert und anzeigt. Das Modul erzeugt auf Basis von zKoss (vergleichbar mit GWT/Vaadin) einen UI-Framework, welcher durch Setzen einer beliebigen JaxB-Klasse aus dieser JaxB Klasse eine komplexe Struktur erstellt, welche alle Felder und deren interne Abhängigkeiten und Datentypen erzeugt und ein abstraktes, performantes Eingabesystem generiert. Dieses ist per Attribute-Definitionen in den implementierten JavaKlassen komplett konfigurierbar und kann die Werte aus instanziierten JaxB-Objekten in diese UI-Forms übertragen oder die Werte aus diesem Userinterface wieder in die instanziierten JaxB Klasse schreiben inkl. voller Validierung und dynamischen Komponenten wie Datenbankinhalten und Listen. Dieser Framework hat das Ziel, als Basis für eine Reihe von implementierenden Frameworks komplexe UI Interfaces mit geringstem Zeitaufwand für wiederkehrende Aufgaben und unterschiedliche Typen der Medien (Audio, Video, PDF, Pages, Games .. ) bereitzustellen. - Ein System zur Übertragung von Content- und Navigationssystemen wurde auf Basis einer State Engine entwickelt, mit welchem beliebige Navigationsbäume aus der Datenbank ausgelesen, analysiert und alle damit verbundenen Dateien in Archive verpackt und per Aspera CDS System auf diverse Systeme verteilt wurden. - Mit Jasper Reports wurden diverse Reports erstellt, um diverse Daten zum Nutzerverhalten sowie BI zu verarbeiten und umzusetzen. Dabei wurden die Daten über das zuvor erwähnte Eventsystem von allen Satelliten-Systemen zu einem Central Server übertragen und dort per JasperReports ausgewertet. Diese Reporte inkl. der Stored Procedures, Jasper Reports, SQL-Skripte und Report-Strukturen wurden von mir entwickelt bzw. übernommen. - Auf PostgreSQL war das bestehende System extrem CPU-lastig. Das gesamte System inkl. Datenbanksettings, Treiber und Implementierung sowie ORM Framework wurden von mir überarbeitet und optimiert, um die CPU Last zu senken. - JBOSS Customer Build. Mit einem Gradle Script wurde ein JBoss aus dem MavenRepro geladen und per Konfiguration ein dedizierter Build für bestimmte Voraussetzungen geschaffen, so dass im Modules Pfad des JBoss Komponenten und Abhängigkeiten als gemanagte Abhängigkeiten als JBoss Module hinterlegt werden. - Aufsetzen einer neuen VM für zukünftige Projekte im Bereich Hospitality & Cruise mit RDBMS (PostgreSQL 9.4 BDR) active/active Replikation mit n Instanzen und einen CustomBuild Wildfly 10.x mit Multiinstanzen erweiterbar. Auf einem DS (Digital Signage) Gerät habe ich per C# eine Applikation generiert, welche per Rest-Calls und JSON-Objekt-Kommunikation auf Basis von .Net 2/2.5 eine Ansteuerung des DS-Gerätes ermöglicht, um diese zu steuern und zu verwalten und Funktionen wie Neustarts, das steuern einer Applikation durch ein zentralisiertes System (DMAC) zu ermöglichen - Des Weiteren wurde Software erstellt und gewartet, welche mobilen Devices und TV, STB und DS Geräte aktiv gewartet, gemanagt und in Relation zu Personen, Positionen und Accounts gesetzt hat. Dabei wurden Themen wie ?Locationbased Tracking? als zentrale Elemente behandelt. - Ein CMS (Magnolia5) wurde über JCR?s direkt in den gemanagten ContentLifeCycle des Entertainment Systems angebunden und eingebettet. Beliebige ContentElemente konnten per Magnolia vom Kunden als Betreiber gemanagt und editiert werden und nach Ablauf des Editierungs-Lifecycle in das Entertainmentumfeld ausgeliefert werden. - Für die Hospitality und Cruise HMS / PMS Systeme von InforHMS, Agilysys Guestware und Fidelio habe ich Schnittstellen auf Basis von XML entworfen und implementiert bzw. weiterentwickelt, um Legacy Systeme mit dem Entertainment System in einer serviceorientierten Struktur zu verbinden und somit Informationen wie Folios oder Bestellungen auf beliebigen Endgeräten wie TV, STB oder Mobile in Kundenrelation anzuzeigen. - Applikationen für TV und Smartphones wurden auf Basis von - Betreuung diverser Projekte von Betrieb bis hin zu Updates/Hotfixes - Planung und Konzeption der Software - Erstellung einer Angular2 Applikation zur schnellen Inventarisierung von Smart TV / DS Units. Zudem wurden bestehendfe monolithische Applikationen hin zu MIcroservices umgebaut und migriert und in ein Kubernetes Umfeld migriert.
Programmiersprachen: Java, Kotlin, PLSQL, SQL, Kotlin, XML/XSD, JavaScript, Html, C#/C++, TypeScript ( NG2 / Angular4 ) auf Windows, Linux (CentOs6/7) , Ubuntu 14+ Technologien: CDI, JaxB, Hibernate, XML/XSD, JMS (1.0/2.0), Serialisierung von Objekten (XML (Dom, Jax, Sax) /JSON), zKoss, Spring, Swing, JMX. JNI, Java Bytecode Modifikation, remote Replikation, Multicast via JMS, Datenbanken aktive Java Trigger / Prozeduren, Injection, JBoss, Camel, Modulgenerierung, Reflections, JEE, EE Beans, JSF 2.1, zKoss, Vaadin, C#, .NET 2.0 / 2.5 / 4 Softwareprodukte: JBoss EAP 6.3,6.4 / Wildfly 8.2, 10.x, PostgreSQL 9.x (BDR), ActiveMQ , Guestware, Fidelio, InforHMS, Infogenesis, Agilysys, Magnolia, Protel, Kubernetes
12/2013 ? 08/2014
Freiberufliche Tätigkeit als Entwickler / Software Engineer bei der HHLA / Hamburg
01/2008 ? 11/2013
Anstellung als Geschäftsführer / Leitender Entwickler
Schwerpunkte: In diesem neu gegründeten Unternehmen baute ich
einen Kundenstamm auf und akquirierte Projekte. Dabei waren wir
hauptsächlich als Subunternehmer für Teilprojekte anderer eBusiness-
Projekte aktiv. Ich leitete verschiedene Projekte als Projektleiter und
Lead-Programmer. Zudem entwickelten wir Apps für Android und iOS
sowie komplexe Frameworks mit Apps <-> Browser <->Serverkommunikation. Das oben aufgeführter eBusiness-Framework
wurde zudem weiterentwickelt und in Projekten umgesetzt. Im
Projektkreis wird aktuell ein MMORPG auf Basis der Unreal3 Engine mit
iOS/Android Unterstützung seit 2009 entwickelt. Dabei wird die
Kundendatenbank und die Anbindung von iOS / Android über den
eBusiness-Framework realisiert und bietet so eine Echtzeit interaktive
MMORPG Funktionalität zur Verfügung, das Events oder Aktionen über
den Browser oder das Handy / Tablett ausgelöst werden können und
Einfluss auf das System der Unreal Engine 3 haben. So können
Spracheingaben oder Bewegungen über das / des Telefon(s) das
gesamte System verändern und eine neuartige, hoch-interaktive
Umwelt für den Nutzer generieren. Dabei wurden die Frontends auf Windows über
die Unrealengine3 mit Flash, und über C diverse DDL eingebunden und mit der Engine kompiliert. Auf iOS und Android ist das Userinterface via Flash und der UE3 generiert worden. Systemmodule wurden über Jaca auf die jeweiligen Systeme compiliert und in die Engines als Module eingebunden, um die Bindung Server-Client umzusetzen.
In eBusiness Projekten wurden vorhandene Systeme an neue CMS
angeschlossen und bestehende Contents übertragen . Diese CMS
basierten auf IBM ECM, MS SPF, Lenya und Magnolia. Unsere Aufgaben
umfassten dabei hauptsächlich die Verbindung bestehender Systeme
an die neuen Systeme und die Bereitstellung von einer Lösung, um
aktuelle Editierungsumgebungen zu verbinden bzw. zusätzliche Quellen
anzubieten.
Neue Spin-offs bzw. Produktwechsel wurden mit den
Standardlösungen InterShop, WCS, dem Commerce Server und
Interchange gestartet. Diese wurden per Java an die bestehenden
Warenwirtschaftssysteme angeschlossen und entsprechende
Abgleiche vorgenommen. In zwei Fällen wurden die Produktdaten
verschiedener Supplier direkt vom Hersteller via XML Feed geladen und
in den Shop abgeglichen. Ja nach Anforderung wurden Verfügbarkeit
und tagesaktuell eingespielt der mit der Bedienoberfläche durch den
Kunden verwaltet. Die Bestellungen wurden via Java ausgelesen und in
die Warenwirtschaft zurück übergeben. Diese Techniken sind je nach
Produkt mit JEE bzw. automatischen Abläufen generiert worden.
Programmiersprachen: C/C++, C#, Java, JSP, Assembler , PL SQL,
UML, JSP, XSLT, UC, PERL
10/2001 ? 01/2008
Anstellung als Geschäftsführer und leitender Programmierer
Schwerpunkte: Nach der Geburt meines ersten Kindes habe ich eine neue Tätigkeit mit begrenzter Arbeitszeit gesucht, um mich mehr der Erziehung widmen zu können. Meine Ausgaben umfassten Akquise und Leitung verschiedener Projekte mit Einsatz eines selbstenwickelten eBusiness-Frameworks auf Basis von Java / XML und RDBMS.
- Softwareentwicklung für CMS eBusiness Framework auf Basis von Java. Basierend auf beliebigen Datenbanken (RDBMS bevorzugt, alle anderen z.B. SQLite , bieten die gleichen Funktionen über eine Abstraktionsschicht. Ein Kernel, der zur Laufzeit Ablauflogiken aus der Datenbank lädt, aktualisiert sich selber ständig durch diese Logiken. Verschiedene Module werden über Interfaces zur Laufzeit dynamisch eingebunden. Diese Module basieren auf Typen und Instanzen. Es wird nur eine Typ einer Anfage in das System mit einer bevorzugten Instance gegeben und dieser Auftrag dann an das entsprechende Modul weitergeleitet. Das System basierte in der Entstehung und auf J2EE und bis heute auf J6EE. Die interne Kommunikation basiert auf XML mit dynamisch generiertem Deskriptor. Das Design und die Verbindung von Aufgaben und Modulen wird per Prozessdesigner realisiert und ist komplett grafisch dargestellt. Eine persistente Datenbank API wurde entwickelt und genutzt. Alternativ sind Hibernate oder JPA nutzbar. Folgende Module wurden erstellt:
CMS mit Sicherheitssystem und Multiserversystem ( Live, Editierung, Abnahme), beliebig erweiterbar
Auf Basis von Java, C++ und C wurden unter Nutzung von Standard-OpenSource Libraries die oben aufgeführten Funktionen erstellt bzw. komplett eigenständig entwickelt. Diese Projekte / Funktionalitäten wurden durch Kundenprojekte angefragt und nach Bedarf entwickelt. Alle Bereiche wurden über UML designed und teilweise entwickelt. Dadurch hat sich das Knowhow in diesen Bereichen erweitert und ist mit Projekten, die bereits realisiert wurden , verfügbar mit Theorie und als Doing Prozess.
- Programmiersprachen: C/C++, Java, JSP, Assembler , PL SQL, UML
01/2000 ? 05/2001
Angestellte Tätigkeit als Projektbereichsleiter und Lead-Programmierer
Schwerpunkte: Bei der Entwicklung eines Produktes auf der Basis von Java war ich über einen Zeitraum von 16 Monaten eigenständig für ein Budget sowie für das Personal verantwortlich. Dieses Projekt wurde in Hamburg und Minsk / Weißrussland umgesetzt. Weitere zwei sehr umfangreiche Projekte wurden von mir unterstützt und technisch spezifiziert. Diverse andere Projekte standen durch einen Umbruch im Personalstamm vor dem aus und mussten weitergeführt bzw. durch KnowHow und Doing unterstützt werden
Details:
01/1997 - 12/1999
Tätigkeit als Programmierer / Consultant / Projektleiter
Schwerpunkte: Akquise und Beratung der Kunden
Von den ersten Gesprächen über eine Evaluierung von Produkten und einer technischen Konzeption bis hin zur Implementierung dieser Produkte im Projektgeschäft war ich in verschiedene Projekte eingebunden bzw. dafür verantwortlich.
Details:
06/1994 - 10/1997
Selbstständigkeit / Akquise von eigenen Projekten für Internet-Auftritte
Schwerpunkte: Freiberufliche Umsetzung von Internetauftritten.
Die Websites wurden teilweise statisch und zum Teil dynamisch erzeugt. Die Techniken umfassten Java, HTML, Javascript und die dazu notwendigen Grafikerstellungen. Serverseitig wurde primär C und Perl eingesetzt.
Details:
05/1994 - 10/1997
Freiberufliche Tätigkeit
Schwerpunkte:
Auf den Plattformen Playstation, Nintendo 64, Jaguar und MS Windows Entwicklung von 3D-Engines, Programmen zur Objektmodellierung und ?umwandlung sowie Grafik, Musik und Spielgestaltung.
Details:
05/1991 - 05/1995
Freiberufliche Tätigkeit
Schwerpunkte: Für Spiel wurde ein Scriptingsystem sowie ein Grafiksystem entwickelt. Zudem an diversen API?s für Spiele gearbeitet und selbstentwickelte Datenbanken programmiert und bearbeitet
Details:
12/1989 - 07/1992
Freiberufliche Tätigkeit
Schwerpunkte: Die Aufgabenbereiche umfassten ein Systemebenendebugging für Anwendungen, eine Programmierung von verschiedensten Programmcodesegmenten für Audio und Video sowie die Erstellung von Mehrschichtmodellen für Programmcode zur Optimierung der Leistungsfähigkeit.
Details:
1995 – 2001
Studium an der Fernunsiversität Hagen ( Diplom II 09/2001) zum Diplom-Informatiker (1,9)
1989 – 1991
Gymnasium EOS Grevesmühlen / MV Abitur mit Abschluss (1,2) 07/1991
1979 – 1989
POS – Mittlere Reife 07/1989 mit Abschluss (1,1) in Schönberg / MV
Formate:
Frameworks, Libraries und SDK's:
Technische Verfahren:
Genutzte Produkte:
Windows
Android
iOS
Linux
MacOS
Solaris
OpenVMS
AmigaOS
BeOS
MS-DOS
OS/390
IBM Großrechner
MIPS Systeme
Sun Server
PC Systeme
3DMAX
MAYA
Motionbuilder
Handel
Automotive
Energieversorgung
Information und Kommunikation
Dienstleistungen