Curriculum Vitae INHALTSVERZEICHNIS______________________________________________________________ ANGESTREBTE POSITION PERSÖNLICHE DATEN KOMPETENZEN PORTFOLIO FALLSTUDIE »Darwin« FALLSTUDIE »pyANTLR« FALLSTUDIE »Software Analyst« FALLSTUDIE »ASN2XXX« TECHNOLOGIEN WERKZEUGE AUSBILDUNG SPRACHEN ANGESTREBTE POSITION____________________________________________________________ Interessante, herausfordernde Tätigkeit in der Architektur und Entwicklung von Software basierten Systemen an europäischen Standorten. 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 KOMPETENZEN_____________________________________________________________________ Themen | Konfigurations-, Deploy- und Buildmanagement, Verteilte Systeme, Webapplikationen, IT Security, Compilerbau, Telekommunikation. Arbeitsweise | Selbständiges Arbeiten, Team fähig, Internationale Erfahrung, Belastbar, Flexibel. 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 FALLSTUDIE »Darwin«_____________________________________________________________ Freiberufliche Position als System Architekt und Softwareentwickler im Forschung- und Architekturteam. Konzeption und Entwicklung des gesamten Buildsystems Darwin als Maßnahme zur Qualitätssicherung. ([1]) Europäisches Patent Amt, Den Haag, Niederlande; 2005-2009. Die Verwendung der korrekten Version einer Komponente ist ein herausforderndes Problem in der Erzeugung eines komponentenbasiertem Softwaresystems. Eine veraltete Komponente wird typischerweise spät im Entwicklungsprozess bemerkt – etwa beim funktionalen Testen des Gesamtsystems - und daher kostenintensiv. Meine Aufgabe bestand in der Situationsanalyse sowie Konzeption und Bereitstellung einer Lösung für dieses Problem. Ich löste diese Aufgabe durch ein vollautomatisches Buildsystems welches auf einem sogenannten Continuous Integration Ansatz basiert. Das System wurde durch seinen außergewöhnlichen Erfolg unter dem Namen “Darwin” bekannt und ist bis heute der de facto Standard zur Erzeugung von Softwarekomponenten beim Europäischen Patentamt in Den Haag. 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 Versionsverwaltung wurde komplett von Darwin übernommen. Um dies zu erreichen musste die OpenSource Software CruiseControl ([2]) wesentlich erweitert werden. Ein wesentlicher Teil der komplexen Versionsverwaltung wurde hierbei in der Skriptsprache Python realisiert. Ferner wurde ein auf Ant basierendes Framework entwickelt und eingesetzt, welches letztendlich Buildskripte auf die Angabe der versionslosen Abhängigkeiten reduzierte. Technologien____________________________________________________________________ Java, CruiseControl, Ant, CVS, Maven, Tomcat, XML, Linux, Windows, Eclipse, Rest, Python, JSP, XSLT/XPATH. FALLSTUDIE »pyANTLR«____________________________________________________________ Freischaffender, unentgeltlicher OpenSource Beitrag zum Thema Software Entwicklung; Seit Version 2.7.5 offizieller Bestandteil von ANTLR. ([3]) Amsterdam, Niederlande; 2004-2005. ANTLR ([4]) ist eine Plattform zum Schreiben von Spracherkennungswerkzeugen mit einer ausgezeichneten Unterstützung für die Konstruktion von Syntax-Bäumen, Manipulation und Traversierung. Obwohl in und für Java geschrieben, erlaubt ein Mechanismus die Erweiterung auf beliebige Zielsprachen. Bevor ich dem Opensource-Projekt beitrat, waren C/C++ und C# Zielsprachen neben Java. Diese Liste erweitertet ich das Schreiben von pyANTLR, eines Code-Generators für die Zielsprache Python. Durch pyANLTR 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. Technologien____________________________________________________________________ Java, Python, Make, autoconf FALLSTUDIE »Software Analyst«___________________________________________________ Post-Sales Betreuung; Middleware (J2EE, CORBA), Internationales Team und Kunden. Festanstellung als Software Analyst; Borland; Amsterdam, Niederlande, 2001 bis 2004. Als Software Analyst verantwortlich die Betreuung von bekannten Unternehmen — 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. Besonderes zu erwähnen ist die Aufklärung eines unerklärlichen Leistungsabfalls bei der Bundesagentur für Arbeit in Nürnberg. Mit annähernd 90.000 Benutzern die größte Installationen von Visibroker bis dato. Zur Nachstellung und Testen des Problems wurde Silkperformer ([5]) ([6]) eingesetzt, welches die flexible Fernsteuerung beliebiger Maschinen nach vorgegebenen Schematas oder über eigene Skripte zulässt. Der Leistungsabfall konnte letztendlich von mir auf eine Solaris spezifische 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«____________________________________________________________ Festanstellung als C/C++ Softwareentwickler und Produktmanager; Computecs Leiter des internationalen Forschungsprojekts ACCENT; Konzeption und Entwicklung ASN.1 Compiler und Framework (C++/Java); Produktentwicklung und -leitung der ASN2CXX Familie. Computec GmbH Software, Karlsruhe, Deutschland; 1994-2000 ACCENT (EP 9169 ([7])) war die gemeinschaftliche Forschungsarbeit verschiedener europäischer Firmen und Organisationen. Die Aufgabe dieser internationlen Gemeinschaft war die Entwicklung einer Kodiereinheit als Hardwarezelle, mit der Datenstrukturen gemäß des ISO-Standards X.209 kodiert oder dekodiert werden. Neben der eigentlichen Entwicklung war der erhebliche Geschwindigkeitsvorteil gegenüber einer reinen Softwarelösung das eigentliche Ziel des gesamten Vorhabens. ACCENT wurde von der Europäischen Gemeinschaft im Rahmen des ESPRIT Programms gefördert. Ich repräsentierte die Firma Computec in diesem Konsortium während der gesamten Laufzeit des Projekts. Neben der Mitarbeit im Design und dem Gesamtkonzept der Hardwarezelle war ich für die Bereitstellung eines ASN.1 Compilers und eines softwarebasierten Kodiereinheit verantwortlich. Diese Komponenten erlaubten den transparenten Austausch der Kodiereinheiten und erlaubten demzufolge eine Abschätzung der Leistungsfähigkeit der Hardwarezelle. Der ASN.1 Compiler und die Kodiereinheit wurden von mir in C/C++ entworfen und entwickelt. Es stellte sich heraus, dass die von mir realisierte Einheit extrem schnell war und den Entwurf einer Hardwarezelle in Frage stellte. Aufgrund des technischen Erfolgs des ASN.1 Compilers und der Kodiereinheit beschloss die Firma Computec, diese Komponenten zur Marktreife zu entwickeln und unter dem Namen ASN2CXX (ASN.1/C++) zu vermarkten. Die Leitung dieses Vorhabens wurde mir übergeben und mit Erfolg durchgeführt. ASN2CXX wurde weltweit an bekannte Kunden 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, 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 Datenbanken | IBM 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 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 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 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________________________________________________________________________ Englisch | Verhandlungssicher Holländisch | Konversationstauglich FUSSNOTEN_______________________________________________________________________ [1] Diese und weitere Fallstudien zu meinen Berufserfahrungen finden Sie auf meiner Firmenseite unter http://de.haefelinger.it/portfolio [2] http://cruisecontrol.sourceforge.net/ [3] Diesen Beitrag zu einem OpenSource-Projekt sowie weitere von mir geschaffene Projekte und Beiträge finden Sie auf meiner Werkbank http://workbench.haefelinger.it [4] http://www.antlr.org [5] http://www.borland.com/us/products/silk/silkperformer/index.html [6] Silkperformer wurde mittlerweile von Borland aufgekauft und in die Borland'sche Produktfamilie integriert. [7] http://research.cs.ncl.ac.uk/cabernet/www.laas.research.ec.org/esp-syn/text/9169.html