Zur anspruchsvollen Software, die ich entworfen und implementiert habe, zahlen unter anderen ein Kommunikations-Protokoll-Stack, eine Middleware zur Online-Transactions-Processing, ein multithreaded Execution-Engine, komplexe Scheduling-Ablauflogik sowie GUIs. Anforderungen wie Threadsicherheit, Erweiterbarkeit, Echtzeit-Performance, Datensicherheit, Benutzerfreundlichkeit, Testbarkeit, Rückwärtskompatibilität, Verfügbarkeit auf 24/7-Basis standen dabei stets im Fokus.
Bei Neuerstellung von Softwarekomponenten verbracht ich einen Großteil der Projektzeit mit ständigem Refactoring, indem ich die Softwarestruktur häufig verfeinerte und womöglich Design-Patterns verwendete. Dadurch zeichnete sich die Software durch ein robustes und flexibles Design aus. Häufig sah ich die Möglichkeit konkrete Lösungen zu verallgemeinern um generische Frameworks zu etablieren. So hatte ich das eigenständige Java-Framework TDM gestaltet. Einsatz von Software-Frameworks ist für mich immer von großem Interesse gewesen.
Bei der Weiterentwicklung der bestehenden Systeme setzte ich Methoden der agilen Softwareentwicklung ebenso aktiv ein. Ich versuche den Code, unterliegende Datenstrukturen und Schnittstellen soweit zu verbessern bis sie auf bewährtem Know-How basieren und verständlicher sind.