Werdegang

Hier können Sie sich über meine bisherige, persönliche Laufbahn im Bereich Softwareentwicklung und Linux-Systemadministration informieren. Zunächst liste ich meine letzten Projekte in Festanstellung auf. Danach widme ich mich den anderen Herausforderungen der letzten Jahre. Projekte aus Studentenzeit habe ich nicht eingestellt, einige davon können Sie aber auf meiner alten Bewerbungsseite (siehe unten) von 2007 begutachten. Die Liste ist nur teilweise chronologisch sortiert, da einige Projekte sich zeitlich mit anderen überschneiden. Zu einigen privaten Projekten veröffentliche ich den Quellcode, damit der Fortschritt meines Programmierstils nachvollzogen werden kann. Bei Firmenprojekten ist das natürlich nicht möglich.

Geboren wurde ich am 26.05.1983 in Cottbus. Mit 13 Jahren fing ich an zu programmieren. Mein Ziel war es die Maus auf dem DOS-Rechner meines Vaters mit Hilfe von QBasic zu aktivieren. Meinen Abschluss als Diplom-Informatiker(BA) machte ich im Jahr 2011 an der Berufsakademie Dresden mit der Firma goyya.com als meinem Praxispartner. Die größte Entwicklung habe ich während meinen Anstellungen bei der Unister GmbH und der secunet Security Networks AG gemacht. Heute habe ich mehr als 20 Jahre Programmiererfahrung. Ich bezeichne mich selbst als Softwareentwickler bzw. Dev-Op. Ich habe zwei Kinder und bin ledig.

Festanstellungen


Firma
secunet AG
Projekt
SINA Console
Zeitraum
2015 - 2017
Kategorie
Softwareentwicklung
Technologie
Java, Jemmy, Swing, Multithreading
Als Angestellter bei der secunet AG half ich bei der Weiterentwicklung der SINA Console. Die SINA Console ist eine Desktop-Anwendung zur Verwaltung von SINA Boxen und zum Beschreiben von Smartcards. Meine Hauptaufgabe bestand im Beheben von Programmfehlern, dem Einbau von Oberflächen zum Verwalten von Firewall-Regeln für die SINA Boxen und dem Schreiben von Akzeptanztests mittels eines auf Java 8 basierten, funktionalen Testsystems und dem Jemmy Framework. Die SINA Console besteht aus über dreihunderttausend Codezeilen.

Firma
Unister GmbH
Projekt
Preisvergleich.de
Zeitraum
2012 - 2014
Kategorie
Softwareentwicklung
Technologie
PHP, HTML, JavaScript, Zend-Framework
Bei der Unister GmbH war ich Mitglied im Preisvergleich-Team. Preisvergleich.de ist nicht nur eine Webseite, sondern ein Web-Portal. Dazu gehören über 16 verschiedene Webseiten. Zeitweise war ich Maintainer dieser Webseiten. Meine Hauptaufgaben dabei waren das Beheben von Bugs, das Zusammenführen von Entwicklungszweigen anderer Entwickler in den Hauptzweig, das Veröffentlichen von neuen Versionen sowie das A/B-Testing. Außerdem war ich für die API Anbindung an externe Anbieter verantwortlich. SEM und SEO gehörten ebenso zu meinem Themenbereich. Ich schrieb hier einen Sitemap-Generator für Millionen Produktseiten in PHP und einen Scroll-Autoloader in JavaScript. Das Preisvergleich-Portal besteht aus über dreißigtausend Dateien. Für ein halbes Jahr war ich verantwortlich für die Ausbildung von sechs Auszubildenden mit denen ich eine Android-App entwickelte, bevor ich für kurze Zeit in das Flüge (ab-in-den-urlaub.de) Team wechselte.

Firma
goyya.com
Projekt
Mobile Content Server
Zeitraum
2007 - 2011
Kategorie
Softwareentwicklung
Technologie
PHP, HTML, CSS, JavaScript, WURFL, Asterisk
Meine erste Festanstellung bei der Firma goyya.com war geprägt durch Webentwicklung mit PHP, HTML, JavaScript, XML und XSLT. Ich entwickelte den Mobile-Content-Server (MCS), eine Webanwendung für Kunden mit der man mobile Inhalte wie Klingeltöne, Bilder und Videos verwalten und per SMS an Kunden versenden konnte. Eine der Schlüsselfunktionen des MCS war die Umwandlung und Auslieferung der Inhalte, je nach Fähigkeit des abrufenden Handys. Damals konnten Mobiltelefone noch nicht jegliche Formate wiedergeben. Neben der Softwareentwicklung setzte ich auch einen Asterisk-Server auf Linux auf und half bei der Entwicklung von Webseiten.

