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