JAVA, J2EE, Email, JSON, DB/2, Oracle, Lotus Notes/Domino, HTML, JavaScript, SQL, XML
Aktualisiert am 04.01.2024
Profil
Referenzen (3)
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 01.01.2025
Verfügbar zu: 100%
davon vor Ort: 100%
Java
ReactJS
TypeScript
Postfix
Rust
React.js
Spring
IMAP
SMTP
HTML
Go
JSON
WebService
Lotus Domino
JavaScript
Git
Node.js
E-Mail
java
Deutsch
Muttersprache
Englisch
Gute Kenntnisse

Einsatzorte

Einsatzorte

Deutschland, Österreich, Schweiz
möglich

Projekte

Projekte

3 Jahre 3 Monate
2021-01 - heute

OpenTalk

Software-Entwickler ReactJS TypeScript Node.js ...
Software-Entwickler

Mitarbeit bei der Entwicklung einer Videokonferenzsoftware für die Firma OpenTalk (https://opentalk.eu).

Meine Aufgabe war, 2021 zunächst einen Prototypen für eine Peer-To-Peer Videokonferenz auf der Basis von Node.js, javascript und WebRTC zu programmieren.

Im 2. Quartal 2021 wurde dann die Produktentwicklung mit einem eigenen in Rust programmierten Backend und einem mit Node.js, React, Typescript programmierten Frontend gestartet.
Dabei wurden unter Anderem RTK-Query für Serverzugriffe und jest.js für die Tests eingesetzt.

Bei der Produktentwicklung war ich als Software-Entwickler für das Frontend tätig und habe dabei GUI Komponenten und funktionale Komponenten entwickelt und getestet.

Projektsprache war überwiegend Englisch, da einige der Entwickler aus dem nicht deutschsprachigen Raum kamen.

Visual Studio Code Git Atlassian Confluence Type
ReactJS TypeScript Node.js WebRTC
Homeoffice
1 Jahr
2022-01 - 2022-12

Auftragsverwaltung

Systemarchitekt/Programmierer Rust TypeScript Node.js ...
Systemarchitekt/Programmierer
Entwicklung einer Auftragsbearbeitung als ablösung des bisherigen Systems.
Es existierte bereits eine Auftragsbearbeitung, die als Access Datenbank unter Windows lief. Für eine neue Lösung mussten die Stammdaten (Kunden/Artikel) aus dem alten System in das neue übernommen werden.
Das Programm besteht aus einem Server, der in Rust programmiert ist und einem Client, der mit node.js und electron umgesetz wurde.
Ausserdem wurde MongoDB als Datenbank für den Server verwendet.
Im Client können Aufträge erstellt werden und jeweils die zugehörige Rechnung, Lieferschein, Packliste ausgedruckt werden.
Die Kunden haben jeweils bestimmte Preisgruppen, die in den Artikeln hinterlegt sind.
Der lokale Server repliziert seine Daten mit einem entfernten Backupsystem, sodass bei einem ausfall des lokalen Servers auf dem entfernten Server weitergearbeitet werden kann.
Meine Aufgabe war die analyse des bestehenden Systems und anschliessend die Planung und Programmierung des Servers und des Clients.
Im Rahmen dieses Auftrages habe ich auch die Hardware für den lokalen Windows  Server beschafft und konfiguriert und einen entfernten Linux Server für das Backup konfiguriert.
Rust TypeScript Node.js MongoDB
Stetten, Schwaben
1 Jahr
2020-01 - 2020-12

Review und Bugfixen einer Android App

Software-Entwickler Git Kotlin java ...
Software-Entwickler

Umfangreiches Review/Bugfixing der Open Xchange OX Drive App.
OX Drive ist eine Android App, mit der Inhalte zwischen der OX AppSuite und dem Android Device synchronisiert und auf dem Android Device lokal verfügbar gemacht werden können.

Die App ist in Java und Kotlin programmiert und verwendet verschiedene Android APIs um Dateien zwischen dem Android Device und dem AppSuite Server zu synchronisieren.
Dazu gehören unter Anderem Android Volley, Evernote JobManager, AsyncTask und andere.

Zu meinen Aufgaben gehört es, die Ursache für von der QS gemeldete Fehler zu finden und selbständig im Code zu beheben und, falls notwendig, Prozesse neu zu implementieren..
Auch bei der Migration auf die Android Target API 29 (Android 10) habe ich maßgeblich mitgearbeitet.

Android Studio
Git Kotlin java Atlassian JIRA Atlassian Confluence Gradle Kotlin Gradle
Open Xchange
4 Jahre
2017-01 - 2020-12

ID4me technical competence group

Consultant/Entwickler OpenID OAuth
Consultant/Entwickler

Mitarbeit in der Technical Competence Group bei ID4me (https://id4me.org/)
Aufgabe ist die Definition der technischen Spezifikation der ID4me Technologien.
Entwicklung von Referenzanwendungen/Demos für interessierte Unternehmen/Anwender.

Dabei habe ich unter anderem eine Java API für die Entwicklung einer Relying Party und eine Java API für das
Agent Identity Management (https://id.denic.de/aim/docs/api/v1/) programmiert.
Diese sind in Maven Central als Open Source veröffnetlicht (https://search.maven.org/search?q=a:relying-party-api, https://search.maven.org/search?q=a:aim-api-wrapper) und können z.B. mit maven in eigene Projekte eingebunden werden.

Maven
OpenID OAuth
Open Xchange
Remote
8 Monate
2019-05 - 2019-12

Spring Boot Authentication Filter

Software-Entwickler Spring Boot Java OIDC ...
Software-Entwickler

Entwicklung eines Authentication Filters für Spring Boot.
Der Filter kann in beliebige Spring Boot Anwendungen integriert werden.
Die Authentifizierung des Benutzers wird komplett transparent mit ID4me durchgeführt und im Erfolgsfall ein Principal Object in den Http-Request integriert.
Damit kann ein Programm dann prüfen, ob der Benutzer angemeldet ist und welche Rollen er hat.

Der Filter wurde von mir in Java programmiert und verwendet die von mir entwickelte Id4me relying party api als maven dependency.

Eclipse STS
Spring Boot Java OIDC apache maven
ID4me
1 Jahr
2019-01 - 2019-12

OX AppSuite ID4me Logon Plugin

Software-Entwickler OID OIDC Java
Software-Entwickler

Entwicklung eines Plugins für die Open-Xchanage AppSuite um sich mit einer ID4me ID anzumelden.
Das Plugin ist auf https://hermes.open-xchange.com/appsuite/ installiert und dient der ID4me Community (https://id4me.org/) als Demo.
Programmiert wurde das Plugin in Java als AuthenticationFilter für die AppSuite.
Zusätzlich zu der Programmierung in Java habe ich umfangreiche Änderungen an der Open-Xchange Serverkonfiguration (Apache2, MySQL) vorgenommen.




OX AppSuite Apache MySQL
OID OIDC Java
ID4me
1 Jahr
2019-01 - 2019-12

Id4me Relying Party api

Software-Entwickler apache maven OID OIDC ...
Software-Entwickler

Entwicklung einer Relying Party API und einer Java API für das ID4me Identity Management (https://id.denic.de/aim/docs/api/v1/).

Um die Entwicklung einer Relying Party für ID4me zu vereinfachen, habe ich eine Java API programmiert welche die Kommunikation mit der Identity Authority und dem Identity Agent kapselt.
Die Relying Party wird automatisch bei der Identity Authority registriert, falls noch keine Registrierungsdaten vorhanden sind.
Das ID4me DNS-Discovery wird mit DNSSEC durchgeführt.
Die APIs sind in Maven Central als Open Source veröffnetlicht (https://search.maven.org/search?q=a:relying-party-api, https://search.maven.org/search?q=a:aim-api-wrapper) und können z.B. mit maven in eigene Projekte eingebunden werden.

Eclipse
apache maven OID OIDC ID4me Java OAuth
1 Jahr
2018-05 - 2019-04

Android local VPN Filter

Software-Entwickler VPN DNS Java ...
Software-Entwickler

Entwicklung eins Android VPN Client, der alle ausgehenden IP Pakete auf dem Android Device prüft und ggf. verarbeitet.
Dieser Filter erweitert die DNS Pakete um OX Protect spezifische Parameter, damit ein DNS Server diese erkennen kann und abhängig von zum Beispiel einer Altersfreigabe sperrt, oder zulässt.

Der Filter wurde in Java, als Android VpnService, programmiert und verwendet Pcap4J (https://github.com/kaitoy/pcap4j) um die ip/udp Pakete zu bearbeiten.


Entwicklung eins Android VPN Client, der alle ausgehenden IP Pakete auf dem Android Device prüft und ggf. verarbeitet.
Dieser Filter erweitert die DNS Pakete um OX Protect spezifische Parameter, damit ein DNS Server diese erkennen kann und abhängig von zum Beispiel einer Altersfreigabe sperrt, oder zulässt.

PowerDNS Android
VPN DNS Java UDP/IP
Open Xchange
1 Jahr
2018-01 - 2018-12

WebRTC Client

Software-Entwickler webRTC STUN TURN ...
Software-Entwickler

Entwicklung eines Clients für Chat over IMAP (COI). Es wurden der Kurento Mediaserver und Coturn für STUN/TURN verwendet, weil diese frei, gut dokumentiert sind und von einer Community unterstützt werden.
Der Client wurde mit Node.js realisiert und unterstütz Video chats mit mehreren Teilnehmern, die sich entweder über einen Link, z.B. in einer Email authentifizieren können, oder die Berechtigung für den Call durch einen Benutzer mit Passwort nachweisen.

Kurento
webRTC STUN TURN Node.js Git
Open Xchange
1 Jahr 7 Monate
2017-06 - 2018-12

Emailsignatur in einer Blockchain speichern

Software-Entwickler smart contract Blockchain SMTP ...
Software-Entwickler

Um nach dem Empfang von Emails prüfen zu können, ob diese unverändert ist, wird beim Versand der Email ein Hash der Email in der Blockchain (Ethereum) gespeichert.
Dieser Hash kann dann vom Empfänger der Email aus der Blockchain gelesen werden und die Authentizität der Email bestätigen.
Dazu habe ich einen Smart Contract für die Ethereum Blockchain programmiert, mit dem der Absender einen Hash der Email in der Blockchain speichern und diesen einer ID (Mail-ID) zuordnen und einen Smart Contract, mit dem man den Hash zu einer ID lesen kann.
Der Empfänger kann so den Hash zu der empfangenen Mail-ID aus der Blockchain lesen und mit einem selber berechneten Hash vergleichen.
Stimmen beide Werte überein, wurde die Email und evtl. vorhandene Dateianhänge nach dem Emailversand nicht mehr geändert.

Für Thunderbird habe ich mit JavaScript ein Add-On programmiert, mit dem man ausgehende E-Mails markieren kann, damit diese vom SMTP Server in der Blockchain gespeichert werden und ein Add-On, mit dem die Email überprüft werden kann.
Für den Postfix Server habe ich einen Filter in Java programmiert, der die Email parsed und abhängig davon, ob ein bestimmter Email-Header existiert, den Hash der Email in der Blockchain speichert.

Ethereum Postfix Thunderbird
smart contract Blockchain SMTP JavaScript Java
Open Xchange
3 Jahre
2015-01 - 2017-12

Entwicklung einer Systemarchitektur für TrustedEmailServices

Systemarchitekt PGP Emailsicherheit Verschlüsselung ...
Systemarchitekt

Ausarbeitung und Implementierung einer Architektur für sichere Email für die Initiative TrustedEmailServices (https://tesmail.org/).
Es wurde eine Architektur entwickelt und umgesetzt, mit der ähnlich zu email-made-in-germany, die Mailserver der Teilnehmer garantiert verschlüsselt kommunizieren.
Zusätzlich kann ausgehende Mail, wenn der Absender es wünscht, vom Mailserver mit pgp, oder aes verschlüsselt werden.
Die wurden so konfiguriert, dass sie mindestens TLS 1.2 mit PFS und DANE/DNSSEC unterstützen.
Ich habe einen Service für postfix programmiert, der die Mails verschlüsselt und pgp keys erstellt und im sks Server speichert.
Zusätzlich habe ich einen Service für postfix programmiert, der prüft, ob die Transportverschlüsselung den Vorgaben entspricht und wenn nicht, die Mail mit einer Meldung an den Absender zurückschickt.
Das projekt findet in einem internationalen Umfeld statt (unter Anderem: USA, Finnland, Niederlande, England) und es wird deswegen überwiegend in Englisch kommuniziert.

PGP Emailsicherheit Verschlüsselung Verschlüsselungsverfahren TLS
Open Xchange
Remote
5 Monate
2017-01 - 2017-05

Patent: CONDITIONAL REMOVAL OF ADVERTISEMENTS FROM WEB CONTENT

(Co-) Inventor HMAC
(Co-) Inventor

https://patents.google.com/patent/WO2018203223A1/en

Gegenwärtig wird Werbung von Webservern in zum Beispiel Webseiten, oder Chat-Räumen eingebaut unabhängig davon, ob der Benutzer die Werbung wünscht, oder nicht.
Es ist keine Möglichkeit bekannt, mit der ein Benutzer diese Werbung global verhindern kann, außer er verwendet einen Werbeblocker.
Wir haben eine Methode entwickelt, mit der ein Benutzer bei seinem Internetprovider global konfigurieren kann, welche Werbung er angezeigt bekommen möchte, oder ob keine Werbung angezeigt werden soll.
Dabei überprüft der Inhalteanbieter, welcher ISP für eine IP Adresse registriert ist und ob mit diesem ein Vertragsverhältnis besteht. Abhängig von dem Status den der ISP für diese IP-Adresse liefert, wird Werbung in einer Webseite angezeigt, oder nicht.

HMAC
Open Xchange
1 Jahr
2016-01 - 2016-12

Dovecot advertising injection prototype

Software-Entwickler JavaScript HTML Java
Software-Entwickler

Entwicklung eines Programms mit dem Werbung für einen definierten Zeitraum in einem IMAP Ordner angezeigt werden kann.
Für den Prototypen habe ich die E-Mail direkt in die Dovecot Mailbox eingefügt und nicht als virtuelles IMAP Objekt im Dovecot erstellt.
Ich habe eine Benutzeroberfläche mit Spring Boot und HTML programmiert, in der die aktuell laufenden Kampagnen angezeigt und bearbeitet werden können. Diese Seite habe ich dann in die Open Xchange AppSuite als zusätzlichen Tab integriert. Die Daten der Werbekampagnen wurden in einer MongoDB  Datenbank gespeichert.
Für dem Dovecot Server habe ich einen Hintergrundprozess geschrieben, der die Werbekampagnen in der Datenbank überwacht und, abhängig vom Status der Kampagne, E-Mails in der Inbox der Dovecot Benutzer anlegt, oder löscht.

MongoDB Dovecot Git Postfix
JavaScript HTML Java
Open Xchange
1 Jahr 5 Monate
2015-08 - 2016-12

BSI Arbeitsgruppe TR Sicherer E-Mail Transport

Consultant
Consultant

https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr03108/index_htm.html
Mitarbeit als Vertreter für Open-Xchange bei der Ausarbeitung der technischen Richtlinie "Sicherer E-Mail-Transport".
Die Technische Richtlinie "Sicherer E-Mail-Transport" (BSI TR-03108) definiert konkrete Anforderungen an einen E-Mail-Diensteanbieter (EMDA). Ziel der Technischen Richtlinie (TR) ist die Erhöhung der Vergleichbarkeit und Verbreitung sicherer E-Mail-Kommunikation.

BSI
Bonn
7 Monate
2016-04 - 2016-10

Patent: Ad hoc injection of IMAP objects

(Co-) Inventor imap smtp lmtp
(Co-) Inventor

https://patents.google.com/patent/US9531785B1/en

Gegenwärtig sammeln IMAP-Server eine Liste von E-Mails für eine bestimmte Benutzer-ID und einen bestimmten IMAP-Ordner, abhängig von den E-Mails, die der Benutzer über das Simple Mail Transfer Protocoll (SMTP)/Local Mail Transfer Protocoll (LMTP) erhalten hat. Es ist kein anderer Mechanismus bekannt, um zusätzliche Informationen in die E-Mail-Liste einzufügen, als die zusätzlichen Informationen als E-Mail an den IMAP-Server zu senden.
Daher müssen Werbe- oder andere Informations-E-Mails, wie z.B. Warnmeldungen, als E-Mails an eine Liste namentlich genannter Empfänger versandt werden und können von Spam-Filtern leicht identifiziert und entfernt werden, und Lese-/Löschvorgänge sind für die Protokollierung nicht leicht zu erkennen.

Wir haben eine Methode entwickelt, mit der IMAP Objekte direkt in der Inbox, oder einem beliebigen anderen IMAP Ordner eines Benutzers eingefügt werden können. Diese IMAP Objekte werden nicht über SMTP versendet, können aber von jedem IMAP Client (z.B. Thunderbird) angezeigt werden und sich wie normale E-Mails anfühlen und Werbung, oder andere Informationen enthalten.

Dovecot
imap smtp lmtp
Open Xchange

Aus- und Weiterbildung

Aus- und Weiterbildung

2000 Lotus Notes 5.x CLP Systemadinistration
1996 Lotus Notes 4.x CLP Systemadinistration

Kompetenzen

Kompetenzen

Top-Skills

Java ReactJS TypeScript Postfix Rust React.js Spring IMAP SMTP HTML Go JSON WebService Lotus Domino JavaScript Git Node.js E-Mail java

Produkte / Standards / Erfahrungen / Methoden

Android Studio
Apache
Apache
apache maven
Atlassian Confluence
Atlassian JIRA
Blockchain
Entwicklung von Smart Contracts
Dovecot
Eclipse
Eclipse STS
Emailsicherheit
Ethereum
Git
Gradle
HMAC
Kurento
Maven
Maven
Node.js
OAuth
OID
OIDC
OpenID
OpenID
OX AppSuite
PGP
Postix
Konfiguration und entwicklung diverser Mailfilter
PowerDNS
smart contract
Spring Boot
STUN
Thunderbird
TLS
TURN
UDP/IP
Verschlüsselung
Verschlüsselungsverfahren
VPN
Android Entwicklung
C++ Grafikprogrammierung mit OpenCV
Entwicklung von stored procedures in PL/SQL und Java für Oracle.
Entwicklung von Applikationen für WebSphere, Tomcat und Apache Server.
Entwicklung mit WebSphere Application Developer (WSAD).
Entwicklung mit Eclipse.
ETL Prozesse mit Informatica / Oracle.
Personalisierte Portale in verbindung mit Lotus Domino und relationalen Datenbanken.
Informationssysteme für das Intra- / Internet auf basis Domino / Java.
Seit 1994 Jahre Erfahrung mit Lotus Notes Datenbankentwicklung.
Seit 1996 Jahre Erfahrung in der Internetprgrammierung.
Anbindung von MS-Office über OLE.
Anbindung von Lotus Domino über Java/C/C++ API.
Entwicklung mit der Domino.doc API
Sametime 1.5 Anbindung.
Personalisierung von Webseiten über Relationale Datenbanken (DB2).
Integration und Anpassung von Lotus domino.doc.
Integration von IBM Maschine Translation in Intanetanwendung.

Betriebssysteme

Android
Linux
MS-DOS
OS/2
Unix
Windows
Windows CE

Programmiersprachen

Basic
C
C++
Clipper
dBase
Go
HTML
Java
Auch in Verbindung mit Lotus Notes und JDBC
JavaScript
Auch in Verbindung mit Lotus Notes und JDBC
Kotlin
Lotus Notes Script
Sehr gute kenntnisse
Perl
PL/SQL

Datenbanken

DB2
JDBC
Lotus Notes
MongoDB
MySQL
MySQL
ODBC
Oracle
SQL
xBase

Datenkommunikation

CORBA
DNS
EMail
ID4me
IMAP
IMAP SMTP LMTP
Internet, Intranet
lmtp
Postfix
SMTP
TCP/IP
webRTC

Branchen

Branchen

Banken
Finanzdienstleister
Versicherung
Finanzbranche
Consulting
Automobil

Einsatzorte

Einsatzorte

Deutschland, Österreich, Schweiz
möglich

Projekte

Projekte

3 Jahre 3 Monate
2021-01 - heute

OpenTalk

Software-Entwickler ReactJS TypeScript Node.js ...
Software-Entwickler

Mitarbeit bei der Entwicklung einer Videokonferenzsoftware für die Firma OpenTalk (https://opentalk.eu).

Meine Aufgabe war, 2021 zunächst einen Prototypen für eine Peer-To-Peer Videokonferenz auf der Basis von Node.js, javascript und WebRTC zu programmieren.

Im 2. Quartal 2021 wurde dann die Produktentwicklung mit einem eigenen in Rust programmierten Backend und einem mit Node.js, React, Typescript programmierten Frontend gestartet.
Dabei wurden unter Anderem RTK-Query für Serverzugriffe und jest.js für die Tests eingesetzt.

Bei der Produktentwicklung war ich als Software-Entwickler für das Frontend tätig und habe dabei GUI Komponenten und funktionale Komponenten entwickelt und getestet.

Projektsprache war überwiegend Englisch, da einige der Entwickler aus dem nicht deutschsprachigen Raum kamen.

Visual Studio Code Git Atlassian Confluence Type
ReactJS TypeScript Node.js WebRTC
Homeoffice
1 Jahr
2022-01 - 2022-12

Auftragsverwaltung

Systemarchitekt/Programmierer Rust TypeScript Node.js ...
Systemarchitekt/Programmierer
Entwicklung einer Auftragsbearbeitung als ablösung des bisherigen Systems.
Es existierte bereits eine Auftragsbearbeitung, die als Access Datenbank unter Windows lief. Für eine neue Lösung mussten die Stammdaten (Kunden/Artikel) aus dem alten System in das neue übernommen werden.
Das Programm besteht aus einem Server, der in Rust programmiert ist und einem Client, der mit node.js und electron umgesetz wurde.
Ausserdem wurde MongoDB als Datenbank für den Server verwendet.
Im Client können Aufträge erstellt werden und jeweils die zugehörige Rechnung, Lieferschein, Packliste ausgedruckt werden.
Die Kunden haben jeweils bestimmte Preisgruppen, die in den Artikeln hinterlegt sind.
Der lokale Server repliziert seine Daten mit einem entfernten Backupsystem, sodass bei einem ausfall des lokalen Servers auf dem entfernten Server weitergearbeitet werden kann.
Meine Aufgabe war die analyse des bestehenden Systems und anschliessend die Planung und Programmierung des Servers und des Clients.
Im Rahmen dieses Auftrages habe ich auch die Hardware für den lokalen Windows  Server beschafft und konfiguriert und einen entfernten Linux Server für das Backup konfiguriert.
Rust TypeScript Node.js MongoDB
Stetten, Schwaben
1 Jahr
2020-01 - 2020-12

Review und Bugfixen einer Android App

Software-Entwickler Git Kotlin java ...
Software-Entwickler

Umfangreiches Review/Bugfixing der Open Xchange OX Drive App.
OX Drive ist eine Android App, mit der Inhalte zwischen der OX AppSuite und dem Android Device synchronisiert und auf dem Android Device lokal verfügbar gemacht werden können.

Die App ist in Java und Kotlin programmiert und verwendet verschiedene Android APIs um Dateien zwischen dem Android Device und dem AppSuite Server zu synchronisieren.
Dazu gehören unter Anderem Android Volley, Evernote JobManager, AsyncTask und andere.

Zu meinen Aufgaben gehört es, die Ursache für von der QS gemeldete Fehler zu finden und selbständig im Code zu beheben und, falls notwendig, Prozesse neu zu implementieren..
Auch bei der Migration auf die Android Target API 29 (Android 10) habe ich maßgeblich mitgearbeitet.

Android Studio
Git Kotlin java Atlassian JIRA Atlassian Confluence Gradle Kotlin Gradle
Open Xchange
4 Jahre
2017-01 - 2020-12

ID4me technical competence group

Consultant/Entwickler OpenID OAuth
Consultant/Entwickler

Mitarbeit in der Technical Competence Group bei ID4me (https://id4me.org/)
Aufgabe ist die Definition der technischen Spezifikation der ID4me Technologien.
Entwicklung von Referenzanwendungen/Demos für interessierte Unternehmen/Anwender.

Dabei habe ich unter anderem eine Java API für die Entwicklung einer Relying Party und eine Java API für das
Agent Identity Management (https://id.denic.de/aim/docs/api/v1/) programmiert.
Diese sind in Maven Central als Open Source veröffnetlicht (https://search.maven.org/search?q=a:relying-party-api, https://search.maven.org/search?q=a:aim-api-wrapper) und können z.B. mit maven in eigene Projekte eingebunden werden.

Maven
OpenID OAuth
Open Xchange
Remote
8 Monate
2019-05 - 2019-12

Spring Boot Authentication Filter

Software-Entwickler Spring Boot Java OIDC ...
Software-Entwickler

Entwicklung eines Authentication Filters für Spring Boot.
Der Filter kann in beliebige Spring Boot Anwendungen integriert werden.
Die Authentifizierung des Benutzers wird komplett transparent mit ID4me durchgeführt und im Erfolgsfall ein Principal Object in den Http-Request integriert.
Damit kann ein Programm dann prüfen, ob der Benutzer angemeldet ist und welche Rollen er hat.

Der Filter wurde von mir in Java programmiert und verwendet die von mir entwickelte Id4me relying party api als maven dependency.

Eclipse STS
Spring Boot Java OIDC apache maven
ID4me
1 Jahr
2019-01 - 2019-12

OX AppSuite ID4me Logon Plugin

Software-Entwickler OID OIDC Java
Software-Entwickler

Entwicklung eines Plugins für die Open-Xchanage AppSuite um sich mit einer ID4me ID anzumelden.
Das Plugin ist auf https://hermes.open-xchange.com/appsuite/ installiert und dient der ID4me Community (https://id4me.org/) als Demo.
Programmiert wurde das Plugin in Java als AuthenticationFilter für die AppSuite.
Zusätzlich zu der Programmierung in Java habe ich umfangreiche Änderungen an der Open-Xchange Serverkonfiguration (Apache2, MySQL) vorgenommen.




OX AppSuite Apache MySQL
OID OIDC Java
ID4me
1 Jahr
2019-01 - 2019-12

Id4me Relying Party api

Software-Entwickler apache maven OID OIDC ...
Software-Entwickler

Entwicklung einer Relying Party API und einer Java API für das ID4me Identity Management (https://id.denic.de/aim/docs/api/v1/).

Um die Entwicklung einer Relying Party für ID4me zu vereinfachen, habe ich eine Java API programmiert welche die Kommunikation mit der Identity Authority und dem Identity Agent kapselt.
Die Relying Party wird automatisch bei der Identity Authority registriert, falls noch keine Registrierungsdaten vorhanden sind.
Das ID4me DNS-Discovery wird mit DNSSEC durchgeführt.
Die APIs sind in Maven Central als Open Source veröffnetlicht (https://search.maven.org/search?q=a:relying-party-api, https://search.maven.org/search?q=a:aim-api-wrapper) und können z.B. mit maven in eigene Projekte eingebunden werden.

Eclipse
apache maven OID OIDC ID4me Java OAuth
1 Jahr
2018-05 - 2019-04

Android local VPN Filter

Software-Entwickler VPN DNS Java ...
Software-Entwickler

Entwicklung eins Android VPN Client, der alle ausgehenden IP Pakete auf dem Android Device prüft und ggf. verarbeitet.
Dieser Filter erweitert die DNS Pakete um OX Protect spezifische Parameter, damit ein DNS Server diese erkennen kann und abhängig von zum Beispiel einer Altersfreigabe sperrt, oder zulässt.

Der Filter wurde in Java, als Android VpnService, programmiert und verwendet Pcap4J (https://github.com/kaitoy/pcap4j) um die ip/udp Pakete zu bearbeiten.


Entwicklung eins Android VPN Client, der alle ausgehenden IP Pakete auf dem Android Device prüft und ggf. verarbeitet.
Dieser Filter erweitert die DNS Pakete um OX Protect spezifische Parameter, damit ein DNS Server diese erkennen kann und abhängig von zum Beispiel einer Altersfreigabe sperrt, oder zulässt.

PowerDNS Android
VPN DNS Java UDP/IP
Open Xchange
1 Jahr
2018-01 - 2018-12

WebRTC Client

Software-Entwickler webRTC STUN TURN ...
Software-Entwickler

Entwicklung eines Clients für Chat over IMAP (COI). Es wurden der Kurento Mediaserver und Coturn für STUN/TURN verwendet, weil diese frei, gut dokumentiert sind und von einer Community unterstützt werden.
Der Client wurde mit Node.js realisiert und unterstütz Video chats mit mehreren Teilnehmern, die sich entweder über einen Link, z.B. in einer Email authentifizieren können, oder die Berechtigung für den Call durch einen Benutzer mit Passwort nachweisen.

Kurento
webRTC STUN TURN Node.js Git
Open Xchange
1 Jahr 7 Monate
2017-06 - 2018-12

Emailsignatur in einer Blockchain speichern

Software-Entwickler smart contract Blockchain SMTP ...
Software-Entwickler

Um nach dem Empfang von Emails prüfen zu können, ob diese unverändert ist, wird beim Versand der Email ein Hash der Email in der Blockchain (Ethereum) gespeichert.
Dieser Hash kann dann vom Empfänger der Email aus der Blockchain gelesen werden und die Authentizität der Email bestätigen.
Dazu habe ich einen Smart Contract für die Ethereum Blockchain programmiert, mit dem der Absender einen Hash der Email in der Blockchain speichern und diesen einer ID (Mail-ID) zuordnen und einen Smart Contract, mit dem man den Hash zu einer ID lesen kann.
Der Empfänger kann so den Hash zu der empfangenen Mail-ID aus der Blockchain lesen und mit einem selber berechneten Hash vergleichen.
Stimmen beide Werte überein, wurde die Email und evtl. vorhandene Dateianhänge nach dem Emailversand nicht mehr geändert.

Für Thunderbird habe ich mit JavaScript ein Add-On programmiert, mit dem man ausgehende E-Mails markieren kann, damit diese vom SMTP Server in der Blockchain gespeichert werden und ein Add-On, mit dem die Email überprüft werden kann.
Für den Postfix Server habe ich einen Filter in Java programmiert, der die Email parsed und abhängig davon, ob ein bestimmter Email-Header existiert, den Hash der Email in der Blockchain speichert.

Ethereum Postfix Thunderbird
smart contract Blockchain SMTP JavaScript Java
Open Xchange
3 Jahre
2015-01 - 2017-12

Entwicklung einer Systemarchitektur für TrustedEmailServices

Systemarchitekt PGP Emailsicherheit Verschlüsselung ...
Systemarchitekt

Ausarbeitung und Implementierung einer Architektur für sichere Email für die Initiative TrustedEmailServices (https://tesmail.org/).
Es wurde eine Architektur entwickelt und umgesetzt, mit der ähnlich zu email-made-in-germany, die Mailserver der Teilnehmer garantiert verschlüsselt kommunizieren.
Zusätzlich kann ausgehende Mail, wenn der Absender es wünscht, vom Mailserver mit pgp, oder aes verschlüsselt werden.
Die wurden so konfiguriert, dass sie mindestens TLS 1.2 mit PFS und DANE/DNSSEC unterstützen.
Ich habe einen Service für postfix programmiert, der die Mails verschlüsselt und pgp keys erstellt und im sks Server speichert.
Zusätzlich habe ich einen Service für postfix programmiert, der prüft, ob die Transportverschlüsselung den Vorgaben entspricht und wenn nicht, die Mail mit einer Meldung an den Absender zurückschickt.
Das projekt findet in einem internationalen Umfeld statt (unter Anderem: USA, Finnland, Niederlande, England) und es wird deswegen überwiegend in Englisch kommuniziert.

PGP Emailsicherheit Verschlüsselung Verschlüsselungsverfahren TLS
Open Xchange
Remote
5 Monate
2017-01 - 2017-05

Patent: CONDITIONAL REMOVAL OF ADVERTISEMENTS FROM WEB CONTENT

(Co-) Inventor HMAC
(Co-) Inventor

https://patents.google.com/patent/WO2018203223A1/en

Gegenwärtig wird Werbung von Webservern in zum Beispiel Webseiten, oder Chat-Räumen eingebaut unabhängig davon, ob der Benutzer die Werbung wünscht, oder nicht.
Es ist keine Möglichkeit bekannt, mit der ein Benutzer diese Werbung global verhindern kann, außer er verwendet einen Werbeblocker.
Wir haben eine Methode entwickelt, mit der ein Benutzer bei seinem Internetprovider global konfigurieren kann, welche Werbung er angezeigt bekommen möchte, oder ob keine Werbung angezeigt werden soll.
Dabei überprüft der Inhalteanbieter, welcher ISP für eine IP Adresse registriert ist und ob mit diesem ein Vertragsverhältnis besteht. Abhängig von dem Status den der ISP für diese IP-Adresse liefert, wird Werbung in einer Webseite angezeigt, oder nicht.

HMAC
Open Xchange
1 Jahr
2016-01 - 2016-12

Dovecot advertising injection prototype

Software-Entwickler JavaScript HTML Java
Software-Entwickler

Entwicklung eines Programms mit dem Werbung für einen definierten Zeitraum in einem IMAP Ordner angezeigt werden kann.
Für den Prototypen habe ich die E-Mail direkt in die Dovecot Mailbox eingefügt und nicht als virtuelles IMAP Objekt im Dovecot erstellt.
Ich habe eine Benutzeroberfläche mit Spring Boot und HTML programmiert, in der die aktuell laufenden Kampagnen angezeigt und bearbeitet werden können. Diese Seite habe ich dann in die Open Xchange AppSuite als zusätzlichen Tab integriert. Die Daten der Werbekampagnen wurden in einer MongoDB  Datenbank gespeichert.
Für dem Dovecot Server habe ich einen Hintergrundprozess geschrieben, der die Werbekampagnen in der Datenbank überwacht und, abhängig vom Status der Kampagne, E-Mails in der Inbox der Dovecot Benutzer anlegt, oder löscht.

MongoDB Dovecot Git Postfix
JavaScript HTML Java
Open Xchange
1 Jahr 5 Monate
2015-08 - 2016-12

BSI Arbeitsgruppe TR Sicherer E-Mail Transport

Consultant
Consultant

https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr03108/index_htm.html
Mitarbeit als Vertreter für Open-Xchange bei der Ausarbeitung der technischen Richtlinie "Sicherer E-Mail-Transport".
Die Technische Richtlinie "Sicherer E-Mail-Transport" (BSI TR-03108) definiert konkrete Anforderungen an einen E-Mail-Diensteanbieter (EMDA). Ziel der Technischen Richtlinie (TR) ist die Erhöhung der Vergleichbarkeit und Verbreitung sicherer E-Mail-Kommunikation.

BSI
Bonn
7 Monate
2016-04 - 2016-10

Patent: Ad hoc injection of IMAP objects

(Co-) Inventor imap smtp lmtp
(Co-) Inventor

https://patents.google.com/patent/US9531785B1/en

Gegenwärtig sammeln IMAP-Server eine Liste von E-Mails für eine bestimmte Benutzer-ID und einen bestimmten IMAP-Ordner, abhängig von den E-Mails, die der Benutzer über das Simple Mail Transfer Protocoll (SMTP)/Local Mail Transfer Protocoll (LMTP) erhalten hat. Es ist kein anderer Mechanismus bekannt, um zusätzliche Informationen in die E-Mail-Liste einzufügen, als die zusätzlichen Informationen als E-Mail an den IMAP-Server zu senden.
Daher müssen Werbe- oder andere Informations-E-Mails, wie z.B. Warnmeldungen, als E-Mails an eine Liste namentlich genannter Empfänger versandt werden und können von Spam-Filtern leicht identifiziert und entfernt werden, und Lese-/Löschvorgänge sind für die Protokollierung nicht leicht zu erkennen.

Wir haben eine Methode entwickelt, mit der IMAP Objekte direkt in der Inbox, oder einem beliebigen anderen IMAP Ordner eines Benutzers eingefügt werden können. Diese IMAP Objekte werden nicht über SMTP versendet, können aber von jedem IMAP Client (z.B. Thunderbird) angezeigt werden und sich wie normale E-Mails anfühlen und Werbung, oder andere Informationen enthalten.

Dovecot
imap smtp lmtp
Open Xchange

Aus- und Weiterbildung

Aus- und Weiterbildung

2000 Lotus Notes 5.x CLP Systemadinistration
1996 Lotus Notes 4.x CLP Systemadinistration

Kompetenzen

Kompetenzen

Top-Skills

Java ReactJS TypeScript Postfix Rust React.js Spring IMAP SMTP HTML Go JSON WebService Lotus Domino JavaScript Git Node.js E-Mail java

Produkte / Standards / Erfahrungen / Methoden

Android Studio
Apache
Apache
apache maven
Atlassian Confluence
Atlassian JIRA
Blockchain
Entwicklung von Smart Contracts
Dovecot
Eclipse
Eclipse STS
Emailsicherheit
Ethereum
Git
Gradle
HMAC
Kurento
Maven
Maven
Node.js
OAuth
OID
OIDC
OpenID
OpenID
OX AppSuite
PGP
Postix
Konfiguration und entwicklung diverser Mailfilter
PowerDNS
smart contract
Spring Boot
STUN
Thunderbird
TLS
TURN
UDP/IP
Verschlüsselung
Verschlüsselungsverfahren
VPN
Android Entwicklung
C++ Grafikprogrammierung mit OpenCV
Entwicklung von stored procedures in PL/SQL und Java für Oracle.
Entwicklung von Applikationen für WebSphere, Tomcat und Apache Server.
Entwicklung mit WebSphere Application Developer (WSAD).
Entwicklung mit Eclipse.
ETL Prozesse mit Informatica / Oracle.
Personalisierte Portale in verbindung mit Lotus Domino und relationalen Datenbanken.
Informationssysteme für das Intra- / Internet auf basis Domino / Java.
Seit 1994 Jahre Erfahrung mit Lotus Notes Datenbankentwicklung.
Seit 1996 Jahre Erfahrung in der Internetprgrammierung.
Anbindung von MS-Office über OLE.
Anbindung von Lotus Domino über Java/C/C++ API.
Entwicklung mit der Domino.doc API
Sametime 1.5 Anbindung.
Personalisierung von Webseiten über Relationale Datenbanken (DB2).
Integration und Anpassung von Lotus domino.doc.
Integration von IBM Maschine Translation in Intanetanwendung.

Betriebssysteme

Android
Linux
MS-DOS
OS/2
Unix
Windows
Windows CE

Programmiersprachen

Basic
C
C++
Clipper
dBase
Go
HTML
Java
Auch in Verbindung mit Lotus Notes und JDBC
JavaScript
Auch in Verbindung mit Lotus Notes und JDBC
Kotlin
Lotus Notes Script
Sehr gute kenntnisse
Perl
PL/SQL

Datenbanken

DB2
JDBC
Lotus Notes
MongoDB
MySQL
MySQL
ODBC
Oracle
SQL
xBase

Datenkommunikation

CORBA
DNS
EMail
ID4me
IMAP
IMAP SMTP LMTP
Internet, Intranet
lmtp
Postfix
SMTP
TCP/IP
webRTC

Branchen

Branchen

Banken
Finanzdienstleister
Versicherung
Finanzbranche
Consulting
Automobil

Vertrauen Sie auf GULP

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das GULP Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.