Software Entwicklung Android und iOS, Embedded Entwicklung sowie C++, Qt, Linux
Aktualisiert am 29.01.2024
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 01.10.2024
Verfügbar zu: 100%
davon vor Ort: 100%
Android
iOS
C++
Software-Entwicklung
Linux
Qt
Swift
Java
Kotlin
Bluetooth
Deutsch
Muttersprache
Englisch
Fließend

Einsatzorte

Einsatzorte

Deutschland
möglich

Projekte

Projekte

5 Monate
2019-11 - 2020-03

Entwicklung eines Software Development Kits zur Kommunikation mit embedded Geräten

Software-Entwickler C Bluetooth LE C++ ...
Software-Entwickler

Für einen Kunden aus der Automobilindustrie wurde ein Software Development Kit (SDK) für eine End-to-End Kommunikation zwischen einem Hardware Endgerät und einem Mobilgerät entwickelt. Das Kommunikationprotokoll sowie die Implementierung für Mobilgeräte waren bereits verfügbar und produktiv. Die zuvor existierende Anwendung für das Hardware Endgerät sollte vollständig neu entwickelt und in ein SDK überführt werden, mit dem Ziel dieses auf verschiedenen Embedded Endgeräten, insbesondere verschiedenen Microcontrollern zur Verfügung zu stellen.

Die Entwicklung erfolgte vollständig in C mit dem Ziel möglichst geringe Speicher Anforderungen, sowohl an RAM als auch an Programmspeicher/Flash, zu stellen. Weiterhin wurden sämtliche Hardware-, Betriebssystem- und sonstige Software-Anforderungen (einschließlich Speicherallokationen und Crypto Funktionen) in einen (Hardware-)Abstraktionslayer überführt, so dass diese je nach Möglichkeiten der Zielplattformen implementiert werden können.

Es wurde eine Beispielimplementierung auf einem Microcontroller vorgenommen, die die Funktionalität vollständig zur Verfügung stellt und sämtliche Anforderungen des SDKs, insbesondere in Bezug auf Speicher, demonstriert. Die Kommunikation mit dem Mobilgerät erfolgt hier über Bluetooth LE, von der verwendeten Kommunikationstechnik abstrahiert.

Alle Kernfunktionalitäten wurden durch Unit Tests abgedeckt.

Code Composer Studio
C Bluetooth LE C++ googletest TI-RTOS
3 Monate
2019-08 - 2019-10

Python-Bindings zur Anbindung einer C++ Library an Python

Software-Entwickler
Software-Entwickler

Für ein produktiv eingesetztes internes Test Framework eines umfangreichen Systems mit Client/Server Architektur sollte die zugrundeliegende Client Bibliothek sowie das zugehörige Datenmodell ersetzt werden. Hierzu sollte eine bereits in C++/Qt geschriebene Kommunikations-Library eingesetzt werden.

Das existierende, Python basierte, Test Framework wurde vollständig durch ein neues Framework ersetzt, welches die C++/Qt Library in den Python Tests verfügbar macht. Dabei wurde die Funktionalität des alten Frameworks vollständig nachgebildet, so dass nur minimale Änderungen an den existierenden Tests (mehrere tausend) notwendig wurden.

Hierzu wurden Python Bindings für die C++ Library auf Basis von Shiboken/PySide entwickelt, sowie eine Python basiertes Test Framework, das die erforderliche API darstellt und die Bindings für die Tests verfügbar macht.

Python C++ Qt Shiboken2 PySide2 PyCharm
4 Monate
2019-04 - 2019-07

Weiterentwicklung von Android App zur Heimautomatisierung

Software-Entwickler
Software-Entwickler

Für eine bestehende, produktive Android App im Bereich Heimautomatisierung / Internet of Things wurden Wartungsarbeiten und Bugfixing durchgeführt. Die Wartungsarbeiten umfassten insbesondere Anpassungen an Verhaltensänderungen von Android Versionen 8 und 9, insbesondere in Bezug auf Hintergrunddienste. Das zur Verfügung gestellte Android Appwidget wurde so umgeschrieben, dass der bisher verwendete Service nun ein Vordergrunddienst ist, da sonst das Widget auf diesen Android Versionen nicht länger verfügbar gewesen wäre.

Weiterhin wurden für ein Release auf dem chinesischen Markt, alle Google Dienste (einschließlich Push-Notifications) durch eine alternative Library, die auf dem dortigen Markt funktionsfähig ist, ersetzt. Hierzu wurde die chinesische Library in die App bzw. eine separate Version der App integriert. Da die Dokumentation aller technischen Schnittstellen ausschließlich in chinesisch vorlag, erfolgte die Implementierung in Zusammenarbeit mit den dortigen Kollegen.

C/C++ Android Java Android Studio
1 Jahr 2 Monate
2018-04 - 2019-05

Entwicklung Mitarbeiterapp

Software-Entwickler Scrum REST
Software-Entwickler

Für einen Kunden aus der Automobilindustrie wurde eine interne Mitarbeiterapp neu entwickelt. Die Android und iOS Versionen wurde separat entwickelt, jeweils nativ mit Java bzw. Swift, mein Aufgabenbereich war zunächst die Android App.

Wesentliche Funktionsmerkmale waren ein sicherer Login in das interne Firmennetz, Zeitverwaltung, Abruf interner Dokumente, Bereitstellung interner Unternehmensinformationen und die Integration einer von einem separaten Team entwickelten umfangreichen Webapp zur Arbeitszeitverwaltung. Weiterhin waren ein Einrichtungswizard und ein Demo-Modus Bestandteile.

Zusätzlich wurde ein vollständiger Mock-Server zur Fehlerfindung entwickelt, der Testdaten bereitstellen konnte und ohne das gesicherte Unternehmensnetz (das selbst für Entwickler nur eingeschränkt verfügbar war) funktionierte.

Die Entwicklung fand in einem Team mit mehreren Entwicklern mit SCRUM statt. Ich wurde in dem Projekt als Android Experte hinzugezogen, da bisher in diesem Feld noch wenig Expertisen vorhanden waren. Dementsprechend waren meine Aufgabenbereiche neben verschiedener Features die Weiterentwicklung des allgemeinen Frameworks und Qualitätssicherung.

Ab ungefähr 2019 habe ich aufgrund der internen Prioritätensetzung das parallel arbeitende iOS Team verstärkt. Hier war mein Aufgabenbereich insbesondere die Erweiterung und Neuentwicklung von automatisierten Tests sowie die Entwicklung einer Lösung für Dokumentenscan und -übermittlung nach Design und API Vorgaben.

Android Java Android Studio git Swift iOS Xcode Python
Scrum REST
1 Monat
2019-03 - 2019-03

Weiterentwicklung von Android App zur Heimautomatisierung

Software-Entwickler
Software-Entwickler

Wartungsarbeiten an einer bestehenden produktiven App für Android. Die Apps fungieren als mobile Benutzerschnittstelle zum eigentlichen Produkt und sind im Bereich Heimautomatisierung anzusiedeln. Aufgrund von neueren Android Versionen waren Anpassungen für die TLS Kommunikation mit dem externen Gerät (internet of Things) notwendig geworden. In diesem Zuge wurden ebenfalls Anpassungen an neue Android Versionen vorgenommen, insbesondere um die Vorgaben von Google Play zu erfüllen.

Java Android Studio Android
5 Monate
2017-11 - 2018-03

Entwicklung von iOS- und Android-App zur Steuerung von Bluetooth LE Geräten

Entwickler, Software-Architekt, Technischer Projektleiter C/C++ Android Java ...
Entwickler, Software-Architekt, Technischer Projektleiter

Es wurde eine App für die Konfiguration sowie Steuerung einer Bluetooth LE basierten Gerätereihe aus dem Bereich Elektroinstallationstechnik sowie Internet of Things erstellt. Die Designvorlagen wurden vollständig vom Kunden zur Verfügung gestellt.

Die App wurde bereits von einem anderen Team entwickelt, lag zu (unserem) Projektbeginn jedoch trotz bereits weit verstrichener Deadline in einer nicht funktionsfähigen Fassung vor. Nach Abstimmung mit dem Kunden sowie nach einem Review der bereits vorliegenden App wurde entschieden die App vollständig neu zu entwickeln, da dies schneller war als den vorliegenden Stand zu reparieren. Die JavaScript basierte Web-App bzw. der WebContainer wurde durch eine native App ersetzt, deren Business Logik weitgehend in C++ geschrieben ist und lediglich Plattform-spezifische Komponenten (insbesondere die Bluetooth LE Kommunikation) jeweils separat in Java sowie Swift/Objective-C.

Eine frühe Prototyp App, welche die Grundfunktionalität und insbesondere die Bluetooth LE Kommunikation bereitstellt wurden auf Wunsch des Kunden innerhalb von 2 Monaten fertig gestellt, so dass der Kunde die internen Tests der Bluetooth Stabilität (inklusive der ebenfalls implementieren Firmware Updates über SUOTA) starten und die sich ebenfalls noch in Entwicklung befindliche Hardware finalisieren konnte. Insbesondere auf die Stabilität der Verbindung in der Android App wurde Wert gelegt, da der Kunde hier schlechte Erfahrungen gemacht hat.

Die Apps wurden in 3-4 Monaten vollständig und entsprechend den separat erstellten Designvorlagen des Kunden zur ausdrücklichen Zufriedenheit fertiggestellt.

Das Entwicklungsteam bestand aus 4 Mobilentwicklern, inklusiver mich selber. Neben meiner Entwicklungstätigkeit habe ich ebenfalls die technische Projektleitung des Entwicklungsteams und die Projektabstimmung mit dem Kunden übernommen.

Android Studio Xcode
C/C++ Android Java JNI/NDK iOS Objective-C Swift Bluetooth LE git SUOTA REST
Dortmund
1 Monat
2017-10 - 2017-10

Unterstützung von Geofencing in einer Android App

Entwickler, Software-Architekt C/C++ Java JNI/NDK ...
Entwickler, Software-Architekt

Für eine bestehende Android App im Bereich Heimautomatisierung / Internet of Things wurde Geofencing Unterstützung implementiert. Die Android App meldet an den von einer Fremdfirma bereitgestellten Server das Betreten sowie das Verlassen des Anwenders aus bestimmten Bereichen (etwa "zu Hause", "im Büro", etc.) und führt ggf. Aktionen durch, die vom Server definiert wurden. Die Geofences werden dabei mit dem Server bzw. mit verschiedenen Geräten synchronisiert.

Android Studio Xcode
C/C++ Java JNI/NDK Android Geofencing
Dortmund
6 Monate
2017-04 - 2017-09

Entwurf und Umsetzung von Low-Level OS und Hardware Testframework

Entwickler, Software-Architekt, Technischer Projektleiter Linux Python PyTest ...
Entwickler, Software-Architekt, Technischer Projektleiter

Für eine Linux basiertes Hardware Gerät wurde ein Testframework entwickelt, das die Funktionalität des Betriebssystems, der Treiber und der Firmware insgesamt bei Hardware- sowie Software Updates (etwa neue Treiber Versionen) sicherstellt. Das Python/PyTest basierte Test Framework läuft hierbei auf einem Desktop PC und kontrolliert das zu testende Gerät mittels spezieller Zusatzhardware, etwa einem Labornetzteil (um das zu testende System zu starten sowie die Spannung gezielt zu stören) und I/O Anschlüssen zum Abfragen von Sensorwerten.

Für die Ansteuerung der Spezialhardware wurden teilweise einfache Treiber bzw. Tools entwickelt und um die Sensordaten in geeigneter Form zur Nachverarbeitung zur Verfügung zu stellen.

