„Talk is cheap, show me the code“ - Linus Torvalds

Java

Java Skills

  • Java SE 8
  • Eclipse
  • Ant, Maven, Gradle
  • Swing
  • JUnit, Spock, Arquillian
  • JEE 7
  • JSF, EJB, JMS, JPA
  • Webservices SOAP, REST
  • Groovy, Spring
  • JBoss und WildFly

Mit Java arbeite ich seit über 15 Jahren, dabei liegt mein Hauptschwerpunkt auf Java Technologien für Enterprise Anwendungen. Das umfasst das gesamte Spektrum der Java EE von JPA, JMS über EJB bis hin zu JSF und Webservices mit SOAP als auch RESTful.

Auch Scripting mit Groovy, Spring und Build Management mit Gradle oder Maven wende ich immer wieder gerne in Projekten an. Außerdem bin ich mit Java SE 8 und Java EE 7 auf dem aktuellen Stand der Technik.

Auch zu den wichtigen Themen Testautomatisierung und Continuous Integration beherrsche ich die entsprechenden Tools wie JUnit, Spock, Arquillian und Jenkins.

Meine Referenzprojekte auf github:

  • jtrack-ee7 - RESTful Webservices, Gradle, Testautomatisierung mit Spock, JUnit und Arquillian
  • wildfly-git-install - WildFly Installationen mit Git verwalten

Web / HTML

Das Webfrontend ist das Aushängeschild jeder Anwendung und prägt durch ein professionelles Look & Feel die Akzeptanz bei den Benutzern. Aus diesem Grund lohnt es sich immer, für diesen Bereich genügend Ressourcen einzuplanen. Jetzt, mit der zunehmenden Verbreitung von HTML5, CSS3 und dem stetig sinkenden Anteil des Internet Explorer 6, macht die Webentwicklung auch wieder deutlich mehr Spaß. Die Standards werden eingehalten und man muss nicht mehr für jeden Browser oder jedes Endgerät eine Speziallösung bauen und testen.

Web Skills

  • HTML 5
  • CSS 3
  • JavaScript
  • RESTful Webservices
  • JSON
  • Apache
  • Content Management Systeme
  • Homepages

SQL

SQL Skills

  • Schema Design
  • Advanced Queries
  • Window Functions
  • Optimierung
  • PostgreSQL
  • MySQL
  • Oracle

Mit SQL arbeite ich seit Ende der 90er Jahre, hauptsächlich im Rahmen der Persistenzschicht von Java Enterprise (JEE) Anwendungen. Hier kamen schon früh Themen hinzu wie Schema-Normalisierung, phonetische Suche und Konzepte zur Vermeidung von doppelter Datenhaltung. Seit 2008 habe ich auch mitgearbeitet an Strategien zur Anaylse und dem Debugging von massiv parallelen Datenbankzugriffen via JDBC sowie OLAP-ähnlichen Abfragen in Echtzeit über Tabellen mit über 90 Millionen Zeilen.

Mein Referenzprojekt autotable auf github erzeugt automatisch eine SQL-Tabelle aus einer CSV-Datei.

Git

Nach langen Jahren des Einsatzes von CVS, für das ich seit 2001 auch immer federführend verantwortlich im jeweiligen Unternehmen war, bin ich Ende 2013 umgestiegen auf Git. Git hat die Sourcecode-Verwaltung auf das nächste Level gehoben und ich bin begeistert von den neuen Möglichkeiten der verteilten Arbeitsweise und der Idee des »Content-Addressable-File-System«. War Branching, und vor allem Merging, mit CVS immer recht kompliziert und wurde darum gerne vermieden, gehört das Thema bei Git zur täglichen Arbeit. Der eingebaute Zugriff über SSH und HTTP macht die Repositories auf Wunsch schnell verfügbar, auch für nur gelegentliche »Pulls« von Kollege zu Kollege.

Git Skills

  • Central Repository Setup
  • Commandline
  • Eclipse UI
  • Workflows

Python

Python Skills

  • Python 2.7 und 3.3
  • ipython
  • Admin Scripts
  • DB-API
  • cron-jobs

Python zeichnet sich durch eine klare, gut lesbare Syntax aus. Trotzdem bietet Python durch konsequente Objektorientierung die Möglichkeit, auch komplexe Aufgaben auf elegente Weise zu lösen. Im Gegensatz zu Perl hat Python mit der umfangreichen Standardlibrary bereits alles Wichtige für die tägliche Arbeit an Board, von Email über Networking bis hin zum Webserver.

Daher ist Python für mich die erste Wahl, wenn sich ein Problem nicht mehr mit einem Bash-Dreizeiler lösen lässt.

C++

Seit 1993 arbeite ich mit C++ und es ist die Programmierspache, mit der ich die Objektorientierung gelernt habe, und zwar anhand der zweiten Auflage des Buches von Bjarne Stroustrup „Die C++ Programmiersprache“. Dieses Buch hat mich nachhaltig geprägt in meinem Anspruch, was guten Code und gutes Design ausmacht und wie elegante Lösungen aussehen sollten. Im ersten Projekt unter meiner Leitung haben wir als eine der ersten Firmen in Deutschland unter Solaris bereits 1995 mit Exceptions und Templates C++ programmiert. Durch den Erfolg von Java ist C++ etwas in den Hintergrung gerückt, aber der neue Standard C++ 11 macht die Sprache wieder interessant.

C++ Skills

  • Fortgeschrittene Vererbung
  • Networking, Sockets
  • Datenbankzugriffe
  • Templates und Exceptions

Tools

  • Email Server Exim und Dovecot, inkl. Verschlüsselung und Migrations- und Routingkonzepten
  • TCP/IP Traffic Analysis mit Wireshark und tcpdump
  • Firewall iptables: Konfiguration, Debugging und Backups
  • Wiki
  • Bugzilla / Jira
  • LibreOffice
  • SELinux
  • Linux KVM: Konfiguration hochverfügbarer Virtualisierung mit KVM, DRBD und LVS
  • Verwaltung von SSL-Zertifikaten mit OpenSSL für Apache und Java-Keytool für JBoss, Tomcat