<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Softwareentwicklung made in Germany" />
    <meta name="keywords" content="Softwareentwicklung, Linuxadministration, Dresden, Deutschland" />
    <meta name="author" content="" />
    <title>Softwareentwicklung Dresden | key-idea.de</title>
    <link rel="stylesheet" href="/css/style.css" />
    <link rel="icon" type="image/svg+xml" href="/img/favicon.ico" />
    <script src="/js/index.js" type="text/javascript"></script>
  </head>
  <body class="author">
    <div id="header">
      <div class="right-left-wrap flex-head">
        <div id="logo">
          <img class="logo-img" src="/img/logo.svg" alt="logo" />
          <div class="slogan">
            <h1>Make Software Great Again</h1>
          </div>
        </div>
        <div id="navigation" class="nav">
          <div class="langsel">
            <a href="/en/">
              <img src="/img/en.png" alt="Seite auf englisch" />
            </a>
            <a href="/">
              <img src="/img/de.png" alt="Seite auf deutsch" />
            </a>
          </div>
          <ul>
            <li class="active">
              <div class="nav-splitter"></div>
              <a href="/">Über den Autor</a>
            </li>
            <li>
              <div class="nav-splitter"></div>
              <a href="/impressum">Impressum &amp; Kontakt</a>
            </li>
          </ul>
          <div class="icon">
            <a href="javascript:void(0);" onclick="myFunction()">
              <img alt="menu" src="/img/menu-icon.svg" />
            </a>
          </div>
        </div>
      </div>
    </div>
    <div id="main" class="right-left-wrap">
      <div class="author-head">
        <a href="/img/author.jpg">
          <img src="/img/author.jpg" alt="Bild vom Autor" />
        </a>
        <div>
          <h2>Werdegang</h2>
          <p>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.</p>
          <p>Geboren wurde ich am <strong>26.05.1983</strong> 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
			<strong>Diplom-Informatiker(BA)</strong> 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 <strong>20 Jahre
				Programmiererfahrung</strong>. Ich bezeichne mich selbst als
			Softwareentwickler bzw. Dev-Op. Ich habe <strong>zwei
				Kinder</strong> und bin <strong>ledig</strong>.</p>
        </div>
        <div class="clear"></div>
      </div>
      <h3>Festanstellungen</h3>
      <hr id="lsf" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Firma</div>
            <div>
              <a href="https://www.lsf.sachsen.de/">Landesamt
                    für Steuern und Finanzen <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Projekt</div>
            <div>Kidicap</div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>2021 - 2022</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>
                    Java, Oracle DB, SQL, XML-FOP, Kidientgelt, Natural,
                    Großrechner, Zahltag
                </div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-lsf.png">
            <img src="/img/author-lsf.jpg" alt="lsf Webseite" />
          </a>
        </div>
        <div class="project">
                Von November 2021 bis Mai 2022 war ich Sachbearbeiter für
                Anwendungsentwicklung beim sächsischen Landesamt für Steuern und
                Finanzen in Dresden. Meine Hauptaufgabe war das Übersetzen von
                Programmen, die in der Programmiersprache Natural für den
                Großrechner geschrieben wurden, in die Programmiersprache Java.
                Die Programme sind meist Hilfsmittel für die Bezügestelle, um
                komplexe Sachverhalte im Tarifsystem sichtbar zu machen. Es
                würde für einen Menschen einfach zu lange dauern diese in
                der GUI (Kidicap) selbst zu suchen. Es entstanden teilweise sehr
                große SQL-Abfragen, die dann mittels XML-FOP in PDF-Dokumente
                umgewandelt wurden. Das Hauptproblem lag darin, den
                prozeduralen Natural-Code in deklarativen SQL Code zu überführen
                und dabei die gleichen Ergebnisse zu erhalten.
            </div>
      </div>
      <hr id="secunet" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Firma</div>
            <div>
              <a href="https://www.secunet.com/">secunet AG <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Projekt</div>
            <div>SINA Console</div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>2015 - 2017</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>Java, Jemmy, Swing, Multithreading</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-sina.png">
            <img src="/img/author-sina.jpg" alt="secunet Webseite" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
      <hr id="unister" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Firma</div>
            <div>Unister GmbH</div>
          </div>
          <div>
            <div>Projekt</div>
            <div>
              <a href="https://preisvergleich.de/">Preisvergleich.de <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>2012 - 2014</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>PHP, HTML, JavaScript, Zend-Framework</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-unister.png">
            <img src="/img/author-unister.jpg" alt="preisvergleich Webseite" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
      <hr id="goyya" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Firma</div>
            <div>
              <a href="https://goyya.com/">goyya.com <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Projekt</div>
            <div>Mobile Content Server</div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>2007 - 2011</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>PHP, HTML, CSS, JavaScript, WURFL,
				Asterisk</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-goyya.png">
            <img src="/img/author-goyya.jpg" alt="goyya Webseite" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
      <h3>Projekte</h3>
      <hr id="wpplugin" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>
              <a href="https://usv-tu-schach.de/">
                    Wordpress Plugin - Mailinglisten
                 <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>August, September 2021</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>PHP, SQL, Wordpress, CSS, Postfix, Bash</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-mailing.png">
            <img src="/img/author-mailing.jpg" alt="Wordpress Plugin" />
          </a>
        </div>
        <div class="project">
                Für die von mir erstellte Vereinsseite der Abteilung Schach des
                USV TU Dresden programmierte ich ein Wordpress Plugin. Man kann
                nun Benutzer mit ihrem Namen und ihrer E-Mail-Adresse anlegen.
                Außerdem kann man Mailinglisten (z.B. fake@usv-tu-schach.de)
                erstellen. In einem letzten Schritt werden die gewünschten
                Benutzer zu den Maillinglisten hinzugefügt. Wenn man nun an eine
                der Mailinglisten eine E-Mail schickt, wird diese an die
                Teilnehmer der Mailingliste weitergeleitet. Dafür habe ich ein
                Bashskript geschrieben, welches auf meinem Mail-Server läuft,
                bei Eingang einer E-Mail die Datenbank abfragt und
                gegebenenfalls die Weiterleitung vornimmt.
            </div>
      </div>
      <hr id="oss" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>Beteiligung an Open Source Software</div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>Februar, März 2021</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>C, thunar, xfce4, xterm, gdb</div>
          </div>
          <div>
            <div>Quellcode</div>
            <div><a href="https://gitlab.xfce.org/xfce/thunar/-/issues/47">Xfce Gitlab <img src="/img/link.svg" alt="*" /></a>, <a href="https://github.com/ThomasDickey/xterm-snapshots/pull/4/commits/a5311d9fbc0be468e660c5acbe03da858ff87b35">Xterm Github <img src="/img/link.svg" alt="*" /></a></div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/xterm-gap.png">
            <img src="/img/xterm-gap.jpg" alt="Lücke wenn xterm platziert wird (vorher / nachher)" />
          </a>
        </div>
        <div class="project">
                2021 beteiligte ich mich erstmals an der Entwicklung
                von Open Source Software. Im Dateibrowser Thunar behob ich das
                Löschen von Lesezeichen, wenn das dazugehörige Verzeichnis
                gelöscht wurde. In xterm fügte ich einen config Parameter hinzu,
                der beim Setzen auf "true" die Fenstergrößenänderung pro Pixel
                und nicht pro Zeichen erlaubt. So funktioniert das Platzieren
                von xterm Fenstern in vielen Fenstermanagern ohne eine kleine
                Lücke zu hinterlassen (siehe Bild). Beide Codebasen waren für
                mich komplett neu und auch C habe ich noch nie in einem Projekt
                benutzt. Für die Änderungen in xterm brauchte ich circa 12
                Stunden. Die meiste Zeit verbrauchte ich beim Verstehen des
                Codes und bei der Suche nach den richtigen Stellen für die
                Änderungen.
            </div>
      </div>
      <hr id="ith" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>
              <a href="https://www.it-trainingshaus.de/">IT-Training <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>September, Oktober 2020</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>IT-Beratung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>XML, DTD, XML Schema, Css, Html, XSL, Regex, Latex,
				Beamer, pgf, tcolorbox, bibtex</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/beamer.png">
            <img src="/img/beamer.jpg" alt="Eine Präsentationsseite" />
          </a>
        </div>
        <div class="project">Seit Oktober 2020 bin ich nun auch Trainer für IT-Themen.
				Meinen ersten Kurs, gab ich beim it Trainingshaus in Dresden.
				Das Thema war XML-Grundlagen. Es tut gut mein über 20 Jahre
				aufgebautes Programmierwissen an Lernwillige weiterzugeben.
				Meine bevorzugten Themen sind Linux, XML, Webentwicklung mit
				Java oder PHP, SQL, Java SE und Programmierung. Für Trainings
				habe ich mir ein eigenes Präsentations-Layout geschaffen.</div>
      </div>
      <hr id="usv" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>
              <a href="https://usv-tu-schach.de/">USV TU Schach
					Webseite <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>Juli 2013, Herbst 2019</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Systemadministration</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>WordPress, PHP, HTML, JavaScript, CSS, Let's Encrypt,
				SQL, Bash, Sed, Deployment</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-usv.png">
            <img src="/img/author-usv.jpg" alt="usv-tu-schach Webseite" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
      <hr id="tix" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>Tix</div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>12.2018 - 02.2019</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Systemadministration</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>Bash, Sed, Awk, Find, Grep, Linux From Scratch,
				Paketverwaltung, Paketverteilung</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-tix.png">
            <img src="/img/author-tix.jpg" alt="tix Quellcode" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
      <hr id="foto" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>
              <a href="http://foto.timabea.de/">foto.timabea.de <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>Juli, August 2018</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>Java, HTML, JavaScript, Tomcat, JSP,
				Servlet</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-foto.png">
            <img src="/img/author-foto.jpg" alt="Foto Webseite" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
      <hr id="babyfon" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>Selbstbau Babyfon</div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>Mai 2017, Mai 2018</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Systemadministration</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>Groovy, V4l, Subsonic, FFserver, FFmpeg, Systemd,
				Bind9, Wpa-supplicant, Hostapd, ISC DHCP Server</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-babyfon.png">
            <img src="/img/author-babyfon.jpg" alt="babyfon" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
      <hr id="linux" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>Linux-Server</div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>2012 - 2020</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Systemadministration</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>Bash-Scripts, Linux From Scratch, NFS, Mysql, Tomcat,
				Postfix, IPtables, Dovecot, Nginx, Bind9, ISC DHCP Server,
				Brctl, Hostapd, Rsnapshot, Mdadm, Ipv6, OpenVPN</div>
          </div>
          <div>
            <div>Quellcode</div>
            <div>
              <a href="/download/firewall-rules.zip">Meine Firewall Regeln
					(IPs und Ports verfälscht) <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-linux.png">
            <img src="/img/author-linux.jpg" alt="Bild vom Servereigenbau" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
      <hr id="lib" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div><a href="http://phplib.key-idea.de/">Php-Library <img src="/img/link.svg" alt="*" /></a>, <a href="http://javalib.key-idea.de/">Java-Library <img src="/img/link.svg" alt="*" /></a></div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>Oktober 2012, März 2015, Juli 2018</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>PHP, HTML, JavaScript, CSS, Zend-Framework, Spring
				Framework, Hibernate, JDBC</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-lib.png">
            <img src="/img/author-lib.jpg" alt="javalib Webseite" />
          </a>
        </div>
        <div class="project">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.
			</div>
      </div>
      <hr id="bwold" />
      <div class="flex">
        <div class="project-data">
          <div>
            <div>Projekt</div>
            <div>
              <a href="http://bwold.key-idea.de/">Alte
					Bewerbungsseite <img src="/img/link.svg" alt="*" /></a>
            </div>
          </div>
          <div>
            <div>Zeitraum</div>
            <div>März 2007</div>
          </div>
          <div>
            <div>Kategorie</div>
            <div>Softwareentwicklung</div>
          </div>
          <div>
            <div>Technologie</div>
            <div>PHP, HTML, XML, XSLT, CSS</div>
          </div>
        </div>
        <div class="project-img">
          <a href="/img/author-bwold.png">
            <img src="/img/author-bwold.jpg" alt="alte Bewerbungsseite" />
          </a>
        </div>
        <div class="project">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.</div>
      </div>
    </div>
    <div id="footer">
      <div class="right-left-wrap flex">
        <table>
          <tr>
            <td>Quicklinks</td>
            <td>
              <a href="/">Über den Autor</a>
            </td>
          </tr>
          <tr>
            <td></td>
            <td>
              <a href="/impressum">Impressum &amp; Kontakt</a>
            </td>
          </tr>
        </table>
        <table>
          <tr>
            <td>Adresse</td>
            <td>Tim Oehl</td>
          </tr>
          <tr>
            <td></td>
            <td>Liebigstraße 38</td>
          </tr>
          <tr>
            <td></td>
            <td>01187 Dresden</td>
          </tr>
          <tr>
            <td>USt-IdNr.</td>
            <td>DE317461527</td>
          </tr>
        </table>
        <table>
          <tr>
            <td>K.-Inh.</td>
            <td>Tim Oehl</td>
          </tr>
          <tr>
            <td>Institut</td>
            <td>DKB</td>
          </tr>
          <tr>
            <td>IBAN</td>
            <td>DE42 12030000 1053403760</td>
          </tr>
          <tr>
            <td>BIC</td>
            <td>BYLADEM1001</td>
          </tr>
        </table>
        <table>
          <tr>
            <td>Mobil</td>
            <td>+49 152 271 314 99</td>
          </tr>
          <tr>
            <td>E-Mail</td>
            <td>
              <a href="mailto:admin@key-idea.de">admin@key-idea.de</a>
            </td>
          </tr>
          <tr>
            <td>PGP</td>
            <td>
              <a href="/download/pubkey.asc">pubkey.asc</a>
            </td>
          </tr>
        </table>
      </div>
    </div>
  </body>
</html>