Für die darüberhinausgehenden Tests auf OS-Ebene (etwa CPU Last, I/O Geschwindigkeit, Netzwerkfunktionalität, etc.) stellt das Testframework ssh Verbindungen zu dem zu testenden Gerät her.

Für die einfachen Einsatz durch die Tester und zur besseren Überwachung der Testergebnisse insbesondere bei Langzeittests wurde eine HTML/PHP/JavaScript basiertes Web Frontend entwickelt.

Linux Python PyTest SSH JavaScript PHP KNX
Dortmund
1 Monat
2017-03 - 2017-03

Design und Implementierung einer REST und Websocket API

Entwickler, Software-Architekt C/C++ Go Python ...
Entwickler, Software-Architekt

Für ein bestehendes Heimautomatisierungssystem / Internet of Things wurde eine REST API sowie parallel eine Websocket basierte API für die Nutzung durch externe Firmen und Tools (etwa zur Anbindung von Sprachsteuerungssystemen wie Amazon Alexa) entwickelt. Hierzu wurden die jeweiligen Protokolle von Grund auf spezifiziert und in einem Server Backend implementiert. Das Projekt war als Demo sowie Proof-of-Concept gedacht und wurde nach erfolgreicher Durchführung zwecks produktivem Einsatz an einen weiteren Dienstleister übergeben.

Die Implementierung erfolgte zunächst auf Basis von Python, aufgrund diverser Einschränkungen ist es jedoch frühzeitig auf Go umgestellt worden, was die Effizienz der Umsetzung deutlich erhöht hat.

Das Protokoll sowie das Backend befindet sich derzeit im produktiven Einsatz.

C/C++ Go Python REST Websockets JSON-RPC Linux
Dortmund
10 Monate
2016-06 - 2017-03

Integration einer iOS und Android App zur Heimautomatisierung in eine Cloud Lösung

Entwickler Java Objective-C iOS ...
Entwickler

Integration einer produktiv eingesetzte App zur Heimautomatisierung in eine Cloud Lösung des Kunden. Das Cloud Backend wurde von einer Drittfirma bereitgestellt, die Apps müssen mit diesem kommunizieren. Dabei sollen die Apps weiterhin die lokale, d.h. über W-LAN verfügbare Funktionalität bevorzugen, sofern das Mobilgerät in dem lokalen Netz ist, andernfalls soll die Cloud Variante gewählt werden. Die Kommunikation der Cloud Variante erfolgt ausschließlich über SSL gesicherte Verbindungen.

Android Studio Xcode
Java Objective-C iOS Android
Dortmund
1 Jahr 3 Monate
2016-01 - 2017-03

Weiterentwicklung von iOS und Android App zur Heimautomatisierung

Entwickler Objective-C Java iOS ...
Entwickler

Wartung und Weiterentwicklung von verschiedenen bestehenden und produktiven Apps für iOS Android. Die Apps fungieren als mobile Benutzerschnittstelle zum eigentlichen Produkt und sind im Bereich Heimautomatisierung anzusiedeln.
Die Wartungsarbeiten und Weiterentwicklungen erfolgten je nach Bedarf über einen weiten Zeitraum verteilt.

Android Studio Xcode
Objective-C Java iOS Android Apple Maps
Dortmund
4 Monate
2016-10 - 2017-01

Entwicklung von Android/iOS Widgets

Entwickler, Software-Architekt C/C++ Java JNI/NDK ...
Entwickler, Software-Architekt

Für eine bestehende App wurden Android AppWidgets sowie iOS today Widgets entwickelt. Aufgrund von Einschränkungen der jeweiligen Plattformen, wurden die GUIs der jeweiligen Widgets neu entwickelt und nach Design Vorgaben des Kunden umgesetzt. Die Widgets stellen weitgehende Funktionalität der zuvor existierenden App als Hintergrund Service zur Verfügung, hierfür wurde eine gemeinsame Code Basis entwickelt. Die Apps sind im Bereich Heimautomatisierung anzusiedeln und ermöglichen die Steuerung und Status Anzeige von Geräten über ein proprietäres Protokoll des Kunden. Die Widgets sind inzwischen in den Stores verfügbar und wurden von den Endkunden sehr gut aufgenommen.

Android Studio XCode
C/C++ Java JNI/NDK Objective-C Android iOS AppWidgets today widgets Git
Dortmund
2 Monate
2016-09 - 2016-10

Entwicklung Android App zur Bereitstellung von Mediendaten und Lokalisierung im Raum

Entwickler Java Android Bluetooth LE ...
Entwickler

Entwicklung eine Android App zur Präsentation auf einer Messe. Die App stellt anhand der aktuellen Position des Anwenders in einem Raum vorgegebene Bilder und Videos dar. Die Lokalisierung im Raum erfolgt mittels Entfernung zu Beacon Geräte, die über Bluetooth gefunden werden. Der Anwender kann am Messestand mit weiteren externen Geräten agieren und so die dargestellten Inhalte in der App beeinflussen.

Android Studio
Java Android Bluetooth LE iBeacon
Dortmund
1 Monat
2016-09 - 2016-09

Erweiterung von iOS App zur Bluetooth Kommunikation mit proprietärer Hardware

Entwickler iOS Bluetooth LE
Entwickler

Erweiterung einer iOS App zur Kommunikation mit der Hersteller-eigenen Hardware. Die produktive App kommuniziert über Bluetooth mit dem Gerät, es wurde Unterstützung für neue Funktionalität des Geräts in die App eingebaut, sowie das existierende Kommunikationsprotokoll aktualisiert.

Xcode
iOS Bluetooth LE
Dortmund
5 Monate
2016-05 - 2016-09

Review eines Crypto Konzeptes sowie Design und Implementierung eines Test Frameworks

Entwickler, Software-Architekt C/C++ Kryptographie SSL ...
Entwickler, Software-Architekt

Für eine bestehende und produktive Software Library auf Basis von C/C++ zur Ansteuerung von Internet-of-Things Geräten wurde das Crypto Konzept der Cloud Implementierung reviewed. Dieses Review umfasste zwei Phasen, zum einen das High-Level Pairing Konzept (Zertifikatserstellung, Login, Logout, Zertifikaterneuerung, etc.) und zum anderen das Verschlüsselungskonzept der Kommunikation. Im Zuge des Reviews wurde darüberhinaus ein Test Framework entwickelt das die Funktionsfähigkeit von Schlüsselfunktionalitäten, insbesondere bzgl. des Crypto Konzeptes, sicherstellt. Hierzu wurden die in Frage kommenden Fehlerfälle (etwa Zertifikat abgelaufen) und ausgewählte wichtige Angriffsszenarien identifiziert und in einem dafür entwickelten Python und PyUnit basierten Toolkit realisiert.

C/C++ Kryptographie SSL Zertifikate Python PyUnit Unit-Tests Web Server XMPP Linux
Dortmund
2 Monate
2016-05 - 2016-06

Unterstützung für mehrere Sprachen in Desktop Applikation sowie Unterstützung für weiteres Dateiformat

Entwickler C/C++ Qt CMake ...
Entwickler

Anpassung einer produktiven Linux/Windows Desktop Applikation an Mehrsprachigkeit. Die Qt basierte Applikation lag komplett in Englisch vor und sollte unter Verwendung des Qt Lokalisierungs-Frameworks für mehrere Sprachen, insbesondere aus dem asiatischen Raum vorbereitet werden.

Nach erfolgreicher Durchführung wurde unabhängig davon die Unterstützung eines weiteren branchenspezifischen Dateiformats implementiert.

C/C++ Qt CMake Git Linux Windows
Dortmund
5 Monate
2016-02 - 2016-06

Entwicklung einer VNC/RFB Library

Entwickler, Software-Architekt C/C++ Java JNI/NDK ...
Entwickler, Software-Architekt

Entwicklung einer C/C++ Library für Implementierung von Fernwartungs-Applikationen auf Basis des RFB/VNC Protokolls. Die Library wurde von Grund auf für spezifische Anforderungen und insbesondere mit Unterstützung für Mobile Geräte entwickelt, da bereits verfügbare Lösungen die Anforderungen nicht erfüllen konnte. Es wurden mehrere gängige VNC Erweiterungen implementiert und Anbindungen an Android, iOS und Windows 10 sowie Windows 10 Mobile entwickelt. Besonderes Augenmerk wurde auf einfache Benutzbarkeit und Performanz gelegt, da der Einsatz auf Mobilen Geräten möglich sein sollte.

Android Studio Xcode
C/C++ Java JNI/NDK Objective-C VNC/RFB iOS Android Windows 10 Linux
Dortmund
3 Monate
2016-01 - 2016-03

Entwicklung einer Fernwartungssoftware auf Basis von RFB/VNC

Entwickler, Software-Architekt C/C++ Java JNI/NDK ...
Entwickler, Software-Architekt

Der Kunde produziert und betreibt Industrieanlagen, deren aktueller Systemzustand von Smartphone und Tablet Geräten überwacht und ggf. gewartet werden soll. Die Wartung bzw. Fernsteuerung erfolgt mit Hilfe des RFB (VNC) Protokolls. Die hierfür entwickelte App implementiert dieses Protokoll in einer C/C++ Library die von der App verwendet wird um Verbindungen zu mehreren Anlagen zu ermöglichen. Dabei war zu beachten, dass die Anlagen häufig nur über eine sehr langsame und instabile Internet Verbindunng verfügen, die Kommunikation muss daher entsprechend solide sein. Die App wurde darüberhinaus vollständig gebranded, da sie an Endkunden herausgegeben werden soll.

Android Studio
C/C++ Java JNI/NDK VNC/RFB Android
Dortmund
6 Monate
2015-07 - 2015-12

Aufbau von Server-Synchronisations Framework

Entwickler, Software-Architekt, System Administrator PostgreSQL Python SVN ...
Entwickler, Software-Architekt, System Administrator

Für eine bestehende Server Infrastruktur auf PostgreSQL Basis wurde ein spezialisiertes Synchronisations Framework entwickelt, welches die kritischen Daten des Kunden auf einen Backup Server überträgt, um im Ernstfall einen reibungslose Umstellung zu ermöglichen. Wegen verschiedener kritischer Randbedingungen waren normale Replikations Lösungen nicht ausreichend und konnten nicht eingesetzt werden, daher wurde eine spezialisierte Lösung auf Basis von Python entwickelt. Die Lösung synchronisiert dabei verschiedene Datenbank Tabellen unter Beachtung von interner Business Logik, sowie verschiedener Zusatz Daten, die nicht in der Datenbank gespeichert werden.

PostgreSQL Python SVN SSH Linux
Dortmund
1 Jahr 11 Monate
2014-02 - 2015-12

Entwicklung eines plattformübergreifenden Smartphone Spiels

Entwickler, Software-Architekt C/C++ Java C# ...
Entwickler, Software-Architekt

Entwicklung eines auf Smartphones (iOS/Android/WP8) ausgerichteten 3D (OpenGL bzw. Direct3D) Spiels.

Meine Tätigkeit in diesem Projekt umfassen neben plattformübergreifenden Tätigkeiten an der Engine insbesondere die Umsetzung der Android und Windows Phone 8 Varianten.

MSVC
C/C++ Java C# Direct3D OpenGL Android SVN Git PostgreSQL WP8
Dortmund
6 Monate
2015-06 - 2015-11

Weiterentwicklung von iOS und Android App zur Heimautomatisierung

Entwickler Objective-C Java iOS ...
Entwickler

Wartung, Aktualisierung und Weiterentwicklung einer bestehenden und produktiven App für iOS (iPhone und iPad) und Android (Phones und Tablets). Die App fungiert als mobile Benutzerschnittstelle zum eigentlichen Produkt und ist im Bereich Heimautomatisierung anzusiedeln. Es wurden verschiedene Änderungen am Laufzeitverhalten, an der Benutzeroberfläche sowie Fehlerbehebungen vorgenommen, die im Laufe der Zeit in den App Versionen aufgelaufen waren.

