English Language Version

Ich wurde 1969 in Mönchengladbach geboren, wo ich heute noch lebe, bin verheiratet und habe zwei erwachsene Kinder.

Berufliches

Seit 2012 arbeite ich als Senior Consultant für die innoQ Deutschland GmbH in Monheim.

Software

Wie so viele Entwickler in meinem Alter bin ich mit "Heimcomputern" groß geworden und habe mir Programmieren selber beigebracht. In meinem Fall waren es der Sinclair ZX Spectrum und Basic. So wie ich nie einen C64 besaß wurde mein Spectrum auch nicht durch einen Amiga (oder gar einen langweiligen PC) sondern durch einen Atari ST ersetzt. Ich lernte zunächst GFA Basic und dann C, später C++ nachdem ich an der Universität den GNU Compiler und MinT für den Atari entdeckt und meinen ST mit einer Festplatte ausgerüstet hatte.

Als ich mein Diplom in der Tasche hatte, wollte niemand in Deutschland theoretische Physiker einstellen, also machte ich mein Hobby zum Beruf. Damals wäre ich noch bereit gewesen, für eine interessante Stelle umzuziehen - heute wäre das anders.

Schon in meinem ersten richtigen Job 1996 ging es hauptsächlich um Web-Applikationen - in C, Perl oder einer PHP-ähnlichen Makro-Sprache eines inzwischen verstorbenen Web-Servers names PowerWeb. Daneben gab es aber auch noch das Standbein BTX (die Älteren werden sich erinnern) entwickelt mit VAX Pascal unter VMS.

Von 1998 bis zu meiner aktuellen Stelle habe ich als Projektleiter und Entwickler - bis 2005 beinahe ausschließlich mit der Java und von 2005 bis 2011 auf der .NET Plattform gearbeitet. 2002 hatte ich das Glück, das Entwicklerteam eines Projekts zu leiten, das den Grimme Online Award "Förderpreis Medienkompetenz Professionell" gewonnen hat. Ich bin sicher, dass vor allem die Idee und die redaktionelle Arbeit, die hinter der Robokutschpilotenralley steckten, zu diesem Preis geführt haben, dennoch bin ich ziemlich stolz darauf - immerhin stammte auch die komplette Backend-Entwicklung aus meiner Feder und ein wenig Einfluß auf das Originalkonzept hatte ich ebenfalls.

Relativ bald nachdem ich mit Java begonnen habe, bin ich durch Zufall über JUnit gestolpert (JUnit 2.x, circa 1998). Tatsächlich hat ein "Test Infected" Artikel von Erich Gamma und Kent Beck es geschafft, mich anzustecken, und seitdem kann ich nur schwer akzeptieren, wenn meine Software nicht automatisiert getestet werden kann. Nicht zuletzt deshalb bin ich froh, wenn ich mit Benutzeroberflächen selber möglichst wenig zu tun habe.

Ich mag es, Ideen und Quelltexte gemeinsam zu entwickeln, weshalb mir Pair-Programming und Code-Reviews aber auch vor allem das verteilte n-Personen Entwickeln der Open Source Welt sehr entgegenkommen. Bei algorithmisch oder mathematisch anspruchsvollen Aufgaben ziehe ich mich allerdings lieber alleine zurück.

Seit einiger Zeit arbeite ich regelmäßig von zuhause und genieße es, staufrei früh bei der Familie zu sein. Andererseits fehlt mir an diesen Tagen der direkte Gedankenaustausch mit den Kollegen und gelegentlich ist Email hierfür kein guter Ersatz - Telefon und Chat sind es nach meiner Erfahrung aber noch weniger.

Im Laufe der Jahre habe ich mit vielen verschiedenen relationalen und nicht-relationalen Datenbanksystemen gearbeitet. Anfänglich entwickelte ich unter OS/2 und OpenVMS, Java dann unter Linux und MacOS X, .NET natürlich unter Windows.

Als ich den Emacs für mich entdeckte, habe ich über Emacs Lisp auch Lisp im allgemeinen und darüber funktionale Programmierung kennen und schätzen gelernt.

Open Source Software

Irgendwann 1993 oder -94 habe ich meinen ersten Patch zu gnuplot an David Denholm geschickt. Ich musste für einige Experimente Graphen bearbeiten und irgendwie funktionierte es auf meinem Atari ST nicht so recht. Wenn ich heute davon erzähle, dass ich Abends "make" eingetippt habe und dann schlafen ging, um am nächsten Morgen zu sehen, ob alles funktioniert hat, fühle ich mich wirklich alt. Aber auf meinem Mega STE mit unglaublichen vier Megabyte benötigte ein Komplettlauf eben acht Stunden.