Projekte


Projekt
USV TU Schach Webseite
Zeitraum
Juli 2013, Herbst 2019
Kategorie
Systemadministration
Technologie
WordPress, PHP, HTML, JavaScript, CSS, Let's Encrypt, SQL, Bash, Sed, Deployment
Quellcode
DWZ Calculator (Bash) , Sed Skript (Web Scraper)
Seit 2010 bin ich Mitglied beim Schachverein des USV TU Dresden. 2013 wurde ich gebeten mir die alte Seite auf Basis von Drupal anzusehen, da es dort einige Probleme mit der SQLite Datenbank gab. Ich setzte die Seite komplett neu mit WordPress auf und entwickelte ein eigenes Theme, welches aber leider verworfen wurde. Seit dem habe ich immer wieder kleine Änderungen an der Seite vorgenommen. Ich schrieb ein Skript, das jede Woche die aktuelle Mitgliederliste vom Schachbund-Server lädt. Außerdem veränderte ich die Theme-Eventseiten. Die Seite hat ein Let's Encrypt SSL-Zertifikat und liegt auf einem meiner privaten Server. Ende 2019 entwickelte ich ein neues Wordpress-Theme für die Seite. Für jedes Team werden nun Termine, Spieltage und Ergebnisse automatisch von anderen Seiten zusammengetragen und gespeichert. Ein kleines Highlight ist die Live-DWZ Berechnung für die aktive Saison.

Projekt
Tix
Zeitraum
12.2018 - 02.2019
Kategorie
Systemadministration
Technologie
Bash, Sed, Awk, Find, Grep, Linux From Scratch, Paketverwaltung, Paketverteilung
Quellcode
Tix 1.0
Um meine Linux-Kenntnisse zu intensivieren und gewisse Abhängigkeiten für meine Serversysteme zu reduzieren, setzte ich in diesem Projekt mein eigenes Linux mit Hilfe von Linux From Scratch (LFS) auf. Dabei entwickelte ich das package user system von Matthias S. Benkmann weiter. Softwarequellcode wird automatisch heruntergeladen und für einen neu angelegten Nutzer mit dem gleichen Namen konfiguriert und kompiliert. Die einzelnen Schritte und die Abhängigkeiten zu anderen Paketen werden in einer Liste festgehalten. Nach dem Build-Prozess werden die installierten Dateien in tar Paketen zusammengefasst und auf einen meiner lokalen Server gestellt. Die anderen Geräte können sich dann ebenso mit Hilfe des Skripts die Pakete installieren. Das geplante Tix 2.0 soll auch die LFS-Pakete mit bauen können. Die konkreten Build-Schritte sollen dann außerdem in eigene Dateien ausgelagert werden. Des Weiteren soll der Build-Prozess der einzelnen Pakete nach dem "destdir" Schema und in einem "chroot" mit "read only mount binds" vollzogen werden, um die Installation zu vereinfachen und zu isolieren.

Projekt
foto.timabea.de
Zeitraum
Juli, August 2018
Kategorie
Softwareentwicklung
Technologie
Java, HTML, JavaScript, Tomcat, JSP, Servlet
Die Seite dient als Aushängeschild für eine dynamische Webseite, die ich auch als Dienstleistung anbiete. Sie zeigt hauptsächlich Fotos, die ich seit 2013 auf verschiedenen Reisen aufgenommen habe. Das Menü wird automatisch aus der Ordnerstruktur auf dem Dateisystem generiert. Jeder Ordner steht für eine Fotokategorie (z.B. Porträt, Tiere). Eine neue Kategorie ist so sehr schnell angelegt. Die Fotos die in diesen Ordnern liegen werden unter der jeweiligen Kategorie angezeigt. Der Fotograf muss nur noch ein neues Foto in einen der Ordner legen und ein Skript ausführen. Für das Foto wird dann das Originalbild (raw) gesucht und aus diesem werden die Aufnahme- und Geodaten ausgelesen. Aus den Geodaten werden die Kartenbilder erstellt, die in der Slideshow angezeigt werden. Den Quellcode der Seite möchte ich nicht veröffentlichen.

