„Talk is cheap, show me the code“ - Linus Torvalds
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
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 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.
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 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.
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
- 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