Damals habe ich nicht groß darüber nachgedacht, Open Source Software zu nutzen; das war an der Universität eben ganz normal. Der PC, an dem ich für meine Diplomarbeit werkelte, lief unter Slackware Linux und auch mein erster eigener PC hat nie ein anderes Betriebssystem gesehen (auch wenn die Distributionen wechselten).

Irgendwann, kurz nachdem ich für die Praktika LaTeX lernte, habe ich mich durchgebissen, Emacs zu verstehen. Von dort gibt es kein Zurück. Zwischenzeitig bekam XEmacs den Vorzug, aber etwa seit der Version 22 bin ich wieder beim GNU Emacs. Mit der Kombination aus Emacs und einer vernünftigen Shell fühle ich mich deutlich wohler als in jeder IDE, die ich bisher verwendet habe.

Im Laufe der Jahre habe ich zu mehreren Open Source Projekten beigetragen - etwa ein JDBC-Treiber für den Microsoft SQL Server bevor Microsoft selber einen zur Verfügung stellte. Protokolle zu erraten, indem man die über das Netz gehenden Bytes beobachtet, hat einen archaischen Reiz.

Heute steckt der größte Teil meiner OSS Entwicklungszeit in Apache Ant sowie XMLUnit. Bis Juli 2021 habe ich sehr viel Zeit in Apache Commons Compress investiert, für einige Jahre war ich an Apache log4net beteiligt und ich bin der "Chairman" des Project management Committe für Apache Gump. Ant brauche ich Software Entwicklern nicht vorstellen, Gump (inzwischen in Python geschrieben) betreibt Continuous Integration auf einer größeren Skala - es integriert Projekte gegen die neusten Versionen der Projekte von denen sie abhängen - als gewöhnlich. XMLUnit erlaubt es, relativ einfach Tests für Java oder .NET Code zu schreiben, der XML produziert oder konsumiert.

Einer meiner ersten Beiträge zu Ant bestand im <junit> Task, den ich gemeinsam mit Thomas Haas 2000 entwickelt habe - inzwischen ist er durch die Hände vieler Entwickler deutlich verbessert und erweitert worden. Ich bin davon überzeugt, dass Ants Unterstützung für JUnit wesentlich dazu beigetragen hat, automatisierte Tests zu einem wichtigen Bestandteil der Java-Kultur zu machen.

Seit 2000 bin ich Mitglied der Apache Software Foundation. Eine unvollständige Liste der Projekte, an denen ich mitwirke, findet sich bei Ohloh:

Ohloh Profil für Stefan Bodewig

Gelegentlich werden Artikel von mir auch außerhalb meines Weblogs veröffentlicht und noch seltener halte ich Vorträge.

"Ist das der Stefan, mit dem ich ..."

Mein Abitur habe ich 1988 am Neusprachlichen Gymnasium in Mönchengladbach gemacht, welches in den späteren 80ern leider mit einer anderen Schule fusioniert wurde und dessen Name allen damaligen Beteuerungen zum Trotz inzwischen verschwunden ist.

Nach meinem Zivildienst in der evangelischen Stiftung Hephata habe ich mit Unterstützung der Studienstiftung des deutschen Volkes ab dem Wintersemester 1990 an der Heinrich-Heine-Universität Düsseldorf Physik studiert. Mein Diplom habe ich am Lehrstuhl für Werkstoffwissenschaften Ende 1995 für eine Diplomarbeit in einem Mischbereich aus theoretischer Physik, Mathematik und Numerik über topologische Fragen beim Wachstum zweidimensionaler Kristalle in bestimmten Modellen erhalten.

Für einige Zeit gehörte ich zum Arbeitskreis "Freizeit mit Behinderten" der Katholischen Hochschulgemeinde Düsseldorf und vertrat diese auch in städtischen Arbeitskreisen.

Kontakt

Falls Sie Benutzer-Fragen zu Ant oder einem der anderen Open Source Projekte haben, an denen ich mitwirke - wenden Sie sich nicht direkt an mich, verwenden Sie bitte die entsprechenden Mailinglisten der Projekte.

Falls Sie eine wissenschaftliche Studie über Open Source Projekte durchführen, fragen Sie sich bitte zunächst selber, was ich davon hätte, an ihr teilzunehmen, bevor Sie es dann mir erklären. Apache Ant ist noch immer bekannt genug, um mir mehrfach im Monat eine Einladung zu einer solchen Studie einzubringen. Ich kann, will und werde nicht jeder solchen Einladung folgen.

Für alle anderen Fälle sollte, stefan.bodewig@freenet.de funktionieren. Ich werde in der Regel nicht sofort antworten, aber irgendwann bestimmt. An meinen gesammelten und leider notwendigen SPAM-Filtern kommen Mails ohne HTML übrigens deutlich besser vorbei.