Projekt
Selbstbau Babyfon
Zeitraum
Mai 2017, Mai 2018
Kategorie
Systemadministration
Technologie
Groovy, V4l, Subsonic, FFserver, FFmpeg, Systemd, Bind9, Wpa-supplicant, Hostapd, ISC DHCP Server
Ein Projekt welches kompliziert umzusetzen war, dafür aber jetzt wirklich sehr gut funktioniert. Es wird von uns quasi tagtäglich benutzt und hat in unserem näheren Umfeld für einiges Aufsehen gesorgt. Es benutzt einige Technologien auf einmal. Als Hardwarebasis kommt ein Raspberry Pi mit Infrarot Kamera und USB-Mikrofon zum Einsatz. Als Softwarebasis wird FFmpeg und FFserver verwendet. Wenn ein Klient Video bzw. Sound anfragt, schaltet ein in Groovy geschriebenes Script den FFmpeg Video- bzw. Audio-Stream an. So wird der Raspberry Pi nicht unnötig belastet, wenn niemand zuschaut bzw. zuhört. Zuletzt kam noch ein vom Pi gesteuerter Mosfet-Transistor dazu, mit dessen Hilfe sich die externe Infrarot-LED ebenso aufschalten lässt wie die Streams. Außerdem lässt sich das Babyfon aus dem Internet steuern. Sound lässt sich für das Kind über Subsonic im Jukebox-Modus abspielen. Das Babyfon funktioniert im Standalone-Modus, aber kann sich auch selbstständig im WLAN zu Hause anmelden.

Projekt
Linux-Server
Zeitraum
2012 - 2018
Kategorie
Systemadministration
Technologie
Bash-Scripts, Linux From Scratch, NFS, Mysql, Tomcat, Postfix, IPtables, Dovecot, Nginx, Bind9, ISC DHCP Server, Brctl, Hostapd, Rsnapshot, Mdadm, Ipv6, OpenVPN
Quellcode
Meine Firewall Regeln (IPs und Ports verfälscht)
Anfang 2012 baute ich einen alten Rechner zu einem Linux-Server um. Seit dem habe ich unzählige Stunden in die Weiterentwicklung gesteckt. Von dem einen Rechner wurden über die Zeit hinweg die Funktionalitäten auf verschieden Geräte aufgeteilt. Die Firewall wurde 2018 ein eigenes Gerät und basiert rein auf IPtables und meinem eigenen Linux. Der Webserver und der Mailserver stehen jetzt in einer DMZ. Insgesamt verwalte ich zu Hause zum aktuellen Zeitpunkt drei Linux-Server (vierter und damit letzter ist in Planung), drei Linux-PCs mit Ubuntu und zwei Raspberry Pi mit Minibian. Als Backup kommt Rsnapshot zum Einsatz. Gemeinsame Ordner werden über NFS eingebunden.

Projekt
Php-Library , Java-Library
Zeitraum
Oktober 2012, März 2015, Juli 2018
Kategorie
Softwareentwicklung
Technologie
PHP, HTML, JavaScript, CSS, Zend-Framework, Spring Framework, Hibernate, JDBC
Quellcode
Php-Library , Java-Library
Vor der Festanstellung bei der Unister GmbH arbeitete ich mich in das Zend-Framework ein. Dabei entstand diese kleine Webanwendung. Bis dahin hatte ich wenig Erfahrung mit PHP-Frameworks und die meisten Projekte eher im Eigenbau bewerkstelligt. Die Library hat nur sehr einfache GUI-Seiten und es gibt auch nur eine kleine N zu M Datenbankrelation. Für eine Einarbeitung aber völlig ausreichend. Es wird die MVC-Architektur verwendet. Als Datenbank wird SQLite verwendet. Wenn ich mir den Quellcode heute angucke, fällt auf, dass die Datenbankanbindung doch sehr uneffizient gestaltet ist. Es gibt Datenbankanfragen in Schleifen, was bei großen Datenmengen sehr unperformant werden kann. 2015 baute ich die Library mit Java nach, um ein wenig Erfahrung mit dem Spring Framework und Hibernate zu bekommen. 2018 wurde aus dieser dann Hibernate entfernt und auf eine klassische JDBC Verbindung umgestellt.

Projekt
Alte Bewerbungsseite
Zeitraum
März 2007
Kategorie
Softwareentwicklung
Technologie
PHP, HTML, XML, XSLT, CSS
Quellcode
Erster Eintrag auf Projektseite
Im Frühjahr 2007 setzte ich eine Webseite auf, um meine Chancen bei einer Bewerbung auf dem Arbeitsmarkt zu erhöhen. Die Seite gehörte zu meinen ersten Gehversuchen mit dem funktionalen Programmierparadigma. Schließlich ist die Transformationssprache XSLT eine deklarative Sprache. Damals war ich vor allem von der strikten Trennung von Daten und Layout begeistert. Ich habe die Seite so online gestellt, wie sie damals aussah. Sie ist offensichtlich noch auf andere Bildschirmgrößen angepasst. Interessant ist vor allem die Selbsteinschätzung meiner Fähigkeiten zum damaligen Zeitpunkt: Sicherlich muss das heute ein wenig relativiert werden.