Career

On this page I give a little insight into my personal career path in the software development and Linux administration sector up to this point. First, I list my last projects as an employee. Then, I attend to the other challenges in recent years. I do not show projects of my former college days, but you can find some of them on my old web page (see below) I created in 2007. The list is not entirely sorted chronologically, because some projects interleave with others temporarily. For some private projects, I publish the source code to show the development of my personal programming style. Naturally, this is not possible for company projects.

I was born in Cottbus on 26 May 1983. I started programming at the age of 13. My goal was, to activate the mouse of my father's dos computer with the help of QBasic. I gained my Diplom-Informatiker(BA) degree at the Berufsakademie Dresden in 2011. Goyya.com was my corporate partner during my studies. I made the biggest leap forward in development as an employee at Unister GmbH and the secunet Security Networks AG. Today I have more than 20 years experience in programming. I call myself a software developer and a Linux administrator. I have two children and I am not married.

Permanent positions


Company
secunet AG
Project
SINA Console
Period
2015 - 2017
Category
Software development
Technology
Java, Jemmy, Swing, Multithreading
As an employee at the secunet AG I helped developing the SINA Console. This is a desktop application written in Java. It is used for managing SINA boxes (a company security product mostly used for VPNs) and for writing smart cards. My main tasks were fixing bugs, creating new graphical user interfaces for managing firewall rules of the SINA boxes and writing acceptance tests with the help of a Java 8 based functional test system and the Jemmy framework. The SINA Console consists of more than three hundred thousand source lines of code.

Company
Unister GmbH
Project
Preisvergleich.de
Period
2012 - 2014
Category
Software development
Technology
PHP, HTML, JavaScript, Zend-Framework
At the Unister GmbH I was a member of the Preisvergleich team. Preisvergleich.de is not just a simple web page. It is a web portal consisting of more than sixteen web pages in different languages. Temporarily, I was the maintainer of these web pages. My main tasks were fixing bugs in the code, merging branches from other developers into the main branch, releasing new versions of the portal and adjusting the split testing (A/B testing) mechanism. Furthermore, I was responsible for adapting the backend APIs to external interfaces. Search Engine Marketing (SEM) and Search Engine Optimization (SEO) also belonged to my field of duties. I wrote a site map generator for millions of product pages in PHP and a scroll triggered page loader in JavaScript. The Preisvergleich.de portal consists of more than thirty thousand files. For six months, I was responsible for educating six apprentices. We developed an android application similar to the "Quizzduell" app for more than two players. Finally, I switched to the Flüge team (ab-in-den-urlaub.de) for a short period of time.

Company
goyya.com
Project
Mobile Content Server
Period
2007 - 2011
Category
Software development
Technology
PHP, HTML, CSS, JavaScript, WURFL, Asterisk
My first regular job was characterized by web development with PHP, HTML, JavaScript, XML and XSLT. I developed the mobile content server (MCS), a web application for business customers. It was used for managing mobile data contents like ring tones, images and videos. Also it was capable of sending SMS or MMS to customers. One of the key features of the MCS was the conversion of the different mobile data contents to fit the capabilities of the requesting mobile phone. At that time, not every mobile phone was able to render every format. Besides, I set up an Asterisk server on Linux and helped developing some web pages.

Projects


Project
USV TU Schach web page
Period
July 2013, autumn 2019
Category
Linux system administration
Technology
WordPress, PHP, HTML, JavaScript, CSS, Let's Encrypt, SQL, Bash, Sed, Deployment
Sources
DWZ calculator (bash) , Sed script (Web scraper)
I am a member of the USV TU Dresden chess club since 2010. In 2013, I was asked to examine the old web page based on Drupal, which had problems with its SQLite database. I created a new web page with WordPress and designed a customized theme, which was unfortunately discarded by other club members. I repeatedly made little improvements to the website since than. I wrote a script, which automatically downloads and updates the list of all members from the german chess federation server every week. Additionally, I customized the theme event pages. The website uses a Let's Encrypt SSL certificate and resides on one of my private servers. At the end of 2019, I developed a new wordpress theme for this page. Events, game days and results are automatically collected for each team from other web pages. The live dwz calculator for the current season can be considered a small highlight.

