Team Profil 

Sebastian Rudek

  • Qualifikation: Software-Architekturen, Software-Entwicklung, Prozess- und Testautomatisierung

Branchenerfahrungen

  • Telekommunikation
  • Lernsoftware
  • Astronomie

Methoden / Prozesse Spezialgebiete

  • Erstellung technischer Dokumentationen, Modellierung von Softwaresystemen (UML) hauptsächlich mit Software Ideas Modeler, aber auch Enterprise Architect.
  • SCM, CI, Konsolidierung von Wissen, Code Review: Installation entsprechender Systeme, Management sowie Benutzung (Redmine, Mantis, Jenkins, Gerrit, Artifactory, Dokuwiki, GitLab, Gogs)
  • SCM mit CVS, SVN und Git

Entwicklungsumgebungen, Tools

  • QtCreator, Visual Studio, Eclipse (CDT, PDT, JDT), Android Studio, Xcode, Visual Studio Code, Sublime Text
  • Windows Driver Framework, WinUSB, Win32 API, Windows Servicing, Unix Daemons, macOS launchd, Linux Kernelmodule

Testing

  • C++/Qt Unit Tests mit QtestLib, Junit, Mockito

Web Application Frameworks

  • Ruby on Rails, Spring Boot

Sonstiges

  • XSL, XSLT
  • XSD, DTD
  • XPath
  • (X)HTML, CSS2, CSS3, SCSS
  • Node.js, Webpack
  • Installation, Administration, Wartung, Entwicklung für die CMS-Systeme Joomla!, WordPress, Drupal und Typo3
  • CAPI 2.0 (Implementierung der CAPI 2.0-Spezifikation), EnOcean, MQTT, Z-Wave, Hausautomatisierung im Bereich Funksteckdosen (Eigenentwicklung)
  • Microcontrollerprogrammierung, Embedded-Systeme wie RPi, CubieTruck, Arduino etc.

Projekte (Auszug)

2018

Namibskies.com

NamibSkies ist eine Dienstleistung, die es jedem registrierten Nutzer ermöglicht, remote eigene fotografische Aufnahmen aus den Tiefen des Alls anzufertigen. Dieser Service wird auf einer Website vorgestellt, bei der ich für die Architektur und die Implementierung des Backends (J2EE / Spring Boot) sowie die Realisierung des Frontends (Vue.js, Bootstrap) verantwortlich zeichne. Die Idee bzw. das Ziel hinter NamibSkies ist es, interessierten Nutzern eine vollständig im Browser laufende, intuitive Oberfläche zu bieten, über die sie – nach vorheriger Registrierung, Buchung und Bezahlung – die Sternwarte auf der Astrofarm in Namibia vollständig bedienen können. Für das Buchungssystem wurde PayPal integriert. Um dies anbieten zu können, interagieren verschiedene Softwarekomponenten, die für den Nutzer nicht direkt sichtbar sind, miteinander. So ermöglichen zugriffsbeschränkte Endpunkte etwa die Steuerung der von ASA gefertigen Montierung für das Teleskop, das Abrufen von Live-Bildern der vor Ort installierten Webcams oder die Abfrage von Wetterdaten.

Rolle / Tätigkeit

Architekt, C++/Qt-Entwickler, Java-Entwickler, Web-Entwickler

Technologien

Java EE , Spring Boot, CDI, JPA, Hibernate, Spring Security, Liquibase, Jenkins, nginx, Maven, Git, Vue.js, Node.js, ChartJS, axios, Bootstrap (Vue), Qt (Core, Network), REST, macOS Launchd, PayPal-API

2018

CloudWatcher (NamibSkies)

An dem Steuerrechner auf der Astrofarm in Namibia ist Hardware angeschlossen, die über geografische Grenzen hinaus angesteuert werden muss. Der CloudWatcher ist eine solche Hardware-Komponente. Sie beobachtet die Wetterbedingungen mittels verschiedener Sensoren und ermöglicht so die Ermittlung eines „Beobachtbarkeits“-Indexes. Ist der Himmel beispielsweise bewölkt oder es ist regnerisch kann die Sternwarte nicht verwendet werden. Um den CloudWatcher in das NamibSkies-Projekt zu integrieren wurde mithilfe des QPlugin-Systems eine dynamisch ladbare Komponente entwickelt, die das CloudWatcher-Protokoll implementiert, um alle Sensoren auszulesen. Diese Komponente läuft in einer Kommandozeilenapplikation als macOS launchd- Daemon und informiert über eine Web-Schnittstelle andere Systeme über sich ändernde Wetterzustände vor Ort. Diese Live-Wetterdaten werden – abstrahiert – auf der Startseite von NamibSkies.com dargestellt; die Datenbasis dient dazu, eine Wetterhistorie anzubieten.

Rolle / Tätigkeit

Architekt, C++/Qt-Entwickler,

Technologien

nginx, D3.js, ChartJS, Qt (Core, Network), REST, macOS Launchd

2018 

Dragonfly (NamibSkies)

Analog zum CloudWatcher (s.o.), der hauptsächlich aus Sensoren besteht die abgefragt werden, wird mithilfe des Dragonfly tatsächlich Peripherie gesteuert. Auch hierfür wurde eine Interface-Library als QPlugin entwickelt. Sie läuft im Kontext eines macOS-launchd-Daemons auf dem Zielrechner in Namibia und abstrahiert dort das entsprechende Dragonfly-Protokoll.