Xcode Eclipse Android Studio
Objective-C Java iOS Android
Dortmund
1 Monat
2015-09 - 2015-09

Weiterentwicklung Android App

Entwickler Java Android
Entwickler

Weiterentwicklung einer bestehenden Android App zur Geräteansteuerung mittels Bluetooth. Die Anpassung erfolgte analog zu einer vorangegangenen Anpassung für iOS.

Eclipse
Java Android
Dortmund
1 Monat
2015-08 - 2015-08

Weiterentwicklung iOS App

Entwickler Objective-C iOS
Entwickler

Weiterentwicklung einer bestehenden iOS App zur Geräteansteuerung mittels Bluetooth.

Die Funktionalität der App stand bereits zur Verfügung, es wurde lediglich eine komplett aktualisierte graphische Benutzerschnittstelle nach Vorgaben des Kunden entwickelt. Aufgrund eines bevorstehenden Messetermins wurde das gesamte Projekt innerhalb von drei Wochen vollständig umgesetzt.

Xcode
Objective-C iOS
Dortmund
2 Jahre 8 Monate
2013-01 - 2015-08

Weiterentwicklung einer Serverbasierten Streaming Lösung für medizinische Daten

Entwickler, Software-Architekt SQL/PostgreSQL Qt PACS ...
Entwickler, Software-Architekt

Weiterentwicklung einer Serverapplikation für die effiziente Verteilung medizinischer Bilddaten in Krankenhaus- und Praxis-Umgebungen. Hierbei muss die Software die für Befundungen und teils Behandlungen erforderliche Daten aus unterschiedlichen Quellen an die jeweiligen Abteilungen weiterleiten. Die teils erheblichen Datenmengen (oft mehrere Terabyte/Tag) werden mittels eigens entwickelter Streaming Technologie und mit Proxy-Unterstützung übertragen.

Das Projekt wurde von mir aus einem bereits fortgeschrittenen, aber komplett nicht funktionsfähigen Zustand übernommen und zur Einsatzfähigkeit gebracht. Weiterhin wurden Teile der Kernfunktionalität von Grund auf neu entwickelt.

SQL/PostgreSQL Qt PACS SVN Unit Tests / Integration Tests Multithreading Performance Optimization Boost Linux trac
Dortmund
3 Monate
2014-10 - 2014-12

Portierung einer iOS Magazin-App nach Android

Entwickler Java Android Git ...
Entwickler

Portierung einer bereits veröffentlichten Magazin-App von iOS nach Android. Die Magazine können direkt mit in-App Purchases aus der App gekauft und gelesen werden.

Technisch werden die einzelnen Magazine durch Zip Archive mit HTML Inhalten umgesetzt, d.h. mittels WebView/WebKit. Ebenfalls wird ein Web-Login für plattformübergreifende Synchronisierung bereitgestellt.

Eclipse
Java Android Git PHP PostgreSQL WebKit
Dortmund
3 Monate
2014-07 - 2014-09

Softwarekomponente zur Ansteuerung eines externen Geräts

Entwickler C/C++ Qt JSON ...
Entwickler

Entwicklung einer Qt basierten Softwarekomponente eines Embedded Devices zur Ansteuerung und Kontrolle eines externen Geräts. Die Komponente ist Teil eines zu weiten Teilen bereits beim Kunden bestehenden größeren Embedded Devices und musste dort entsprechend integriert werden.

Das externe Gerät wird über eine (vom Hersteller vorgegebene) Web/JSON Schnittstelle gesteuert und kontrolliert. Die entwickelte Komponente sollte insbesondere die verwendeten Ein-/Ausgabe Parameter des externen Geräts in die (sofern möglich) jeweiligen Repräsentationen des Embedded Devices umgerechnet werden.

C/C++ Qt JSON Git Linux
Dortmund
8 Monate
2013-12 - 2014-07

Projekt in IT-Sicherheit

Entwickler
Entwickler

Softwareentwicklung einer sicherheitsrelevanten Softwarekomponente für Drittfirma.

München, Dortmund
4 Jahre 4 Monate
2009-10 - 2014-01

Weiterentwicklung, Wartung und Support von Flaggschiffprodukt eines Softwareherstellers in der Medizinbranche

Entwickler, Software-Architekt C++ Qt SQL/PostgreSQL ...
Entwickler, Software-Architekt

Weiterentwicklung, Wartung und Support des Flaggschiffproduktes eines Softwareherstellers in der Medizintechnik. Die Software ist ein Befundungssystem für radiologische Bilddaten („Picture Archiving and Communication System“, „PACS“) und wird insbesondere von Radiologen verwendet. Als Flaggschiffprodukt des Unternehmens verfügt die Software über viele Teilaspekte die im Laufe dieses Projektes bearbeitet und/oder entwickelt wurden, einschließlich:

  • Benutzerfreundliche Oberfläche, da ärztliches Personal Zielgruppe ist
  • Anspruchsvolle Real-Time Netzwerk Unterstützung (Streaming)
  • 3D Visualisierung
  • Synchronisierung verschiedener Anzeigen sowie verschiedener Bilddaten mittels jeweils geeigneter Algorithmen
  • Vielfältige Datenbank Unterstützung, sowohl zentralisiert als auch dezentralisiert
  • Umfangreiche Unit-/Integration Tests, u.a. zur Erfüllung gesetzlicher Anforderungen sowie zur Umsetzung von QM Anforderungen
  • Usw.
C++ Qt SQL/PostgreSQL PACS SVN Unit Tests / Integration Tests Python Multithreading Performance Optimization pthread Boost trac Linux
Dortmund
5 Monate
2013-08 - 2013-12

Entwicklung von Artikel-/Magazin-App für Smartphones

Entwickler, Software-Architekt C/C++ Java JNI ...
Entwickler, Software-Architekt

Entwicklung einer Artikel- bzw. Magazin-App für iOS und Android, die Android Umsetzung war meine Verantwortung.
Die App ist die digitale „Auferstehung“ eines Print Magazins und stellt verschiedene (Text-)Artikel als In-App Purchases zur Verfügung. Die gekauften Artikel können auf allen unterstützten Plattformen (einschließlich einer Web-Variante) betrachtet und bewertet werden.
Die Entwicklung erfolgte in Kooperation mit dem Verlag, wobei wir die technische Umsetzung vollständig übernommen haben. Neben der eigentlichen App wurde auch eine Server- sowie Datenbankanbindung entwickelt und bereitgestellt. Die App ist im Android und iOS Store verfügbar und ist derzeit mit 4,5 Sternen bewertet.

Eclipse
C/C++ Java JNI Android Git swig PHP PostgreSQL CMake Qt GCM Linux
Dortmund
7 Monate
2013-02 - 2013-08

Portierung eines erfolgreichen iOS/Android Spiels auf Windows Phone 8

Projektleiter, Entwickler C/C++ C# Direct3D ...
Projektleiter, Entwickler

Umsetzung einer erfolgreichen iOS Spiele-App (Download Millionär) auf Windows Phone 8. Das Projekt umfasste den vollständigen Produkt-Workflow, angefangen bei der Machbarkeits- und Anforderungsanalyse, über die Entwicklungsplanung und der eigentlichen Software-Entwicklung, bis hin zur erfolgreichen Einstellung des fertigen Produkts in den Store.

MSVC
C/C++ C# Direct3D OpenGL SVN
Dortmund
1 Jahr
2011-12 - 2012-11

Entwicklung eines Softwaremoduls zur Bilddatenberechnung entlang von Bezier Kurven

Entwickler C++ Qt PACS ...
Entwickler

Entwicklung eines Softwaremoduls das aus Freihand Zeichnungen geglättete Bezier Kurven erstellt und entlang dieser Kurven neue Daten aus existierenden radiologischen Bilddaten erstellt. Die so erstellten Bilddaten können zur Befundung genutzt werden.

Das Projekt umfasst sowohl die theoretische Seite (Sichtung des Forschungsstandes, Anpassung der Formeln an gegebene Anforderungen, etc.), die Umsetzung in Software als auch die Erstellung der zugehörigen graphischen Benutzeroberfläche.

Ebenfalls enthalten ist eine Echtzeit Visualisierung der Ergebnisse für den Anwender.

C++ Qt PACS SVN Unit Tests / Integration Tests Multithreading Performance Optimization Linux
Dortmund
4 Monate
2012-04 - 2012-07

Erstellung einer Software Lösung für Langzeit-Archivierung auf Basis von Tivoli Storage Manager (IBM)

Entwickler, Systemadministrator bash PACS Linux
Entwickler, Systemadministrator

Planung, Konfiguration und Entwicklung einer Backup und Archivierung Lösung im medizinischen Umfeld mit gesetzlichen Vorschriften zur Langzeit Archivierung (30+ Jahre). Teilweise erfolgte Planungen eines vergleichbaren Projekts wurden übernommen und ausgebaut.

Die Archivierung erfolgte auf Tapes mit bereits vorhandener Hardware (insbesondere Tape Library), auf Basis von IBM Tivoli Storage Manager (TSM) 6.3.

Aufgrund der gesetzlichen Anforderungen zur Archivierung sowie des unternehmenskritischen Characters der zu sichernden Daten wurde besonderes Augenmerk auf die Ausfallsicherheit des automatischen Backup Systems gelegt, einschließlich redundanter off-site Backups.

Tivoli Store Manager (TSM) 6.3 TSM 6.1
bash PACS Linux
Dortmund
3 Monate
2012-01 - 2012-03

Konzeption, Einrichtung und Wartung einer Netzwerk- und System-Monitoring Infrastruktur

Entwickler, Software-Architekt, Projektleiter, Systemadmin Python sqlite bash ...
Entwickler, Software-Architekt, Projektleiter, Systemadmin

Netzwerk- und System-Monitoring einer verteilten Rechnerumgebung, bestehend aus über 100 Rechnern an verschiedenen Standorten (überwiegend Krankenhäuser). Das Projekt umfasst die gesamte Spannbreite, von Bestands- und Bedarfsanalyse über Wahl der zu verwendenden Software bis hin zur Einrichtung und Wartung. Es wurde Nagios (später teilweise Icinga) in einer verteilten Installation und Konfiguration verwendet. Aus Netzwerktechnischen Gründen wurde zusätzlich ein eigenes Kommunikationsframework entwickelt um Einschränkungen (insbesondere Routing und Firewall) einiger Kunden transparent zu berücksichtigen.

Das fertige System ist produktiv im Einsatz und stellt die durchgängige Funktionsfähigkeit von unternehmenskritischer Software, sowie von essentieller Hard- und Software des radiologischen Personals der betroffenen Krankenhäuser sicher. Insgesamt hat es den Support Aufwand erheblich verringert und ist auf entsprechend positives Echo gestoßen.

Nagios Icinga
Python sqlite bash Linux NRPE
Dortmund
4 Monate
2010-12 - 2011-03

Konzeption und Entwicklung einer Multithreading Bibliothek

Projektleiter, Entwickler, Software-Architekt C++ Qt SVN ...
Projektleiter, Entwickler, Software-Architekt

Planung (einschließlich Bedarfsanalyse) und Entwicklung einer Multithreading Bibliothek auf Basis des Threadpool Patterns. Die Bibliothek ist plattformunabhängig ausgerichtet und in C++ entwickelt. Für Qt Anwendungen werden spezialisierte Klassen zur vereinfachten Benutzung bereitgestellt.

Die Bibliothek ist auf einfache Benutzbarkeit bei möglichst niedrigem Performance Overhead ausgelegt und wurde verwendet um die Multithreading Unterstützung in mehreren kleineren Projekten zu ersetzen und zu verbessern.