Project
Tix
Period
12.2018 - 02.2019
Category
Linux system administration
Technology
Bash, Sed, Awk, Find, Grep, Linux From Scratch, package management, package distribution
Sources
Tix 1.0
To further intensify my Linux skills and to reduce the dependencies of my Linux server systems I created Tix, my own Linux distribution based on Linux From Scratch (LFS). In the process I enhanced the package user system created by Matthias S. Benkmann. Package source code is automatically downloaded, configured and compiled for a newly created system user. The concrete steps and the dependencies to other software packages are tracked in a separate list. After the build process is finished, the installed files are packed with Tar and deployed to a local web server. Other computers are easily able to install these packages with the Tix bash script. The planned Tix 2.0 should be able to build the initial LFS packages. Furthermore, the concrete steps should reside in a separate build file for every package. Additionally, the build process should make use of the "destdir" principal and a chroot environment with read only mount binds to ease and isolate the installation.

Project
foto.timabea.de
Period
July, August 2018
Category
Software development
Technology
Java, HTML, JavaScript, Tomcat, JSP, Servlet
This page was created as a showcase project for a dynamic web page I also offer as a service. The page mostly contains photos I took during several journeys since 2013. Although it does not look very dynamic, because there are no forms, it has a dynamic backend. The menu is automatically generated from the directory structure on the file system. Every directory corresponds to a photo category. This way a new category can be easily created. Every photo, belonging to one of the directories, is shown in the corresponding gallery. The photographer only needs to add a new photo to a directory and execute a script. The script searches for the original image (raw) and reads its record setting and geographical position data. The script also generates the map images, which are shown in the slideshow overlay. I do not want to publish the source code of this web page.

Project
DIY Baby Monitor
Period
May 2017, May 2018
Category
Linux system administration
Technology
Groovy, V4l, Subsonic, FFserver, FFmpeg, Systemd, Bind9, Wpa-supplicant, Hostapd, ISC DHCP Server
This was not an easy project, but it works very well now. We use it on a daily basis and it already attracted attention from our friends and family. It uses multiple technologies at once. A Raspberry Pi (Pi), with an infrared camera and a microphone, is used as the hardware basis. The main recording software is FFmpeg and FFServer. If a client requests a video or audio stream from the baby monitor, a script written in Groovy will activate it. With this mechanism the Pi does not need to record the streams as long as nobody is watching or listening, which saves its resources. Lately, I added a transistor, which is also governed by the Pi. With its help, an external infrared light is switched corresponding to the video stream requests. Additionally, the baby monitor can be controlled from the Internet. Music can be played for the baby. The baby monitor functions as a standalone device with its own WLAN hotspot or automatically connects to the home network.

Project
Linux server
Period
2012 - 2018
Category
Linux system administration
Technology
Bash-Scripts, Linux From Scratch, NFS, Mysql, Tomcat, Postfix, IPtables, Dovecot, Nginx, Bind9, ISC DHCP Server, Brctl, Hostapd, Rsnapshot, Mdadm, Ipv6, OpenVPN
Sources
My firewall rules (IP and ports faked)
I converted an old computer to a linux server in early 2012. Since that time, I invested a vast number of hours into its progression. Over time, the functionality was split onto several devices. The firewall, which is based on my own Linux and IPtables, was put onto a separate device in 2018. The web server and the mail server are now located in a DMZ (Demilitarized Zone). Altogether, I currently manage three linux servers (fourth and last one is planned), three Ubuntu personal computers and two Raspberry Pi with Minibian at home. I use Rsnapshot to backup my personal data. Shared directories are bound with NFS.

Project
Php-Library , Java-Library
Period
October 2012, March 2015, July 2018
Category
Software development
Technology
PHP, HTML, JavaScript, CSS, Zend-Framework, Spring Framework, Hibernate ORM, JDBC
Sources
Php-Library , Java-Library
Just before I entered my regular job at the Unister GmbH in 2010, I tried to become acquainted with the Zend-Framework. I created this little web application to intensify my knowledge. At that time, I was short on experience in working with frameworks, because most of the projects, I had worked on by then, were developed without external libraries. The library only has a few simple pages and one n to m relationship. However, this is completely sufficient for induction. The app uses the model view controller architecture. The database backend is provided by SQLite. Looking at the source code today, I notice that there are some database queries in loops, which can become very inefficient once you are working with large data sets. I rebuild the library with Java to get more experience with the Spring Framework and the Hibernate ORM in 2015. Finally, I replaced Hibernate with plain standard JDBC connections in 2018.

Project
Old web page for applications
Period
March 2007
Category
Software development
Technology
PHP, HTML, XML, XSLT, CSS
Sources
First entry on the project page
In the spring of 2007, I created a website to increase my chances on the job market. The page was one of my first encounters with the functional programming paradigm. XSLT is after all a declarative programming language. At that time, I was impressed by the strict separation of data and layout. I have published this page, like it had been published back then. Obviously, it was optimized for other display resolutions. There is a very interesting self-evaluation in retrospect. Certainly, some of it has to be put into perspective.