Über dedizierte REST-Endpunkte ist es über die Weboberfläche von NamibSkies.com möglich, händisch in die Automatismen, etwa zum Öffnen oder Schließen des Daches, einzugreifen.

Rolle / Tätigkeit

Architekt, C++/Qt-Entwickler

Technologien

nginx, Qt (Core, Network), REST, macOS Launchd

2017

Diagnose-Tool

API zur Nutzung des Chipsatzeigenen Diagnosekanals auf einem Android-basierten Smartphone. Es sollte ein Modul erstellt werden, mit dessen Hilfe es möglich ist, aus dem Kontext einer im Android-Kontext laufenden Messanwendung auf einem Androidtelefon auf Diagnosedaten des Baseband-Chips zuzugreifen. Dabei durften das Betriebssystem und die im Kernel laufenden Treiber nicht verändert werden. Entstanden ist letztlich Framework, realisiert als native Programmbibliothek, deren Softwaredesign es zulässt, leicht um den Support weiterer Chipsätze erweitert werden zu können. Diese Bibliothek kommt in einem Android-Service zum Einsatz. Funktionen der nativen Programmbibliothek werden per JNI angesprochen; AIDL wird schließlich verwendet, um anderen Anwendungen abstrahierte Methoden zur Kommunikation mit dem Diagnoseinterface zur Verfügung zu stellen.

Rolle / Tätigkeit

Architekt, Lead Developer, Support, Wartung

Technologien

Java, Android, Android Services, JNI, Android NDK, AIDL, C/C++, Linux Kernel

2017

Web-basiertes Fernwartungstool für Andnroid-Smartphones

Windows-Dienst mit REST-Schnittstelle für die Plug-and-Play-Fernsteuerung eine androidbasierten Smartphones. Der Bildschirminhalt kann mithilfe dieser Softwarekomponente – realisiert als Windows Service – über ADB an einen H.264 fähigen Player gestreamt werden. Der Service übernimmt auch die Auslieferung einer SPA, die den Videostrom im Browser zur Anzeige bringt und weitgehende Steuerungsmöglichkeiten bietet. Diese Web-App enthält einen H.264-Player und kommuniziert über Websockets mit dem Windows-Dienst. Eingesetzt wird das Tool zur Fernwartung von Smartphone-gestützten Messsystemen.

Rolle / Tätigkeit

Architekt, Lead Developer

Technologie

Win32 API, C++, POCO, REST, Websockets, H.264, jQuery, Semantic UI, React

2017

CAPI 2.0 Implementierung zur Anbindung von Smartphones an CAPI-basierte QoS-Messstation

Implementierung der CAPI 2.0 Spezifikation und Anbindung von androidbasierten Smartphones als virtuelle ISDN-Controller. Ziel des Projekts war es, eine automatisierte, per Rechner gesteuerte Rufannahme auf Smartphones mit Android-Betriebssystem sowie das Übertragen von vorgefertigten Sprachsamples zu ermöglichen, sodass eine Bewertung der über das Funknetz übertragenen Sprache mittels POLQA stattfinden kann. Für diesen Anwendungsfall existierte bereits eine Software, die bislang eine ISDN-Karte voraussetzte um zu funktionieren. Somit können zwar Rufe vom Mobilnetz ins PSTN und umgekehrt gemacht werden, für den Testfall „Mobile zu Mobile“ stand bislang jedoch keine Lösung parat. Mit der eigenen CAPI-Implementierung in Verbindung mit dem eigens für diesen Zweck entwickelten Sound-Controller und dem dazugehörigen Treiber ist es nun möglich, auch diesen Testfall abzubilden. Für die Rufsignalisierung kommuniziert die CAPI-Implementierung mit einer auf dem Handy laufenden Applikation, welche unter anderem die Telefoniefunktionen des Mobiltelefons nach außen über eine durch ADB weitergereichte TCP/IP-Verbindung zugänglich macht. Später wurde die CAPI-Implementation um eine weitere Abstraktionsschicht erweitert, die den Anschluss beliebiger weiterer Technologien (z.B. SIP) mittels eines Plugin-Systems ermöglicht, ohne dass die Kernsoftware angepasst werden müsste.

Rolle / Tätigkeit

Lead Developer, Architekt, Wartung

Technologien / Spezifikationen

CAPI 2.0, C++, Win32 API, Winsock2

2016

Windows User Mode Treiber zur „Echtzeit“-Audioübertragung

Windows User Mode Treiber mit WinUSB für die nichtisochrone Übertragung eines Audiodatenstromes zwischen einem Windows-basierten Steuerrechner eines Messsystems und einer zu diesem Zweck entwickelten, über USB angebundenen Steuereinheit. Neben der Softwareschnittstelle selbst galt es, Diagnosewerkzeuge (in Software) zu entwickeln, um die Funktion der eigens hergestellten Controllerplatine zu verifizieren. Zu den Diagnosewerkzeugen gehören diverse Kommandozeilenprogramme und Programme mit einfacher grafischer Benutzeroberfläche, die es der Qualitätssicherung erlauben, einen Diagnoselauf auf einem oder mehreren angeschlossenen Geräten zu starten um festzustellen, dass die Ausgaben innerhalb der festgelegten Grenzwerte liegen. Als GUI-Toolkit kam maßgeblich Qt zum Einsatz. Der Treiber fand unmittelbar Verwendung in Verbindung mit der eignen CAPI Implementierung.

Rolle / Tätigkeit

Lead Developer, Architekt, Wartung

Technologien

Windows Driver Framework, C/C++, Visual C++, MFC, Qt