C++ Qt SVN Unit Tests / Integration Tests Multithreading Performance Optimization Linux
Dortmund
7 Monate
2010-01 - 2010-07

Semi-Automatische Lymphknoten Segmentierung

Entwickler, Software-Architekt C++ Qt PACS ...
Entwickler, Software-Architekt

Entwicklung eines Software Moduls für bestehendes PACS System zur semi-automatischen Lymphknoten Segmentierung in dreidimensionalen radiologischen Bilddaten.

Das Modul enthält Unterstützung für mehrere, in beliebigen Zeitabständen erfolgte Untersuchungen und stellt einen webkit/HTML-basierten Viewer und Editor zur Befunderstellung durch den Radiologen bereit.

Die Entwicklung wurde in Kooperation mit einer externen Firma durchgeführt.

C++ Qt PACS SQL/PostgreSQL WebKit SVN Multithreading Linux
Dortmund
4 Jahre
2006-01 - 2009-12

Netzwerkadministration in einem studentischen Wohnkomplex

Systemadministrator, Supporter Samba leafnode postfix ...
Systemadministrator, Supporter

Administration der internen Netzwerk Infrastruktur einer Wohnanlage mit ca. 300 Appartements. Hierzu zählten

  • Server-Administration (Mail Server, interne Web- und Usenet Foren, Website, etc.),
  • Anwender Support bei Internet Problem und
  • Unterstützung der Wohnverwaltung, etwa durch Bereitstellung von Mailing Listen.
Wireshark
Samba leafnode postfix mailman Apache PHP bash Perl iptables Tcpdump phpbb Linux Windows
Dortmund
1 Jahr 2 Monate
2008-05 - 2009-06

Softwaresystem zur Analyse und Generierung genetischer Daten in der medizinischen Grundlagenforschung

Software-Architekt, Entwickler, Technischer Projektleiter C++ Qt Unit Tests / Integration Tests ...
Software-Architekt, Entwickler, Technischer Projektleiter

Konzeption und Entwicklung eines Softwaresystems zur Generierung von Modellen und Modelldatensätzen sowie zur Datenanalyse in der medizinischen Grundlagenforschung.

Die Software wurde für genetische Daten entwickelt und war demnach ausgerichtet auf große Daten mit teils mehreren Gigabyte.

Das Projekt umfasste den gesamten Entwicklungsprozess von der Anforderungsanalyse mit medizinischem Fachpersonal, über Einordnung und Sichtung des aktuellen Forschungsstandes mit folgender Verfahrensauswahl bis hin zur konkreten Realisierung.

C++ Qt Unit Tests / Integration Tests Multithreading Linux Windows
Dortmund
1 Jahr
2007-04 - 2008-03

Planung und Entwicklung einer Kollisionsdetektionsbibliothek

Software-Architekt, Entwickler C++ ODE OGRE ...
Software-Architekt, Entwickler

Entwicklung einer Kollisionsdetektionsbibliothek sowohl für feste, als auch für deformierbare Körper (etwa Kleidung).

Die Bibliothek ist auf moderne Multi-Core/Multi-Prozessor Architekturen ausgelegt, kann aber auch in single-Core Systemen sinnvoll verwendet werden. Für verschiedene Anwendungszwecke wurden verschiedene Kollisions Algorithmen implementiert, insbesondere für deformierbare Körper.

Die Bibliothek kann problemlos auch mit vielen Objekten gleichzeitig umgehen, mehrere Beispielanwendungen wurden zu Demonstrationszwecken realisiert.

Die Software wurde ausgiebig auf Performance optimiert um insbesondere auch für zeitkritische Anforderungen geeignet zu sein.

Diverse Unit Tests/Integration Tests wurden implementiert um die Korrektheit der berechneten Ergebnisse zu garantieren.

C++ ODE OGRE CEGUI OpenGL CppUnit CMake lib3ds UML Multithreading Unit Tests / Integration Tests Linux Windows
Dortmund
5 Jahre 11 Monate
2001-01 - 2006-11

Entwicklung von 3D-Echtzeit Strategiespiel

Projektleiter, Entwickler, Software-Architekt C++ Qt3 Qt4 ...
Projektleiter, Entwickler, Software-Architekt
  • Weiterentwicklung des Prototyps eines 2D-Echtzeit Strategiespiels (Real Time Strategy Game, RTS), insbesondere Entwicklung von Mehrspieler Fähigkeit (TCP/IP).
  • Planung und Entwicklung einer modernen 3D Umsetzung auf Basis von OpenGL.
  • Planung und Entwicklung eines Frameworks für KI, einschließlich einer eigens entwickelten Script-Engine unter Verwendung von Python.

Die Game-Engine unterstützt bis zu 10 Spieler, die jeweils über Netzwerk/Internet oder als Computer Spieler (während des Spiels austauschbar) realisiert sein können. Das Spiel verwendet eine peer-to-peer Netzwerkarchitektur und stellt Event-basierte Szenarien bereit.

  • Ebenfalls geplant und entwickelt wurden zugehörige Tools zur Unterstützung des Model Designs sowie ein Level Editor.
  • Die Arbeit anderer Teammitglieder, etwa Sound-Artists, Graphik-Artists sowie Pathfinding- und Graphik-Entwickler wurde unterstützt und koordiniert.
C++ Qt3 Qt4 OpenGL lib3ds Python Perl libufo automake/autoconf CMake SVN PHP Linux
Dortmund
5 Monate
2006-01 - 2006-05

Performance Optimierung in Visualisierungs Anwendung

Entwickler Java Swing Linux ...
Entwickler

Verbesserung der Laufzeit einer Prozess-Visualisierungs Anwendung. Bei umfangreichen Datenmengen wurde die Anwendung aufgrund der existierenden Implementierung inakzeptabel langsam.

Die Optimierung hat die Laufzeit wichtiger Funktionen von einigen Minuten bis Stunden auf teils unter eine Sekunde gedrückt.

Java Swing Linux Windows
Dortmund
10 Monate
2005-01 - 2005-10

Buch zum Thema ?Open Source Game Development?

Koautor C++ Qt OpenGL ...
Koautor

Koautor von [Name auf Anfrage].

Das Buch ist eine Einführung in das Thema „Destop Games“ (d.h. „kleine“ Spiele heute wird der Begriff „Casual Games“ verwendet) mit Hilfe von Qt.

Word OpenOffice Latex
C++ Qt OpenGL Latex SVN
Dortmund
4 Jahre
2001-01 - 2004-12

Systemadministration in einer karitativen Jugendeinrichtung

Systemadministrator, Supporter
Systemadministrator, Supporter

Technische Betreuung (Einrichtung und Wartung) des Internet Cafes in einer karitativen Jugendeinrichtung.

Krefeld
3 Jahre 9 Monate
2001-01 - 2004-09

Netzwerk-Bibliothek für Multiplayer KDE Spiele

Entwickler, Software-Architekt C++ Qt KDE ...
Entwickler, Software-Architekt

Entwicklung einer Netzwerkbibliothek für Multiplayer Spiele im KDE Umfeld, basierend auf wahlweise Dedicated-Server oder Peer-to-Peer Architektur. Die Bibliothek wird sowohl Server- als auch Client-seitig von einigen KDE Spielen eingesetzt. Ebenfalls enthalten ist eine multi-Prozess basierte Unterstützung für KI Spieler.

C++ Qt KDE Linux CVS
Krefeld
1 Monat
2004-03 - 2004-03

Spieleentwicklung

Entwickler, Software-Architekt Java Swing UML ...
Entwickler, Software-Architekt

Planung und Entwicklung einer Umsetzung des bekannten „Halma“ Gesellschaftsspiels, mit Computerspieler (3 Schwierigkeitsstufen) Unterstützung. Das fertige Spiel hat in einem Wettbewerb mehrerer Konkurrierender Gruppen den 1. Platz belegt.

Netbeans Borland Together 6.1
Java Swing UML Unit Tests / Integration Tests Linux
Dortmund
1 Monat
2004-02 - 2004-02

Entwicklung von Verwaltungssoftware für Bibliotheken

Entwickler, Software-Architekt Java Swing UML ...
Entwickler, Software-Architekt

Planung und Entwicklung eines einfachen Verwaltungsprogramms für kleinere Bibliotheken. Das Programm ist darauf ausgelegt ein altes „Karteikarten System“ zu ersetzen.

Netbeans Borland Together 6.1
Java Swing UML Unit Tests / Integration Tests Linux
Dortmund
1 Jahr 7 Monate
2001-09 - 2003-03

Entwicklung eines Microcontroller basierten Smartcard Lesers

Entwickler, Software-Architekt C C++ Pascal ...
Entwickler, Software-Architekt

Planung, Entwurf und Entwicklung eines Smartcard Lesers mit Netzwerkanschluss auf Microcontroller (8051) Basis. Das Projekt umfasste den vollständigen Entwicklungsprozess, von Spezifikation der Hardware-Anforderungen und aktiver Unterstützung der hardwareseitigen Umsetzung, bis hin zur vollständigen Software Entwicklung. Das fertige Produkt enthält den entwickelten Smartdrive Treiber, die Netzwerk Protokoll Implementierungen (DHCP, HTTP) auf Standalone Device ohne Betriebssystem.

C C++ Pascal 8051 Keil C51 SDCC Atmel Beck DK40 SC12 IPC@CHIP Towitoko Smartdrive Samba Wiznet IIM7100 Linux Windows
Krefeld

Aus- und Weiterbildung

Aus- und Weiterbildung

2009

Diplom Informatiker, TU Dortmund

Kompetenzen

Kompetenzen

Top-Skills

Android iOS C++ Software-Entwicklung Linux Qt Swift Java Kotlin Bluetooth

Produkte / Standards / Erfahrungen / Methoden

Android Studio
Apache
autotools
automake, autoconf
Boost
CMake
Geofencing
git
Icinga
JNI
Nagios
OpenGL
pthreads
PyTest
Qt
Scrum
SSH
Subversion
SUOTA
SVN
Swift
VNC
Protokollimplementierung
WebKit
Xcode

Betriebssysteme

Android
iOS
Linux
Mac OSX
TI-RTOS
Unix
Windows
Windows 10

iOS/Android sind die häufigsten Zielsysteme für die ich entwickle, gefolgt von Linux, insbesondere Embedded Linux sowie für Server Backends.

Programmiersprachen

Bash
C
C#
Grundlagen
C++
C/C++
Go
Java
Objective-C
Im Bereich iOS für Bestandsprojekte. Für neue Projekte setze ich Swift ein.
Perl
Basiskenntnisse, verwende ich inzwischen kaum noch.
PHP
Python
Qt
Umfangreiche Kenntnisse, insbesondere im Desktop Bereich, in den meisten Modulen.
Shell
Swift

Mein fachlicher Schwerpunkt ist in der mobilen Softwareentwicklung (Android/iOS) mit Java/Kotlin, Swift/Objective C sowie ggf. C/C++.

Darüberhinaus habe ich umfangreiche Kenntnisse in der Entwicklung mit C/C++ im Bereich Server Backend sowie Desktop Systemen, insbesondere unter Linux. Sehr häufig setze ich hierfür Qt ein.

Datenbanken

MySQL
Postgres
PostgreSQL
sqlite

Datenkommunikation

Bluetooth LE
Internet, Intranet
JSON
JSON-RPC
REST
TCP/IP
VNC/RFB
Websockets
XMPP

Berechnung / Simulation / Versuch / Validierung

cpptest
googletest
PyUnit
Unit Tests / Integration Tests
Unit-Tests

Branchen

