Curriculum Vitae
2011-08-05T10:14:18
Wolfgang
Häfelinger
wh@haefelinger.it
WH
ANGESTREBTE POSITION
Interessante, herausfordernde Tätigkeit in der Architektur und/oder Entwicklung von Softwaresystemen an europäischen Standorten (Deutschland, Schweiz, Österreich, Benelux, Skandinavien, Großbritannien)
PERSÖNLICHE DATEN
Name, Vorname
Häfelinger, Wolfgang
Anschrift
Slangenburg 42, 1082JW Amsterdam, NL
Nationalität
Deutscher
Geburtsjahr
1964
Ausbildung
Dipl. Informatiker
Telefon
+31 648 27 61 59
Email
wh@haefelinger.it
Internet
http://www.haefelinger.it
Weblog
http://workbench.haefelinger.it
images/L1010027.jpg
images/L1010037.jpg
images/L1010042.jpg
images/L1010044.jpg
KOMPETENZEN
Themen
Software-Architektur, Java EE/J2EE, Buildmanagement, IT Security, Compilerbau, Telekommunikation.
Arbeitsweise
Selbständig, Teamorientiert, Belastbar, Flexibel, Lösungsorientiert.
PORTFOLIO
2011
Europäisches Patentamt
2010
T-Systems MMS GmbH
2009
häfelinger IT
2005-2009
Europäisches Patentamt
2001-2005
Borland
2000-2001
Dresdner Bank
2000
Karis AG
1999
IBM
1998
Robert Bosch GmbH
1994-2000
Computec GmbH Software
FALLSTUDIE »RESTful OCR-Cluster«
Den Haag (NL), 2011-? - Freiberufliche TätigkeitWeitere Fallstudien unter http://de.haefelinger.it/portfolio
als Software Architekt am Europäischen Patentamt.
Design, Implementierung und Inbetriebnahme eines OCROptical Character Recognition, vgl. http://de.wikipedia.org/wiki/Texterkennung
Clusters. In den einzelnen Knoten des Clusters wird kommerzielle Software zur Texterkennung eingesetzt, die jedoch nur eine synchrone Webservice-Schnittstelle anbietet. Das Cluster soll stattdessen über eine asynchrone Schnittstelle betrieben werden, die zudem die Architektur des Webs voll nutzt (REST).
Technologien
MOM(noch offen), Java EE (Jboss), Buildwerkzeuge (Ant, Maven), SCM (Subversion), Projektmanagement (Jira), Wiki (Confluence), OS (Windows XP, Windows 7, GNU/Linux SLES, MacOS X), Virtualisierung (VMWare), IDE(Eclipse), Sonstiges (Java, Groovy, XSLT/XPATH, REST, JSON).
FALLSTUDIE »Infrastructure Engineering«
Den Haag (NL), 2010-2011 - Freiberufliche Tätigkeit als Software Architekt im Application Engineering Umfeld am Europäisches Patentamt.
Umstellung der bisherigen, teilweise veralteten, teilweise proprietären Infrastruktur zur agilen Softwareentwicklung auf gängige Komponenten (Subversion, Maven, Jenkins/Hudson, Nexus Pro, SonarJ, Fisheye und Crucible). Design, Dokumentation, Präsentation und Implementierung des neuen Release-Prozesses. Planung der stufenweisen Stilllegung des bis dato aktuellen Infrastruktur.
Technologien
Buildwerkzeuge (Maven), Buildserver (Jenkins/Hudson), Artefact Repositories (Nexus Pro), SCM (Subversion), Projektmanagement (Jira), Wiki (Confluence), OS (Windows XP, GNU/Linux SLES, MacOS X), Virtualisierung (VMWare), IDE(Eclipse), Sonstiges (Java, Groovy, Ruby, GNU/Emacs, XSLT/XPATH, REST).
FALLSTUDIE »Buildmanager«
Jena (DE), 2010 - Freiberufliche Tätigkeit als Build- und Deploymanager im J2EE Umfeld bei der T-Systems Multimedia Solutions GmbH (MMS).
Die MMS erstellt am Standort Jena vorwiegend webbasierte Shopsysteme für Großkunden, Mittelstand und internen Gebrauch her. Die auf den Kunden zugeschnittenen Lösungen basieren auf IBM Websphere Commerce, einer J2EE Plattform für B2B und B2C-Geschäftsmodelle.
Das Build- und Deployment Team ist verantwortlich für die Bereitstellung und Konfiguration der Test/Staging-Instanzen, der Buildumgebung, dem täglichen Bau und Deployment der Shopapplikationen sowie dem Einspielen und der Wartung von Datensätzen.
Schwerpunkt meiner Arbeit war, neben den Aufgaben des Tagesgeschäfts, die Überarbeitung bestehender Prozesse mit dem Ziel, diese zu automatisieren.
Technologien
Buildwerkzeuge (Ant, Maven), Buildserver (Hudson, Anthill), Artefact Repositories (Artefactory, Nexus), SCM (Subversion, git), Projektmanagement (trac), Windows (XP, 7), Linux (SLES, Opensuse), Virtualisierung (VMWare), IBM Websphere (v6, v7), IBM Websphere Commerce (v6, v7), IBM DB2 (v8, v9), IDE(RAD), IBM Scripting Console (wsadmin), Sonstiges (J2EE, ssh, emacs, vi, cygwin, Jython, jacl,Tanuki Wrapper, XSLT/XPATH).
FALLSTUDIE »FLAKA«
Amsterdam (NL), 2009-2012 - Unentgeltlicher OpenSource BeitragWeiter OpenSource Beiträge unter http://workbench.haefelinger.it
zum Thema Software Entwicklung.
FlakaSiehe http://flaka.haefelinger.it sowie http://code.google.com/p/flaka
ist ein von mir initiiertes OpenSource Projekt, das das populäre Buildwerkzeug Ant erweitert. Durch Flaka werden programmiertypische Strukturen wie Verzweigungen, Schleifen und Ausnahmebehandunglung bereitgestellt. Ferner wird eine eingebettete Sprache, die Expression Language (EL), eingeführt, deren Wurzeln auf J2EE/JSP 2.0 zurückgehen. Durch die EL können beliebig komplexe Ausdrücke formuliert werden, ohne Gefahr zu laufen, die Wohlgeformtheit der XML Skripte zu verletzten. Außerdem erlaubt die EL auf Variablen und auf die Eigenschaften der interne Datenobjekte zuzugreifen. Durch diese Eigenschaften der EL wird der Grad der Ausdrucksfähigkeit wesentlich gesteigert.
Mittlerweile wird Flaka in mehreren Projekten eingesetzt, unter anderem bei der HUK-Coburg.
Technologien
Java, Ant, Java Unified Expression Language, Eclipse, Subversion, Git, Junit, TeX/LaTeX, Docbook, asciidoc, dblatex.
FALLSTUDIE »Darwin«
Den Haag (NL), 2005-2009 - Freiberufliche Position als System Architekt und Softwareentwickler in der Abteilung Architektur und Forschung am Europäischen Patentamt.
Die Verwendung der korrekten Version einer Komponente ist ein herausforderndes Problem in der Erzeugung komponentenbasierter Softwaresysteme. Eine veraltete Komponente wird typischerweise erst sehr spät, typischerweise beim funktionalen Testen des Gesamtsystems als solche bestätigt. Diesen Kosten- und Verzögerungsfaktor galt es zu eliminieren. Meine Aufgabe bestand in der Situationsanalyse sowie Konzeption und Bereitstellung einer Lösung für dieses Problem.
Ich löste diese Aufgabe durch die Konzeption und Inbetriebnahme eines vollautomatischem, agilem Buildsystems, welches unter dem Namen “Darwin” bekannt wurde. Ein fundamentaler Designaspekt von Darwin war die Forderung, daß Entwickler sich nicht um die Version einer Komponente kümmern sondern nur um die Komponente als solche. Die gesamte Verwaltung der Versionen wurde daher komplett von Darwin übernommen. Um dies zu erreichen musste die OpenSource Software CruiseControlhttp://cruisecontrol.sourceforge.net/ wesentlich erweitert werden, wobei ein großer Teil der komplexen Versionsverwaltung in der Skriptsprache Python realisiert wurde. Ferner wurde ein auf Ant basierendes Framework entwickelt, welches letztendlich alle Buildskripte auf die Beschreibung versionsloser Abhängigkeiten reduzierte.
“Darwin” ist der de facto Standard zur Erzeugung komponentenbasierter Systeme am Europäischen Patentamt in Den Haag.
Technologien
Java, CruiseControl, Ant, CVS, Maven, Tomcat, XML, Linux, Windows, Eclipse, REST, Python, JSP, XSLT/XPATH, graphviz.
FALLSTUDIE »pyANTLR«
Amsterdam (NL), 2004-2005 - Unentgeltlicher OpenSource Beitrag zum Thema Software Entwicklung.
ANTLRhttp://www.antlr.org ist eine OpenSource Plattform für den Bau eines Compilers mit einer ausgezeichneten Unterstützung für die Konstruktion von Syntax-Bäumen, Manipulation und Traversierung. Obwohl ursprünglich für die Programmiersprache Java gedacht, kann ANTLR auf beliebige Zielsprachen erweitert werden.
Diese Liste erweitertet ich um pyANTLR, mit der nun möglich ist, einen auf ANTLR basierenden Compiler in Python zu realisieren. Neben dem eigentlichen Code-Generator schrieb ich auch eine große Anzahl von Beispielen sowie die Core-Bibliothek, auf die der erzeugte Python Code aufbaut.
pyANTLR ist seit der Version 2.7.5 integraler Bestandteil von ANTLR.
Technologien
Java, Python, Make, autoconf
FALLSTUDIE »Software Analyst«
Amsterdam (NL), 2001-2004 - Festanstellung als Software Analyst beim Softwareunternehmen Borland.
Als Software Analyst verantwortlich die Betreuung von bekannten Unternehmen (u.A. Nokia, Ericsson, France Telecom, Deutsche Bank London, Euronext Amsterdam, Bundesagentur für Arbeit)im Bereich der Borland'schen Middleware Produkte (J2EE Application Server und Visibroker/CORBA für C++ und Java).
Analyse und Testen von Problemen mit den Produkten vor Ort oder im EMEA Hauptquartier in Amsterdam. Pflege des Kontakts zu den Kunden sowie zu den Ingenieuren der Forschungs- und Entwicklungsabteilungen in Singapur und Kalifornien; Bereitstellung von Trainingsmaterial sowie Aufbereitung der Produktinformation für Kunden und Mitglieder des Teams.
Eine beispielhafte Aufgabenstellung war ein Leistungsabfalls des, mit annähernd 90000 Benutzern, größten Visibroker-Clusters bei der Bundesagentur für Arbeit. Zur Nachstellung und Testen des Problems wurde vor Ort Silkperformerhttp://www.borland.com/us/products/silk/silkperformer/index.html
Silkperformer wurde mittlerweile von Borland aufgekauft und in die Borland'sche Produktfamilie integriert. eingesetzt, welches die flexible Fernsteuerung beliebiger Maschinen nach vorgegebenen Schematas oder über eigene Skripte zulässt. Der Leistungsabfall konnte letztendlich von mir auf eine plattformspezifische Threadbibliothek zurückgeführt werden.
Technologien
AIX, Ant, Apache, Borland Enterprise Server, C++ Builder, CORBA, CORBA NamingService, CORBA Notification Service, CORBA POA, DB2, Dbx, EJB, Ethereal, GIOP, GNU/Linux, Gatekeeper, Gdb, HP-UX, HTTP, IIOP,JNDI,JNI,IIS,HTML, IPC, Informix, J2EE, JAAS, JCE, JDBC, JDK 1.3, JDK 1.4, JMS, JSP, Jakarta Struts, Jbuilder, LDAP, Make, Montavista Linux, OpenLDAP, OpenSSL, Oracle, Osagent, RMI, Mod_iiop, NAT, SPY6, SSL, Servlet, Shell Scripting, Silkperformer, Solaris, Squid, TCP/IP, Tcpdump, Telnet, Tomcat, UDP, UNIX, Visibroker for C++, Visibroker for Java, Windows, X.509, XML, Xdoclet
FALLSTUDIE »ASN2XXX«
Karlsruhe (DE), 1994-2000 - Festanstellung als C/C++ Softwareentwickler und Produktmanager bei der Firma Computec GmbH Software.
ACCENT (EP 9169http://research.cs.ncl.ac.uk/cabernet/www.laas.research.ec.org/esp-syn/text/9169.html) war die Forschungsarbeit verschiedener europäischer Firmen und Organisationen und wurde von der Europäischen Gemeinschaft im Rahmen des ESPRIT Programms gefördert. Ziel war die Entwicklung einer hardwaregestützten Kodiereinheit als Implementierung des ISO-Standards X.209.
Die Aufgabe der Firma Computec war die Bereitstellung einer Softwareschnittstelle und einer softwaregestützten Kodiereinheit. Erstere erlaubte den transparenten Austausch der Kodiereinheiten und Zweck der letzteren war die Abschätzung und Bewertung der Leistungsfähigkeit der hardwaregestüzten Kodiereinheit.
Als Computecs Leiter des Projekts ACCENT übernahm ich das Design und die Entwicklung der Software Schnittstelle (ASN.1 Compiler) und der Kodiereinheit. Ferner repräsentierte ich Computec im ACCENT-Gremium und gegenüber der Europäischen Gemeinschaft.
Es stellte sich heraus, dass die von mir realisierte Einheit extrem schnell war, auch und gerade im Vergleich zu anderen bekannten Lösungen wie etwa ISODE und somit letztendlich den Entwurf einer Hardwarezelle in Frage stellte. Konsequenterweise wurde die Hardwarezelle nie gebaut. Aufgrund des außerordentlichen technischen Erfolgs des ASN.1 Compilers und der Kodiereinheit beschloss Computec, diese Komponenten unter dem Namen ASN2CXX zu vermarkten.
ASN2CXX wurde unter meiner Leitung zur Marktreife entwickelt und weltweit an bekannte Unternehmen wie Ericsson, Bell Atlantic, Marconi, Telefonica Spain, Storck (Niederlande) und Bosch Telecom Deutschland vertrieben.
Technologien
ASN.1, C++, Java, Windows, Solaris, Sniff, make, purify, gdb
TECHNOLOGIEN
Sprachen
AWK, Shell (Bash, Bourne), C#, C/C++, Lisp (SBCL), Java, Groovy, JavaScript, M4, PHP, Pascal, Perl, Prolog, Python, Ruby, Scheme (Guile, Racket), Tcl/TK, Haskell, ObjectiveC
Markup
XML, (X)HTML, ASN.1, TeX/LaTeX, AsciiDoc, DocBook
Minisprachen
SQL, Reguläre Ausdrücke, XPath, CSS
Betriebssysteme
Cygwin, Unix (Digital, HP-UX, AIX, SGI, SunOS, Solaris), MKS, Windows (98, 2ooo, NT, XP), MS-DOS, MSYS, MacOS/X, Novell Netware, GNU/Linux (RedHat, Suse, Ubuntu, Mandrake, Montavista)
Security
Kerberos, PKI, SSL/TLS
Datenbanken
DB2, Informix, JDBC, MS Access, MySQL, ODBC, ObjectStore, Oracle, NoSQL (CouchDB, MongoDB)
Kommunikation
ASN.1 (BER, CER, DER, PER, X.68x, X.69x.) CIFS, CORBA, CUPS, DNS, GIOP, HTTP, HTTPS, ICMP, IIOP, IMAP, JAAC, JCA, JNDI, LDAP, NAT, NFS, NIS, NTP, OSI, PEM, POP3, RMI, RPC, S/MIME, SMTP, TCP/IP, UDP, X.509, GDMO, XDR
Webentwickung
CGI, J2EE, REST, Ajax, jQuery
Java EE/ J2EE
Servlets, JSP, EJB, RMI, JINI, JNDI, JMS, Webservices
Methoden
Extreme Programming, OOP, CI
WERKZEUGE
IDEs
Eclipse, Visual Studio, JBuilder, Sniff, Sun Workshop, Symantec, Visual Age
Editoren
Emacs, vi
Versionsverwaltung
CVS, Subversion, git, mercurial, RCS, Perforce, GNU arch
Compilerbau
Antlr, lex/yacc, flex/bison, JavaCC
Webserver
Apache, Tomcat, lighttpd, winstone, IHS
Appl. Server
Borland Application Server, Websphere, Websphere Commerce
Buildwerkzeuge
Make,Ant, Maven, autoconf
Buildserver
Hudson/Jenkins, CruiseControl, Hudson, Anthill
Lizenzierung
FlexLM
CORBA
Visibroker, mod_iiop, Mico, OmniORB, Orbix, TAO
ASN.1
ASN2CXX, ISODE, snacc, OSS
Debugging
purify, gdb, dbx, nm, wireshark
Performance
silkperformer
Test
expect, junit
Sicherheit
OpenSSL, mod_ssl
Konnektivity
Samba, NFS, automounter, Humingbird Exceed, ssh
UML
Paradigm Plus
Graphik
Photoshop, GIMP, Inkscape, SVG, graphviz
Email
Qmail, Sendmail
Installbuilder
InstallAnywhere, InstallShield, MSI-Installer
Integration
Swig
CMS
Wordpress, Mediawiki
Projekt Managment Applications
Redmine, Trac, JIRA
AUSBILDUNG
1987-1994
Universität Karlsruhe; Abgeschlossenes Studium der Informatik
1984-1987
Technisches Gymnasium Müllheim; Allgemeine Hochschulreife
1981-1984
Bahnbetriebswerk Haltingen; Abgeschlossene Ausbildung zum Maschinenschlosser
1976-1981
Realschule Kandern; Mittlere Reife
SPRACHEN
Deutsch
Muttersprache
Englisch
Verhandlungssicher
Niederländisch
Flüssig