Curriculum VitaeDipl. Inf. Wolfgang Häfelinger
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
2/12
ANGESTREBTE POSITION
Interessante und herausfordernde Tätigkeiten in der Architektur und/oder Entwicklung von
Software an europäischen Standorten; insbesondere Deutschland, Schweiz, Österreich und
Niederlande.
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
3/12
PERSÖNLICHE DATEN
Name, Vorname Häfelinger, Wolfgang
Anschrift Slangenburg 42, 1082JW Amsterdam, NL
Nationalität Deutscher
Geburtsjahr 1964
Geburtsort Freiburg im Breisgau, Deutschland
Telefon +31 648 27 61 59
Email [email protected]
Internet http://www.haefelinger.it
Weblog http://workbench.haefelinger.it
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
4/12
KOMPETENZEN
Themen
Infrastrukturlösungen zur Softwareentwicklung
(Konfigurations-, Deploy- und Buildmanagement),
Webapplikationen, IT Security, Compilerbau,
Telekommunikation.
Arbeitsweise
Selbständiges Arbeiten mit dem Anliegen, dem Kunden eine
bestmögliche Lösung im Rahmen einer zu beherrschenden
Komplexität anzubieten und zu verwirklichen.
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
5/12
PORTFOLIO
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
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
6/12
FALLSTUDIE 1/3
Europäisches Patent Amt, Den Haag, Niederlande; Freiberufliche 1 Position als System
Architekt; 2005-2009
Das Europäische Patent Amt (EPA) mit Sitz in München ist führend in der Entwicklung
von Infrastrukturlösungen rund um “das Patent”. Diese Lösungen werden überwiegend
innerbetrieblich hergestellt, wobei ein modularer, auf Komponenten basierter Ansatz, verfolgt
wird. Die vorwiegend benutzte Programmiersprache ist “Java”, sowohl auf dem Client wie
auch auf dem Server.
Ein erhebliches Problem in diesem auf Komponenten basierten Ansatz ist die fehlerhafte
Verwendung einer Komponenten in einer “veralteten” Version. Eine solche wird typischerwei-
se erst spät im Entwicklungsprozess entdeckt und verursacht dadurch nicht unerhebliche
Kosten. Das Ziel meines Auftrags war die Analyse der Situation, die Erarbeitung eines
Lösungsvorschlages für dieses Problem und ggfs. dessen Umsetzung.
Aus meiner Analyse der Situation ergab sich, dass einerseits eine “manuelle” Vorgehens-
weise und andererseits ein situationsbedingter Mangel in der Kommunikation für das Problem
verantwortlich war. Auf dieser Analyse aufbauend entwarf ich ein “Buildsystem” welches
in letzter Konsequenz sowohl die Kontrolle der Versionen der Komponenten als auch die
Erzeugung der Endprodukte vollständig automatisiert.
Die zugrunde liegende Idee dieses Systems war die Pflege der Beziehung zwischen einer
Komponente und deren aktueller Version. Die Version einer Komponente darf nur dann
erhöht werden, wenn die neue Version vollständig kompatibel zu allen anderen Komponenten
ist, die von ersterer Gebrauch machen. Dieser Ansatz wurde mittels eines so genannten
“Continuous Integration” Servers realisiert, wobei dieser jedoch erheblich erweitert werden
musste um allen Aspekten Rechnung tragen zu können.
Das unter meiner Leitung umgesetzte System wurde EPA intern unter dem Namen “Darwin”
bekannt und hat sich bestens bewährt. Darwin ist bis dato der anerkannte Standard zum
Erzeugen von lauffähigen Programmen im Europäischen Patent Amt Den Haag.
T E C H N O L O G I E N
Java, CruiseControl, Ant, CVS, Maven, Tomcat, XML, Linux, Windows, Eclipse, Rest, Python,
JSP, XSLT/XPATH.
1 Diese und weitere Fallstudien zu meinen Berufserfahrungen finden Sie auf meiner Firmenseite unter
http://de.haefelinger.it/portfolio
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
7/12
FALLSTUDIE 2/3
pyANTLR, Amsterdam, Niederlande; Freischaffender, unentgeltlicher OpenSource Bei-
trag 2 zum Thema Software Entwicklung; 2004 - 2005
ANTLR3 ist eine Plattform zum Schreiben von Spracherkennungswerkzeugen mit einer
ausgezeichneten Unterstützung für die Konstruktion von Syntax-Bäumen, deren Manipulation
und deren Traversierung. Zwar ist ANTLR ursprünglich in und für die Programmiersprache
Java geschrieben worden, doch erlaubt ein Mechanismus die Erweiterung auf beliebige
Zielsprachen.
Bevor ich dem Opensource-Projekt beitrat, waren C, C++ und C# die möglichen Zielsprachen
neben Java. Ich erweiterte diese Liste durch das Schreiben von pyANTLR, eines Code-
Generators für die Zielsprache Python. Dadurch ist es nun also möglich, 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.
T E C H N O L O G I E N
Java, Python, Make, autoconf
2 Diesen Beitrag zu einem OpenSource-Projekt sowie weitere von mir geschaffene Projekte und Beiträge
finden Sie auf meiner Werkbank http://workbench.haefelinger.it3 http://www.antlr.org
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
8/12
FALLSTUDIE 3/3
Computec GmbH Software, Karlsruhe, Deutschland; Festanstellung als Softwareentwick-
ler und Produktmanager; 1994 - 2000
Die Produktfamilie ASN2xxx bestand aus einem ASN.1 Compiler und einem Framework
für die Programmiersprachen C++ und Java. Compiler und Framework wurden von mir
entworfen und in einem kleinen Team unter meiner Leitung realisiert. ASN2CXX (ASN.1 für
C++) wurde weltweit an Kunden wie Ericsson, Bell Atlantic, Marconi, Telefonica Spain, Storck
(Niederlande) und Bosch Telecom Deutschland vertrieben.
Die ursprüngliche Version des Produkts war der Beitrag der Firma Computec GmbH Soft-
ware zum europäischen Forschungsprojekt ACCENT (EP 91694) im Rahmen des ESPRIT
Programms der Europäischen Gemeinschaft. ACCENT war die gemeinschaftliche Arbeit
verschiedener europäischen Firmen.
Computec GmbH Software wurde dabei während der gesamten Laufzeit des Projektes von
mir repräsentiert. Weitere beteiligte Firmen waren B3i (Frankreich), Pijnenburg (Niederlande),
Digital Equipment (Deutschland), Joanneum Research (Österreich), Universität von Patras
(Griechenland) sowie XandMail (Frankreich). Geschäftssprache war Englisch.
Ziel des Projektes war die Erstellung eines Kodiersystems als Hardware-Zelle. Diese Zelle
sollte über die Fähigkeit verfügen, Daten gemäß X.209 (BER), der kanonischen binären Re-
präsentation von Daten in ASN.1, zu kodieren und zu dekodieren. Durch die Implementierung
des Kodiersystems in Hardware erhoffte man sich, als eigentliches Ziel des Projekts, eine be-
deutende Steigerung der Geschwindigkeit (Faktor 1oo – 1ooo) gegenüber der herkömmlichen
Methode, der Kodierung mittels Software.
Neben der Mitarbeit an dem Entwurf des Gesamtsystems war meine Aufgabe die Bereit-
stellung eines ASN.1 Compilers und einer Programmierschnittstelle für C++. Deren Einsatz
verbarg dem Benutzer, ob die Kodierung mittels Hardware oder Software erfolgte. Dieser
Ansatz erlaubte auch eine Einschätzung der zu erzeugenden Leistungsfähigkeit der Hard-
ware. Es stellte sich heraus, dass die von mir entworfene Maschine extrem schnell war. Die
Hardware-Zelle wurde nie realisiert.
T E C H N O L O G I E N
ASN.1, C++, Java
4 http://research.cs.ncl.ac.uk/cabernet/www.laas.research.ec.org/esp-syn/text/9169.html
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
9/12
TECHNOLOGIEN
Sprachen
AWK, Shellscripting (Bash, Bourne), C#, C/C++, Lisp, Guile,
Java, JavaScript, M4, PHP, Pascal, Perl, Prolog, Python,
Ruby, Scheme, Tcl/TK
Markup XML, HTML, ASN.1, TeX/LaTeX, AsciiDoc, DocBook
Minisprachen SQL, Reguläre Ausdrücke, XPath, CSS
Betriebsysteme
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
DatenbankenIBM DB2, Informix, JDBC, MS Access, MySQL, ODBC,
ObjectStore, Oracle
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
J2EE Servlets, JSP, EJB, RMI, JINI, JNDI, JMS, Webservices
Methoden Extreme Programming, OOP
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
10/12
WERKZEUGE
IDEsEclipse, 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
Appl. Server Borland Application Server
Buildwerkzeuge Make,Ant, Maven, autoconf
Buildserver 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
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
11/12
AUSBILDUNG
1987—1994Universität Karlsruhe; Abgeschlossenes Studium der
Informatik
1984—1987 Technisches Gymnasium Müllheim; Allgemeine Hochschulreife
1981—1984Bahnbetriebswerk Haltingen; Abgeschlossene Ausbildung zum
Maschinenschlosser
1976—1981 Realschule Kandern; Mittlere Reife
CurriculumVitae
Dipl. Inf.WolfgangHäfelinger
12/12
SPRACHEN
Deutsch Muttersprache
Englisch Verhandlungssicher
Holländisch Konversationstauglich