Branchen

  • Elektroinstallationstechnik
  • Maschinenbau
  • IT-Dienstleistungen
  • Software
  • Automotive
  • Medien & Entertainment
  • Medizintechnik
  • IT-Sicherheit
  • Luftfahrt

Einsatzorte

Einsatzorte

Deutschland
möglich

Projekte

Projekte

5 Monate
2019-11 - 2020-03

Entwicklung eines Software Development Kits zur Kommunikation mit embedded Geräten

Software-Entwickler C Bluetooth LE C++ ...
Software-Entwickler

Für einen Kunden aus der Automobilindustrie wurde ein Software Development Kit (SDK) für eine End-to-End Kommunikation zwischen einem Hardware Endgerät und einem Mobilgerät entwickelt. Das Kommunikationprotokoll sowie die Implementierung für Mobilgeräte waren bereits verfügbar und produktiv. Die zuvor existierende Anwendung für das Hardware Endgerät sollte vollständig neu entwickelt und in ein SDK überführt werden, mit dem Ziel dieses auf verschiedenen Embedded Endgeräten, insbesondere verschiedenen Microcontrollern zur Verfügung zu stellen.

Die Entwicklung erfolgte vollständig in C mit dem Ziel möglichst geringe Speicher Anforderungen, sowohl an RAM als auch an Programmspeicher/Flash, zu stellen. Weiterhin wurden sämtliche Hardware-, Betriebssystem- und sonstige Software-Anforderungen (einschließlich Speicherallokationen und Crypto Funktionen) in einen (Hardware-)Abstraktionslayer überführt, so dass diese je nach Möglichkeiten der Zielplattformen implementiert werden können.

Es wurde eine Beispielimplementierung auf einem Microcontroller vorgenommen, die die Funktionalität vollständig zur Verfügung stellt und sämtliche Anforderungen des SDKs, insbesondere in Bezug auf Speicher, demonstriert. Die Kommunikation mit dem Mobilgerät erfolgt hier über Bluetooth LE, von der verwendeten Kommunikationstechnik abstrahiert.

Alle Kernfunktionalitäten wurden durch Unit Tests abgedeckt.

Code Composer Studio
C Bluetooth LE C++ googletest TI-RTOS
3 Monate
2019-08 - 2019-10

Python-Bindings zur Anbindung einer C++ Library an Python

Software-Entwickler
Software-Entwickler

Für ein produktiv eingesetztes internes Test Framework eines umfangreichen Systems mit Client/Server Architektur sollte die zugrundeliegende Client Bibliothek sowie das zugehörige Datenmodell ersetzt werden. Hierzu sollte eine bereits in C++/Qt geschriebene Kommunikations-Library eingesetzt werden.

Das existierende, Python basierte, Test Framework wurde vollständig durch ein neues Framework ersetzt, welches die C++/Qt Library in den Python Tests verfügbar macht. Dabei wurde die Funktionalität des alten Frameworks vollständig nachgebildet, so dass nur minimale Änderungen an den existierenden Tests (mehrere tausend) notwendig wurden.

Hierzu wurden Python Bindings für die C++ Library auf Basis von Shiboken/PySide entwickelt, sowie eine Python basiertes Test Framework, das die erforderliche API darstellt und die Bindings für die Tests verfügbar macht.

Python C++ Qt Shiboken2 PySide2 PyCharm
4 Monate
2019-04 - 2019-07

Weiterentwicklung von Android App zur Heimautomatisierung

Software-Entwickler
Software-Entwickler

Für eine bestehende, produktive Android App im Bereich Heimautomatisierung / Internet of Things wurden Wartungsarbeiten und Bugfixing durchgeführt. Die Wartungsarbeiten umfassten insbesondere Anpassungen an Verhaltensänderungen von Android Versionen 8 und 9, insbesondere in Bezug auf Hintergrunddienste. Das zur Verfügung gestellte Android Appwidget wurde so umgeschrieben, dass der bisher verwendete Service nun ein Vordergrunddienst ist, da sonst das Widget auf diesen Android Versionen nicht länger verfügbar gewesen wäre.

Weiterhin wurden für ein Release auf dem chinesischen Markt, alle Google Dienste (einschließlich Push-Notifications) durch eine alternative Library, die auf dem dortigen Markt funktionsfähig ist, ersetzt. Hierzu wurde die chinesische Library in die App bzw. eine separate Version der App integriert. Da die Dokumentation aller technischen Schnittstellen ausschließlich in chinesisch vorlag, erfolgte die Implementierung in Zusammenarbeit mit den dortigen Kollegen.

C/C++ Android Java Android Studio
1 Jahr 2 Monate
2018-04 - 2019-05

Entwicklung Mitarbeiterapp

Software-Entwickler Scrum REST
Software-Entwickler

Für einen Kunden aus der Automobilindustrie wurde eine interne Mitarbeiterapp neu entwickelt. Die Android und iOS Versionen wurde separat entwickelt, jeweils nativ mit Java bzw. Swift, mein Aufgabenbereich war zunächst die Android App.

Wesentliche Funktionsmerkmale waren ein sicherer Login in das interne Firmennetz, Zeitverwaltung, Abruf interner Dokumente, Bereitstellung interner Unternehmensinformationen und die Integration einer von einem separaten Team entwickelten umfangreichen Webapp zur Arbeitszeitverwaltung. Weiterhin waren ein Einrichtungswizard und ein Demo-Modus Bestandteile.

Zusätzlich wurde ein vollständiger Mock-Server zur Fehlerfindung entwickelt, der Testdaten bereitstellen konnte und ohne das gesicherte Unternehmensnetz (das selbst für Entwickler nur eingeschränkt verfügbar war) funktionierte.

Die Entwicklung fand in einem Team mit mehreren Entwicklern mit SCRUM statt. Ich wurde in dem Projekt als Android Experte hinzugezogen, da bisher in diesem Feld noch wenig Expertisen vorhanden waren. Dementsprechend waren meine Aufgabenbereiche neben verschiedener Features die Weiterentwicklung des allgemeinen Frameworks und Qualitätssicherung.

Ab ungefähr 2019 habe ich aufgrund der internen Prioritätensetzung das parallel arbeitende iOS Team verstärkt. Hier war mein Aufgabenbereich insbesondere die Erweiterung und Neuentwicklung von automatisierten Tests sowie die Entwicklung einer Lösung für Dokumentenscan und -übermittlung nach Design und API Vorgaben.

Android Java Android Studio git Swift iOS Xcode Python
Scrum REST
1 Monat
2019-03 - 2019-03

Weiterentwicklung von Android App zur Heimautomatisierung

Software-Entwickler
Software-Entwickler

Wartungsarbeiten an einer bestehenden produktiven App für Android. Die Apps fungieren als mobile Benutzerschnittstelle zum eigentlichen Produkt und sind im Bereich Heimautomatisierung anzusiedeln. Aufgrund von neueren Android Versionen waren Anpassungen für die TLS Kommunikation mit dem externen Gerät (internet of Things) notwendig geworden. In diesem Zuge wurden ebenfalls Anpassungen an neue Android Versionen vorgenommen, insbesondere um die Vorgaben von Google Play zu erfüllen.

Java Android Studio Android
5 Monate
2017-11 - 2018-03

Entwicklung von iOS- und Android-App zur Steuerung von Bluetooth LE Geräten

Entwickler, Software-Architekt, Technischer Projektleiter C/C++ Android Java ...
Entwickler, Software-Architekt, Technischer Projektleiter

Es wurde eine App für die Konfiguration sowie Steuerung einer Bluetooth LE basierten Gerätereihe aus dem Bereich Elektroinstallationstechnik sowie Internet of Things erstellt. Die Designvorlagen wurden vollständig vom Kunden zur Verfügung gestellt.

Die App wurde bereits von einem anderen Team entwickelt, lag zu (unserem) Projektbeginn jedoch trotz bereits weit verstrichener Deadline in einer nicht funktionsfähigen Fassung vor. Nach Abstimmung mit dem Kunden sowie nach einem Review der bereits vorliegenden App wurde entschieden die App vollständig neu zu entwickeln, da dies schneller war als den vorliegenden Stand zu reparieren. Die JavaScript basierte Web-App bzw. der WebContainer wurde durch eine native App ersetzt, deren Business Logik weitgehend in C++ geschrieben ist und lediglich Plattform-spezifische Komponenten (insbesondere die Bluetooth LE Kommunikation) jeweils separat in Java sowie Swift/Objective-C.

Eine frühe Prototyp App, welche die Grundfunktionalität und insbesondere die Bluetooth LE Kommunikation bereitstellt wurden auf Wunsch des Kunden innerhalb von 2 Monaten fertig gestellt, so dass der Kunde die internen Tests der Bluetooth Stabilität (inklusive der ebenfalls implementieren Firmware Updates über SUOTA) starten und die sich ebenfalls noch in Entwicklung befindliche Hardware finalisieren konnte. Insbesondere auf die Stabilität der Verbindung in der Android App wurde Wert gelegt, da der Kunde hier schlechte Erfahrungen gemacht hat.

Die Apps wurden in 3-4 Monaten vollständig und entsprechend den separat erstellten Designvorlagen des Kunden zur ausdrücklichen Zufriedenheit fertiggestellt.

Das Entwicklungsteam bestand aus 4 Mobilentwicklern, inklusiver mich selber. Neben meiner Entwicklungstätigkeit habe ich ebenfalls die technische Projektleitung des Entwicklungsteams und die Projektabstimmung mit dem Kunden übernommen.

Android Studio Xcode
C/C++ Android Java JNI/NDK iOS Objective-C Swift Bluetooth LE git SUOTA REST
Dortmund
1 Monat
2017-10 - 2017-10

Unterstützung von Geofencing in einer Android App

Entwickler, Software-Architekt C/C++ Java JNI/NDK ...
Entwickler, Software-Architekt

Für eine bestehende Android App im Bereich Heimautomatisierung / Internet of Things wurde Geofencing Unterstützung implementiert. Die Android App meldet an den von einer Fremdfirma bereitgestellten Server das Betreten sowie das Verlassen des Anwenders aus bestimmten Bereichen (etwa "zu Hause", "im Büro", etc.) und führt ggf. Aktionen durch, die vom Server definiert wurden. Die Geofences werden dabei mit dem Server bzw. mit verschiedenen Geräten synchronisiert.

Android Studio Xcode
C/C++ Java JNI/NDK Android Geofencing
Dortmund
6 Monate
2017-04 - 2017-09

Entwurf und Umsetzung von Low-Level OS und Hardware Testframework

Entwickler, Software-Architekt, Technischer Projektleiter Linux Python PyTest ...
Entwickler, Software-Architekt, Technischer Projektleiter

Für eine Linux basiertes Hardware Gerät wurde ein Testframework entwickelt, das die Funktionalität des Betriebssystems, der Treiber und der Firmware insgesamt bei Hardware- sowie Software Updates (etwa neue Treiber Versionen) sicherstellt. Das Python/PyTest basierte Test Framework läuft hierbei auf einem Desktop PC und kontrolliert das zu testende Gerät mittels spezieller Zusatzhardware, etwa einem Labornetzteil (um das zu testende System zu starten sowie die Spannung gezielt zu stören) und I/O Anschlüssen zum Abfragen von Sensorwerten.

Für die Ansteuerung der Spezialhardware wurden teilweise einfache Treiber bzw. Tools entwickelt und um die Sensordaten in geeigneter Form zur Nachverarbeitung zur Verfügung zu stellen.

Für die darüberhinausgehenden Tests auf OS-Ebene (etwa CPU Last, I/O Geschwindigkeit, Netzwerkfunktionalität, etc.) stellt das Testframework ssh Verbindungen zu dem zu testenden Gerät her.

