Hello. My name is Brian, and I'm a Maven developer. You may know me from the community. This is how I got there...
I've spent my entire career developing enterprise-level, mission critical software systems. You know, the kind that run electric grids phone companies, or detect and track massive public health outbreaks? I've worked in companies ranging from 10 employees all the way up to 160,000 (same job, multiple acquisitions). You can certainly learn a lot of good things working with "5 9's" in mind. The trouble with such large, mission-critical projects is that you don't get a lot of end-user interaction. When you sell two or three massive systems in a banner year, you are less focused on user experience and more focused on function and quality.
Fortunately, I had the opportunity to lead several projects in which I had a close relationship with the end-users of the software systems we were creating. Those were my most enjoyable and successful projects by far. Not much overhead BS, room to make features the users needed and wanted... and oh yes, on time and under budget. OK, one was on time, the other was under budget.
Throughout my career, I always seemed to have a penchant for the Infrastructure. I often found myself "fixing up" the builds... even Visual Studio builds can use some work once in a while. Somehow I learned, made and rewritten some massively hosed "make.rules.simple" from scratch. Then due to the telecom bubble bursting, I moved into the Java world and Ant. Ant was interesting, but like those so-called simple make rules, there is plenty of rope in there to make an elegant build system, and most people just hang themselves with it. Except it was missing the ability to build only the minimal stuff in a non-clean fashion, like you can do with a well written Make script.
A little later, we started some major process improvements where I worked. Since I had strong opinions on the infrastructure, I led the Configuration Management team. We evaluated several technologies and ultimately settled on converting from Ant/Cvs to Maven 2 (alpha-ish)/Svn. And so it began...
I started with a few bug fixes here and there, but before long jumped head first into my "copy-unpack" plugin at Codehaus' Mojo project. Fortunately, Dan T. had some better naming skills than I and it became known as the "dependency-maven-plugin." After a few releases, that plugin was pulled into the Apache Maven project as the maven-dependency-plugin. and I came along for the ride. About a year later, I was accepted into the Apache Maven PMC and started working on the maven-enforcer-plugin.
I found working on Maven enjoyable, as I could finally get immediate feedback about changes, fixes and features. It really scratched that itch I mentioned earlier about lack of end user interaction in the Enterprise system world. It was also nice to keep my coding skills fresh, as I was mostly development management by now in my day job. For two years, I imagined how enjoyable it would be to work on a project like Maven full time.
Several months ago, Jason gave me that chance. I joined Sonatype and now have the opportunity to bring my full attention and experience building mission critical systems to the Maven project and to tools so desperately needed to use Maven effectively in the enterprise world. The first of these tools is Nexus, our Maven repository manager, but that's another blog.