Deutsche Version

I've been born 1969 in Mönchengladbach, where I still live (see my GeoURL link for details). I'm married and we have two grown-up children.


Since 2012 I work as a Senior Consultant at innoQ Deutschland in Monheim.


Like so many developers of my age I've grown up with "home computers" and taught myself programming. In my case it has been a Sinclair ZX Spectrum and Basic. Like I never wanted a Comodore 64 I didn't replace it with an Amiga (or a boring PC of that time) but with an Atari ST. I learned GFA Basic and C, later C++ once I discovered the GNU compiler and MinT for my ST and bought a hard drive.

After finishing my Diploma there wasn't enough demand for people doing theoretical physics in Germany and I decided to turn my hobby into a profession. Back then I would have been willing to move for a decent job, today things would be different.

My first real job in 1996 was mostly about web applications - written in C, Perl or a PHP-alike macro language for a now dead webserver called PowerWeb. The other part of that job involved BTX stuff (a teletext system of the pre-internet era for those who are either to young to remember or not coming from Germany).

From 1998 until I took my current job I've been a project manager and developer - until 2005 almost exclusively working in Java and from 2005 to 2011 on .NET. I've been fortunate enough to be the development team lead for the team that won the Grimme Online Award "Förderpreis Medienkompetenz Professionell" in 2002. While I never touched a single public facing screen I did all of the backend and database design and coding (which included some sort of CMS) and had some influence on the ideas and concepts that made the game worth playing. All in all I was only a small piece of the team, but is still is something to be proud of.

Soon after I started to work with Java I stumbled upon JUnit and a "Test Infected" paper by Erich Gamma and Kent Beck managed to really infect me. Today I can't stand it if parts of my software cannot be tested - probably one of many reasons I prefer to stay away from any kind of user interface if possible.

I enjoy creating ideas and code with other people and so I enjoy doing pair programming and code reviews but also the distributed n-person programming of open source communities.

For the last years I've been working from home al lot and really love to be home with my family early and without any traffic jam. I must admit I miss kicking ideas into co-workers during that time and email isn't always a good substite for that, though - phone or chat even less so.

Over time I've worked with a couple of different database systems. I've also used and developed software on a lot of different operating systems, including Atari's TOS, several Unix dialects, OpenVMS, OS/2. and Windows

When I discovered Emacs for myself Emacs Lisp lead to Lisp in general and functional programming.

Open Source Software

My first contribution to open source software has been a patch to gnuplot in 1993 or 1994. I desperately needed to plot some graphs on my Atari ST and it just wouldn't work the way I needed. It was quite an adventure to test the stuff. Basically I started compilation before I went to bed and viewed the results after breakfast as it simply took eight hours or so to compile gnuplot on my Mega STE with a whopping 4MB of RAM.

Using Open Source software was something natural in University and so the very first PC I ever bought was installed with Linux (Slackware and a 1.2 kernel IIRC) and nothing else. It must have been around 1993 when I fell in love with (X)Emacs and never looked back. I know how to use vi and have tried several IDEs but I've never been as productive with any environment as I am using XEmacs - and command-line tools in a decent shell, of course.

I have contributed to some other open source projects since then, things like a JDBC driver for MS SQL Server before Microsoft provided one and a couple of other libraries.

The biggest share of my contributions take Apache Ant and XMLUnit. Until July 2021 I spent a lot of time with Apache Commons Compress and I've been onvolbed with Apache log4net for a few years. I am the chairman of Apache Gump's project manageent committee. Ant doesn't need to get introduced to a developer today. Gump performs large scale integration between various projects on a nightly basis - i.e. it builds the very latest code of every project under Gump's control against the very latest code of all the projects this one depends on. XMLUnit helps testing code that consumes or produces XML on the Java or .NET platform

One of my first contributions to Ant was the <junit> task that Thomas Haas and myself developed in 2000 - by now many people have improved and extended it. I'm convinced that Ant's support for JUnit has helped quite a bit to make automated tests an ingredient of the Java culture.

Since 2000 I'm a member of the Apache Software Foundation. An incomplete list of OSS projects I'm involved in can be found at Ohloh:

Ohloh Profile for Stefan Bodewig

Once in a while articles I write get published outside of my weblog and even less often I give talks.

"Is this Stefan I know from ..."

I received my Abitur from "Neusprachliches Gymnasium" in Mönchengladbach in 1988. Unfortunately that school has been merged with another school in the late 1980s.

My Alma Mater is the Heinrich-Heine-Universität Düsseldorf where I studied physics starting 1990. I received my Diplom in early 1996 for a work on growth in two dimensional crystals - a work somewhere in the borderland of statistical physics, computational physics and geometry.

Getting in Contact

If you want to ask questions about Ant or any other project I'm involved in, don't contact me directly at all. Use the appropriate mailing list instead.

If you are doing to scientific work on open source software and think I should answer your questions - please explain to yourself what is in it for me and then explain it to me. Apache Ant is still popular enough that I get several questionaires per months and I don't want to participate in each and every one of them.

Otherwise, this will work, I may not respond immediately, in particular not at weekends as I tend to be offline then, but I usually will.