Für die einfachen Einsatz durch die Tester und zur besseren Überwachung der Testergebnisse insbesondere bei Langzeittests wurde eine HTML/PHP/JavaScript basiertes Web Frontend entwickelt.

Linux Python PyTest SSH JavaScript PHP KNX
Dortmund
1 Monat
2017-03 - 2017-03

Design und Implementierung einer REST und Websocket API

Entwickler, Software-Architekt C/C++ Go Python ...
Entwickler, Software-Architekt

Für ein bestehendes Heimautomatisierungssystem / Internet of Things wurde eine REST API sowie parallel eine Websocket basierte API für die Nutzung durch externe Firmen und Tools (etwa zur Anbindung von Sprachsteuerungssystemen wie Amazon Alexa) entwickelt. Hierzu wurden die jeweiligen Protokolle von Grund auf spezifiziert und in einem Server Backend implementiert. Das Projekt war als Demo sowie Proof-of-Concept gedacht und wurde nach erfolgreicher Durchführung zwecks produktivem Einsatz an einen weiteren Dienstleister übergeben.

Die Implementierung erfolgte zunächst auf Basis von Python, aufgrund diverser Einschränkungen ist es jedoch frühzeitig auf Go umgestellt worden, was die Effizienz der Umsetzung deutlich erhöht hat.

Das Protokoll sowie das Backend befindet sich derzeit im produktiven Einsatz.

C/C++ Go Python REST Websockets JSON-RPC Linux
Dortmund
10 Monate
2016-06 - 2017-03

Integration einer iOS und Android App zur Heimautomatisierung in eine Cloud Lösung

Entwickler Java Objective-C iOS ...
Entwickler

Integration einer produktiv eingesetzte App zur Heimautomatisierung in eine Cloud Lösung des Kunden. Das Cloud Backend wurde von einer Drittfirma bereitgestellt, die Apps müssen mit diesem kommunizieren. Dabei sollen die Apps weiterhin die lokale, d.h. über W-LAN verfügbare Funktionalität bevorzugen, sofern das Mobilgerät in dem lokalen Netz ist, andernfalls soll die Cloud Variante gewählt werden. Die Kommunikation der Cloud Variante erfolgt ausschließlich über SSL gesicherte Verbindungen.

Android Studio Xcode
Java Objective-C iOS Android
Dortmund
1 Jahr 3 Monate
2016-01 - 2017-03

Weiterentwicklung von iOS und Android App zur Heimautomatisierung

Entwickler Objective-C Java iOS ...
Entwickler

Wartung und Weiterentwicklung von verschiedenen bestehenden und produktiven Apps für iOS Android. Die Apps fungieren als mobile Benutzerschnittstelle zum eigentlichen Produkt und sind im Bereich Heimautomatisierung anzusiedeln.
Die Wartungsarbeiten und Weiterentwicklungen erfolgten je nach Bedarf über einen weiten Zeitraum verteilt.

Android Studio Xcode
Objective-C Java iOS Android Apple Maps
Dortmund
4 Monate
2016-10 - 2017-01

Entwicklung von Android/iOS Widgets

Entwickler, Software-Architekt C/C++ Java JNI/NDK ...
Entwickler, Software-Architekt

Für eine bestehende App wurden Android AppWidgets sowie iOS today Widgets entwickelt. Aufgrund von Einschränkungen der jeweiligen Plattformen, wurden die GUIs der jeweiligen Widgets neu entwickelt und nach Design Vorgaben des Kunden umgesetzt. Die Widgets stellen weitgehende Funktionalität der zuvor existierenden App als Hintergrund Service zur Verfügung, hierfür wurde eine gemeinsame Code Basis entwickelt. Die Apps sind im Bereich Heimautomatisierung anzusiedeln und ermöglichen die Steuerung und Status Anzeige von Geräten über ein proprietäres Protokoll des Kunden. Die Widgets sind inzwischen in den Stores verfügbar und wurden von den Endkunden sehr gut aufgenommen.

Android Studio XCode
C/C++ Java JNI/NDK Objective-C Android iOS AppWidgets today widgets Git
Dortmund
2 Monate
2016-09 - 2016-10

Entwicklung Android App zur Bereitstellung von Mediendaten und Lokalisierung im Raum

Entwickler Java Android Bluetooth LE ...
Entwickler

Entwicklung eine Android App zur Präsentation auf einer Messe. Die App stellt anhand der aktuellen Position des Anwenders in einem Raum vorgegebene Bilder und Videos dar. Die Lokalisierung im Raum erfolgt mittels Entfernung zu Beacon Geräte, die über Bluetooth gefunden werden. Der Anwender kann am Messestand mit weiteren externen Geräten agieren und so die dargestellten Inhalte in der App beeinflussen.

Android Studio
Java Android Bluetooth LE iBeacon
Dortmund
1 Monat
2016-09 - 2016-09

Erweiterung von iOS App zur Bluetooth Kommunikation mit proprietärer Hardware

Entwickler iOS Bluetooth LE
Entwickler

Erweiterung einer iOS App zur Kommunikation mit der Hersteller-eigenen Hardware. Die produktive App kommuniziert über Bluetooth mit dem Gerät, es wurde Unterstützung für neue Funktionalität des Geräts in die App eingebaut, sowie das existierende Kommunikationsprotokoll aktualisiert.

Xcode
iOS Bluetooth LE
Dortmund
5 Monate
2016-05 - 2016-09

Review eines Crypto Konzeptes sowie Design und Implementierung eines Test Frameworks

Entwickler, Software-Architekt C/C++ Kryptographie SSL ...
Entwickler, Software-Architekt

Für eine bestehende und produktive Software Library auf Basis von C/C++ zur Ansteuerung von Internet-of-Things Geräten wurde das Crypto Konzept der Cloud Implementierung reviewed. Dieses Review umfasste zwei Phasen, zum einen das High-Level Pairing Konzept (Zertifikatserstellung, Login, Logout, Zertifikaterneuerung, etc.) und zum anderen das Verschlüsselungskonzept der Kommunikation. Im Zuge des Reviews wurde darüberhinaus ein Test Framework entwickelt das die Funktionsfähigkeit von Schlüsselfunktionalitäten, insbesondere bzgl. des Crypto Konzeptes, sicherstellt. Hierzu wurden die in Frage kommenden Fehlerfälle (etwa Zertifikat abgelaufen) und ausgewählte wichtige Angriffsszenarien identifiziert und in einem dafür entwickelten Python und PyUnit basierten Toolkit realisiert.

C/C++ Kryptographie SSL Zertifikate Python PyUnit Unit-Tests Web Server XMPP Linux
Dortmund
2 Monate
2016-05 - 2016-06

Unterstützung für mehrere Sprachen in Desktop Applikation sowie Unterstützung für weiteres Dateiformat

Entwickler C/C++ Qt CMake ...
Entwickler

Anpassung einer produktiven Linux/Windows Desktop Applikation an Mehrsprachigkeit. Die Qt basierte Applikation lag komplett in Englisch vor und sollte unter Verwendung des Qt Lokalisierungs-Frameworks für mehrere Sprachen, insbesondere aus dem asiatischen Raum vorbereitet werden.

Nach erfolgreicher Durchführung wurde unabhängig davon die Unterstützung eines weiteren branchenspezifischen Dateiformats implementiert.

C/C++ Qt CMake Git Linux Windows
Dortmund
5 Monate
2016-02 - 2016-06

Entwicklung einer VNC/RFB Library

Entwickler, Software-Architekt C/C++ Java JNI/NDK ...
Entwickler, Software-Architekt

Entwicklung einer C/C++ Library für Implementierung von Fernwartungs-Applikationen auf Basis des RFB/VNC Protokolls. Die Library wurde von Grund auf für spezifische Anforderungen und insbesondere mit Unterstützung für Mobile Geräte entwickelt, da bereits verfügbare Lösungen die Anforderungen nicht erfüllen konnte. Es wurden mehrere gängige VNC Erweiterungen implementiert und Anbindungen an Android, iOS und Windows 10 sowie Windows 10 Mobile entwickelt. Besonderes Augenmerk wurde auf einfache Benutzbarkeit und Performanz gelegt, da der Einsatz auf Mobilen Geräten möglich sein sollte.

Android Studio Xcode
C/C++ Java JNI/NDK Objective-C VNC/RFB iOS Android Windows 10 Linux
Dortmund
3 Monate
2016-01 - 2016-03

Entwicklung einer Fernwartungssoftware auf Basis von RFB/VNC

Entwickler, Software-Architekt C/C++ Java JNI/NDK ...
Entwickler, Software-Architekt

Der Kunde produziert und betreibt Industrieanlagen, deren aktueller Systemzustand von Smartphone und Tablet Geräten überwacht und ggf. gewartet werden soll. Die Wartung bzw. Fernsteuerung erfolgt mit Hilfe des RFB (VNC) Protokolls. Die hierfür entwickelte App implementiert dieses Protokoll in einer C/C++ Library die von der App verwendet wird um Verbindungen zu mehreren Anlagen zu ermöglichen. Dabei war zu beachten, dass die Anlagen häufig nur über eine sehr langsame und instabile Internet Verbindunng verfügen, die Kommunikation muss daher entsprechend solide sein. Die App wurde darüberhinaus vollständig gebranded, da sie an Endkunden herausgegeben werden soll.

Android Studio
C/C++ Java JNI/NDK VNC/RFB Android
Dortmund
6 Monate
2015-07 - 2015-12

Aufbau von Server-Synchronisations Framework

Entwickler, Software-Architekt, System Administrator PostgreSQL Python SVN ...
Entwickler, Software-Architekt, System Administrator

Für eine bestehende Server Infrastruktur auf PostgreSQL Basis wurde ein spezialisiertes Synchronisations Framework entwickelt, welches die kritischen Daten des Kunden auf einen Backup Server überträgt, um im Ernstfall einen reibungslose Umstellung zu ermöglichen. Wegen verschiedener kritischer Randbedingungen waren normale Replikations Lösungen nicht ausreichend und konnten nicht eingesetzt werden, daher wurde eine spezialisierte Lösung auf Basis von Python entwickelt. Die Lösung synchronisiert dabei verschiedene Datenbank Tabellen unter Beachtung von interner Business Logik, sowie verschiedener Zusatz Daten, die nicht in der Datenbank gespeichert werden.

PostgreSQL Python SVN SSH Linux
Dortmund
1 Jahr 11 Monate
2014-02 - 2015-12

Entwicklung eines plattformübergreifenden Smartphone Spiels

Entwickler, Software-Architekt C/C++ Java C# ...
Entwickler, Software-Architekt

Entwicklung eines auf Smartphones (iOS/Android/WP8) ausgerichteten 3D (OpenGL bzw. Direct3D) Spiels.

Meine Tätigkeit in diesem Projekt umfassen neben plattformübergreifenden Tätigkeiten an der Engine insbesondere die Umsetzung der Android und Windows Phone 8 Varianten.

MSVC
C/C++ Java C# Direct3D OpenGL Android SVN Git PostgreSQL WP8
Dortmund
6 Monate
2015-06 - 2015-11

Weiterentwicklung von iOS und Android App zur Heimautomatisierung

Entwickler Objective-C Java iOS ...
Entwickler

Wartung, Aktualisierung und Weiterentwicklung einer bestehenden und produktiven App für iOS (iPhone und iPad) und Android (Phones und Tablets). Die App fungiert als mobile Benutzerschnittstelle zum eigentlichen Produkt und ist im Bereich Heimautomatisierung anzusiedeln. Es wurden verschiedene Änderungen am Laufzeitverhalten, an der Benutzeroberfläche sowie Fehlerbehebungen vorgenommen, die im Laufe der Zeit in den App Versionen aufgelaufen waren.

Xcode Eclipse Android Studio
Objective-C Java iOS Android
Dortmund
1 Monat
2015-09 - 2015-09

Weiterentwicklung Android App

Entwickler Java Android
Entwickler

Weiterentwicklung einer bestehenden Android App zur Geräteansteuerung mittels Bluetooth. Die Anpassung erfolgte analog zu einer vorangegangenen Anpassung für iOS.

Eclipse
Java Android
Dortmund
1 Monat
2015-08 - 2015-08

Weiterentwicklung iOS App

Entwickler Objective-C iOS
Entwickler

Weiterentwicklung einer bestehenden iOS App zur Geräteansteuerung mittels Bluetooth.

Die Funktionalität der App stand bereits zur Verfügung, es wurde lediglich eine komplett aktualisierte graphische Benutzerschnittstelle nach Vorgaben des Kunden entwickelt. Aufgrund eines bevorstehenden Messetermins wurde das gesamte Projekt innerhalb von drei Wochen vollständig umgesetzt.

Xcode
Objective-C iOS
Dortmund
2 Jahre 8 Monate
2013-01 - 2015-08

Weiterentwicklung einer Serverbasierten Streaming Lösung für medizinische Daten

Entwickler, Software-Architekt SQL/PostgreSQL Qt PACS ...
Entwickler, Software-Architekt

Weiterentwicklung einer Serverapplikation für die effiziente Verteilung medizinischer Bilddaten in Krankenhaus- und Praxis-Umgebungen. Hierbei muss die Software die für Befundungen und teils Behandlungen erforderliche Daten aus unterschiedlichen Quellen an die jeweiligen Abteilungen weiterleiten. Die teils erheblichen Datenmengen (oft mehrere Terabyte/Tag) werden mittels eigens entwickelter Streaming Technologie und mit Proxy-Unterstützung übertragen.

Das Projekt wurde von mir aus einem bereits fortgeschrittenen, aber komplett nicht funktionsfähigen Zustand übernommen und zur Einsatzfähigkeit gebracht. Weiterhin wurden Teile der Kernfunktionalität von Grund auf neu entwickelt.

SQL/PostgreSQL Qt PACS SVN Unit Tests / Integration Tests Multithreading Performance Optimization Boost Linux trac
Dortmund
3 Monate
2014-10 - 2014-12

Portierung einer iOS Magazin-App nach Android

Entwickler Java Android Git ...
Entwickler

Portierung einer bereits veröffentlichten Magazin-App von iOS nach Android. Die Magazine können direkt mit in-App Purchases aus der App gekauft und gelesen werden.

Technisch werden die einzelnen Magazine durch Zip Archive mit HTML Inhalten umgesetzt, d.h. mittels WebView/WebKit. Ebenfalls wird ein Web-Login für plattformübergreifende Synchronisierung bereitgestellt.

Eclipse
Java Android Git PHP PostgreSQL WebKit
Dortmund
3 Monate
2014-07 - 2014-09

Softwarekomponente zur Ansteuerung eines externen Geräts

Entwickler C/C++ Qt JSON ...
Entwickler

Entwicklung einer Qt basierten Softwarekomponente eines Embedded Devices zur Ansteuerung und Kontrolle eines externen Geräts. Die Komponente ist Teil eines zu weiten Teilen bereits beim Kunden bestehenden größeren Embedded Devices und musste dort entsprechend integriert werden.

Das externe Gerät wird über eine (vom Hersteller vorgegebene) Web/JSON Schnittstelle gesteuert und kontrolliert. Die entwickelte Komponente sollte insbesondere die verwendeten Ein-/Ausgabe Parameter des externen Geräts in die (sofern möglich) jeweiligen Repräsentationen des Embedded Devices umgerechnet werden.

C/C++ Qt JSON Git Linux
Dortmund
8 Monate
2013-12 - 2014-07

Projekt in IT-Sicherheit

Entwickler
Entwickler

Softwareentwicklung einer sicherheitsrelevanten Softwarekomponente für Drittfirma.

München, Dortmund
4 Jahre 4 Monate
2009-10 - 2014-01

Weiterentwicklung, Wartung und Support von Flaggschiffprodukt eines Softwareherstellers in der Medizinbranche

Entwickler, Software-Architekt C++ Qt SQL/PostgreSQL ...
Entwickler, Software-Architekt

Weiterentwicklung, Wartung und Support des Flaggschiffproduktes eines Softwareherstellers in der Medizintechnik. Die Software ist ein Befundungssystem für radiologische Bilddaten („Picture Archiving and Communication System“, „PACS“) und wird insbesondere von Radiologen verwendet. Als Flaggschiffprodukt des Unternehmens verfügt die Software über viele Teilaspekte die im Laufe dieses Projektes bearbeitet und/oder entwickelt wurden, einschließlich:

  • Benutzerfreundliche Oberfläche, da ärztliches Personal Zielgruppe ist
  • Anspruchsvolle Real-Time Netzwerk Unterstützung (Streaming)
  • 3D Visualisierung
  • Synchronisierung verschiedener Anzeigen sowie verschiedener Bilddaten mittels jeweils geeigneter Algorithmen
  • Vielfältige Datenbank Unterstützung, sowohl zentralisiert als auch dezentralisiert
  • Umfangreiche Unit-/Integration Tests, u.a. zur Erfüllung gesetzlicher Anforderungen sowie zur Umsetzung von QM Anforderungen
  • Usw.
C++ Qt SQL/PostgreSQL PACS SVN Unit Tests / Integration Tests Python Multithreading Performance Optimization pthread Boost trac Linux
Dortmund
5 Monate
2013-08 - 2013-12

Entwicklung von Artikel-/Magazin-App für Smartphones

Entwickler, Software-Architekt C/C++ Java JNI ...
Entwickler, Software-Architekt

Entwicklung einer Artikel- bzw. Magazin-App für iOS und Android, die Android Umsetzung war meine Verantwortung.
Die App ist die digitale „Auferstehung“ eines Print Magazins und stellt verschiedene (Text-)Artikel als In-App Purchases zur Verfügung. Die gekauften Artikel können auf allen unterstützten Plattformen (einschließlich einer Web-Variante) betrachtet und bewertet werden.
Die Entwicklung erfolgte in Kooperation mit dem Verlag, wobei wir die technische Umsetzung vollständig übernommen haben. Neben der eigentlichen App wurde auch eine Server- sowie Datenbankanbindung entwickelt und bereitgestellt. Die App ist im Android und iOS Store verfügbar und ist derzeit mit 4,5 Sternen bewertet.

Eclipse
C/C++ Java JNI Android Git swig PHP PostgreSQL CMake Qt GCM Linux
Dortmund
7 Monate
2013-02 - 2013-08

Portierung eines erfolgreichen iOS/Android Spiels auf Windows Phone 8

Projektleiter, Entwickler C/C++ C# Direct3D ...
Projektleiter, Entwickler

Umsetzung einer erfolgreichen iOS Spiele-App (Download Millionär) auf Windows Phone 8. Das Projekt umfasste den vollständigen Produkt-Workflow, angefangen bei der Machbarkeits- und Anforderungsanalyse, über die Entwicklungsplanung und der eigentlichen Software-Entwicklung, bis hin zur erfolgreichen Einstellung des fertigen Produkts in den Store.

MSVC
C/C++ C# Direct3D OpenGL SVN
Dortmund
1 Jahr
2011-12 - 2012-11

Entwicklung eines Softwaremoduls zur Bilddatenberechnung entlang von Bezier Kurven

Entwickler C++ Qt PACS ...
Entwickler

Entwicklung eines Softwaremoduls das aus Freihand Zeichnungen geglättete Bezier Kurven erstellt und entlang dieser Kurven neue Daten aus existierenden radiologischen Bilddaten erstellt. Die so erstellten Bilddaten können zur Befundung genutzt werden.

Das Projekt umfasst sowohl die theoretische Seite (Sichtung des Forschungsstandes, Anpassung der Formeln an gegebene Anforderungen, etc.), die Umsetzung in Software als auch die Erstellung der zugehörigen graphischen Benutzeroberfläche.

Ebenfalls enthalten ist eine Echtzeit Visualisierung der Ergebnisse für den Anwender.

C++ Qt PACS SVN Unit Tests / Integration Tests Multithreading Performance Optimization Linux
Dortmund
4 Monate
2012-04 - 2012-07

Erstellung einer Software Lösung für Langzeit-Archivierung auf Basis von Tivoli Storage Manager (IBM)

Entwickler, Systemadministrator bash PACS Linux
Entwickler, Systemadministrator

Planung, Konfiguration und Entwicklung einer Backup und Archivierung Lösung im medizinischen Umfeld mit gesetzlichen Vorschriften zur Langzeit Archivierung (30+ Jahre). Teilweise erfolgte Planungen eines vergleichbaren Projekts wurden übernommen und ausgebaut.

Die Archivierung erfolgte auf Tapes mit bereits vorhandener Hardware (insbesondere Tape Library), auf Basis von IBM Tivoli Storage Manager (TSM) 6.3.

Aufgrund der gesetzlichen Anforderungen zur Archivierung sowie des unternehmenskritischen Characters der zu sichernden Daten wurde besonderes Augenmerk auf die Ausfallsicherheit des automatischen Backup Systems gelegt, einschließlich redundanter off-site Backups.

Tivoli Store Manager (TSM) 6.3 TSM 6.1
bash PACS Linux
Dortmund
3 Monate
2012-01 - 2012-03

Konzeption, Einrichtung und Wartung einer Netzwerk- und System-Monitoring Infrastruktur

Entwickler, Software-Architekt, Projektleiter, Systemadmin Python sqlite bash ...
Entwickler, Software-Architekt, Projektleiter, Systemadmin

Netzwerk- und System-Monitoring einer verteilten Rechnerumgebung, bestehend aus über 100 Rechnern an verschiedenen Standorten (überwiegend Krankenhäuser). Das Projekt umfasst die gesamte Spannbreite, von Bestands- und Bedarfsanalyse über Wahl der zu verwendenden Software bis hin zur Einrichtung und Wartung. Es wurde Nagios (später teilweise Icinga) in einer verteilten Installation und Konfiguration verwendet. Aus Netzwerktechnischen Gründen wurde zusätzlich ein eigenes Kommunikationsframework entwickelt um Einschränkungen (insbesondere Routing und Firewall) einiger Kunden transparent zu berücksichtigen.

Das fertige System ist produktiv im Einsatz und stellt die durchgängige Funktionsfähigkeit von unternehmenskritischer Software, sowie von essentieller Hard- und Software des radiologischen Personals der betroffenen Krankenhäuser sicher. Insgesamt hat es den Support Aufwand erheblich verringert und ist auf entsprechend positives Echo gestoßen.

Nagios Icinga
Python sqlite bash Linux NRPE
Dortmund
4 Monate
2010-12 - 2011-03

Konzeption und Entwicklung einer Multithreading Bibliothek

Projektleiter, Entwickler, Software-Architekt C++ Qt SVN ...
Projektleiter, Entwickler, Software-Architekt

Planung (einschließlich Bedarfsanalyse) und Entwicklung einer Multithreading Bibliothek auf Basis des Threadpool Patterns. Die Bibliothek ist plattformunabhängig ausgerichtet und in C++ entwickelt. Für Qt Anwendungen werden spezialisierte Klassen zur vereinfachten Benutzung bereitgestellt.

Die Bibliothek ist auf einfache Benutzbarkeit bei möglichst niedrigem Performance Overhead ausgelegt und wurde verwendet um die Multithreading Unterstützung in mehreren kleineren Projekten zu ersetzen und zu verbessern.

C++ Qt SVN Unit Tests / Integration Tests Multithreading Performance Optimization Linux
Dortmund
7 Monate
2010-01 - 2010-07

Semi-Automatische Lymphknoten Segmentierung

Entwickler, Software-Architekt C++ Qt PACS ...
Entwickler, Software-Architekt

Entwicklung eines Software Moduls für bestehendes PACS System zur semi-automatischen Lymphknoten Segmentierung in dreidimensionalen radiologischen Bilddaten.

Das Modul enthält Unterstützung für mehrere, in beliebigen Zeitabständen erfolgte Untersuchungen und stellt einen webkit/HTML-basierten Viewer und Editor zur Befunderstellung durch den Radiologen bereit.

Die Entwicklung wurde in Kooperation mit einer externen Firma durchgeführt.

C++ Qt PACS SQL/PostgreSQL WebKit SVN Multithreading Linux
Dortmund
4 Jahre
2006-01 - 2009-12

Netzwerkadministration in einem studentischen Wohnkomplex

Systemadministrator, Supporter Samba leafnode postfix ...
Systemadministrator, Supporter

Administration der internen Netzwerk Infrastruktur einer Wohnanlage mit ca. 300 Appartements. Hierzu zählten

  • Server-Administration (Mail Server, interne Web- und Usenet Foren, Website, etc.),
  • Anwender Support bei Internet Problem und
  • Unterstützung der Wohnverwaltung, etwa durch Bereitstellung von Mailing Listen.
Wireshark
Samba leafnode postfix mailman Apache PHP bash Perl iptables Tcpdump phpbb Linux Windows
Dortmund
1 Jahr 2 Monate
2008-05 - 2009-06

Softwaresystem zur Analyse und Generierung genetischer Daten in der medizinischen Grundlagenforschung

Software-Architekt, Entwickler, Technischer Projektleiter C++ Qt Unit Tests / Integration Tests ...
Software-Architekt, Entwickler, Technischer Projektleiter

Konzeption und Entwicklung eines Softwaresystems zur Generierung von Modellen und Modelldatensätzen sowie zur Datenanalyse in der medizinischen Grundlagenforschung.

Die Software wurde für genetische Daten entwickelt und war demnach ausgerichtet auf große Daten mit teils mehreren Gigabyte.

Das Projekt umfasste den gesamten Entwicklungsprozess von der Anforderungsanalyse mit medizinischem Fachpersonal, über Einordnung und Sichtung des aktuellen Forschungsstandes mit folgender Verfahrensauswahl bis hin zur konkreten Realisierung.

C++ Qt Unit Tests / Integration Tests Multithreading Linux Windows
Dortmund
1 Jahr
2007-04 - 2008-03

Planung und Entwicklung einer Kollisionsdetektionsbibliothek

Software-Architekt, Entwickler C++ ODE OGRE ...
Software-Architekt, Entwickler

Entwicklung einer Kollisionsdetektionsbibliothek sowohl für feste, als auch für deformierbare Körper (etwa Kleidung).

Die Bibliothek ist auf moderne Multi-Core/Multi-Prozessor Architekturen ausgelegt, kann aber auch in single-Core Systemen sinnvoll verwendet werden. Für verschiedene Anwendungszwecke wurden verschiedene Kollisions Algorithmen implementiert, insbesondere für deformierbare Körper.

Die Bibliothek kann problemlos auch mit vielen Objekten gleichzeitig umgehen, mehrere Beispielanwendungen wurden zu Demonstrationszwecken realisiert.

Die Software wurde ausgiebig auf Performance optimiert um insbesondere auch für zeitkritische Anforderungen geeignet zu sein.

Diverse Unit Tests/Integration Tests wurden implementiert um die Korrektheit der berechneten Ergebnisse zu garantieren.

C++ ODE OGRE CEGUI OpenGL CppUnit CMake lib3ds UML Multithreading Unit Tests / Integration Tests Linux Windows
Dortmund
5 Jahre 11 Monate
2001-01 - 2006-11

Entwicklung von 3D-Echtzeit Strategiespiel

Projektleiter, Entwickler, Software-Architekt C++ Qt3 Qt4 ...
Projektleiter, Entwickler, Software-Architekt
  • Weiterentwicklung des Prototyps eines 2D-Echtzeit Strategiespiels (Real Time Strategy Game, RTS), insbesondere Entwicklung von Mehrspieler Fähigkeit (TCP/IP).
  • Planung und Entwicklung einer modernen 3D Umsetzung auf Basis von OpenGL.
  • Planung und Entwicklung eines Frameworks für KI, einschließlich einer eigens entwickelten Script-Engine unter Verwendung von Python.

Die Game-Engine unterstützt bis zu 10 Spieler, die jeweils über Netzwerk/Internet oder als Computer Spieler (während des Spiels austauschbar) realisiert sein können. Das Spiel verwendet eine peer-to-peer Netzwerkarchitektur und stellt Event-basierte Szenarien bereit.

  • Ebenfalls geplant und entwickelt wurden zugehörige Tools zur Unterstützung des Model Designs sowie ein Level Editor.
  • Die Arbeit anderer Teammitglieder, etwa Sound-Artists, Graphik-Artists sowie Pathfinding- und Graphik-Entwickler wurde unterstützt und koordiniert.
C++ Qt3 Qt4 OpenGL lib3ds Python Perl libufo automake/autoconf CMake SVN PHP Linux
Dortmund
5 Monate
2006-01 - 2006-05

Performance Optimierung in Visualisierungs Anwendung

Entwickler Java Swing Linux ...
Entwickler

Verbesserung der Laufzeit einer Prozess-Visualisierungs Anwendung. Bei umfangreichen Datenmengen wurde die Anwendung aufgrund der existierenden Implementierung inakzeptabel langsam.

Die Optimierung hat die Laufzeit wichtiger Funktionen von einigen Minuten bis Stunden auf teils unter eine Sekunde gedrückt.

Java Swing Linux Windows
Dortmund
10 Monate
2005-01 - 2005-10

Buch zum Thema ?Open Source Game Development?

Koautor C++ Qt OpenGL ...
Koautor

Koautor von [Name auf Anfrage].

Das Buch ist eine Einführung in das Thema „Destop Games“ (d.h. „kleine“ Spiele heute wird der Begriff „Casual Games“ verwendet) mit Hilfe von Qt.

Word OpenOffice Latex
C++ Qt OpenGL Latex SVN
Dortmund
4 Jahre
2001-01 - 2004-12

Systemadministration in einer karitativen Jugendeinrichtung

Systemadministrator, Supporter
Systemadministrator, Supporter

Technische Betreuung (Einrichtung und Wartung) des Internet Cafes in einer karitativen Jugendeinrichtung.

Krefeld
3 Jahre 9 Monate
2001-01 - 2004-09

Netzwerk-Bibliothek für Multiplayer KDE Spiele

Entwickler, Software-Architekt C++ Qt KDE ...
Entwickler, Software-Architekt

Entwicklung einer Netzwerkbibliothek für Multiplayer Spiele im KDE Umfeld, basierend auf wahlweise Dedicated-Server oder Peer-to-Peer Architektur. Die Bibliothek wird sowohl Server- als auch Client-seitig von einigen KDE Spielen eingesetzt. Ebenfalls enthalten ist eine multi-Prozess basierte Unterstützung für KI Spieler.

C++ Qt KDE Linux CVS
Krefeld
1 Monat
2004-03 - 2004-03

Spieleentwicklung

Entwickler, Software-Architekt Java Swing UML ...
Entwickler, Software-Architekt

Planung und Entwicklung einer Umsetzung des bekannten „Halma“ Gesellschaftsspiels, mit Computerspieler (3 Schwierigkeitsstufen) Unterstützung. Das fertige Spiel hat in einem Wettbewerb mehrerer Konkurrierender Gruppen den 1. Platz belegt.

Netbeans Borland Together 6.1
Java Swing UML Unit Tests / Integration Tests Linux
Dortmund
1 Monat
2004-02 - 2004-02

Entwicklung von Verwaltungssoftware für Bibliotheken

Entwickler, Software-Architekt Java Swing UML ...
Entwickler, Software-Architekt

Planung und Entwicklung eines einfachen Verwaltungsprogramms für kleinere Bibliotheken. Das Programm ist darauf ausgelegt ein altes „Karteikarten System“ zu ersetzen.

Netbeans Borland Together 6.1
Java Swing UML Unit Tests / Integration Tests Linux
Dortmund
1 Jahr 7 Monate
2001-09 - 2003-03

Entwicklung eines Microcontroller basierten Smartcard Lesers

Entwickler, Software-Architekt C C++ Pascal ...
Entwickler, Software-Architekt

Planung, Entwurf und Entwicklung eines Smartcard Lesers mit Netzwerkanschluss auf Microcontroller (8051) Basis. Das Projekt umfasste den vollständigen Entwicklungsprozess, von Spezifikation der Hardware-Anforderungen und aktiver Unterstützung der hardwareseitigen Umsetzung, bis hin zur vollständigen Software Entwicklung. Das fertige Produkt enthält den entwickelten Smartdrive Treiber, die Netzwerk Protokoll Implementierungen (DHCP, HTTP) auf Standalone Device ohne Betriebssystem.

C C++ Pascal 8051 Keil C51 SDCC Atmel Beck DK40 SC12 IPC@CHIP Towitoko Smartdrive Samba Wiznet IIM7100 Linux Windows
Krefeld

Aus- und Weiterbildung

Aus- und Weiterbildung

2009

Diplom Informatiker, TU Dortmund

Kompetenzen

Kompetenzen

Top-Skills

Android iOS C++ Software-Entwicklung Linux Qt Swift Java Kotlin Bluetooth

Produkte / Standards / Erfahrungen / Methoden

Android Studio
Apache
autotools
automake, autoconf
Boost
CMake
Geofencing
git
Icinga
JNI
Nagios
OpenGL
pthreads
PyTest
Qt
Scrum
SSH
Subversion
SUOTA
SVN
Swift
VNC
Protokollimplementierung
WebKit
Xcode

Betriebssysteme

Android
iOS
Linux
Mac OSX
TI-RTOS
Unix
Windows
Windows 10

iOS/Android sind die häufigsten Zielsysteme für die ich entwickle, gefolgt von Linux, insbesondere Embedded Linux sowie für Server Backends.

Programmiersprachen

Bash
C
C#
Grundlagen
C++
C/C++
Go
Java
Objective-C
Im Bereich iOS für Bestandsprojekte. Für neue Projekte setze ich Swift ein.
Perl
Basiskenntnisse, verwende ich inzwischen kaum noch.
PHP
Python
Qt
Umfangreiche Kenntnisse, insbesondere im Desktop Bereich, in den meisten Modulen.
Shell
Swift

Mein fachlicher Schwerpunkt ist in der mobilen Softwareentwicklung (Android/iOS) mit Java/Kotlin, Swift/Objective C sowie ggf. C/C++.

Darüberhinaus habe ich umfangreiche Kenntnisse in der Entwicklung mit C/C++ im Bereich Server Backend sowie Desktop Systemen, insbesondere unter Linux. Sehr häufig setze ich hierfür Qt ein.

Datenbanken

MySQL
Postgres
PostgreSQL
sqlite

Datenkommunikation

Bluetooth LE
Internet, Intranet
JSON
JSON-RPC
REST
TCP/IP
VNC/RFB
Websockets
XMPP

Berechnung / Simulation / Versuch / Validierung

cpptest
googletest
PyUnit
Unit Tests / Integration Tests
Unit-Tests

Branchen

Branchen

  • Elektroinstallationstechnik
  • Maschinenbau
  • IT-Dienstleistungen
  • Software
  • Automotive
  • Medien & Entertainment
  • Medizintechnik
  • IT-Sicherheit
  • Luftfahrt

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.