Wednesday, April 18, 2012

I've seen the Future, and it involves punch cards??

I've now been working for Red Hat for roughly 6.5 years.  That's a long time!  I started out doing Release Engineering work for our internal Fedora project, somewhere around Fedora Core 5.  One of my first tasks was to script a mass rebuild of all our packages for a new compiler and point out to people when their software failed to build.  As an eager new employee I spend some time on the weekend sending out build failure reports (by hand) to one of our development mailing lists, and a funny thing happened.  The CEO of the company (at the time Matthew Szulik) replied to one of my reports directly to me, saying that he was pleased to see somebody else burning the weekend hours.  The C, E, Freaking, O!  How cool was that??

Fast forward a release or two and now I'm helping to move Fedora out of Red Hat and into the world at large as a "Community Driven" project.  Basically get our sources and build system to where more than just Red Hat employees can touch.  This required a lot of careful thought, planning, and political smooth talking but we made it happen.  A great group of engineers and managers all saw the greater potential for Fedora if we could just free it from the Mother Ship and worked very hard to convince other people and create software and infrastructure to make it happen.  My role changed a bit at that time from just another release engineer to more of a group leader, a group of volunteers who wanted to help out with the tasks related to getting a Fedora release made.

Fast forward again a larger number of releases and we'll get to about 2 years ago.  A FUDCon was about to start in "Toronto" CA and a big group of folks were on a chartered bus riding from "Boston" to the FUDCon event.  As geeks do when stuck in a small space around other geeks, we talked about geeky things.  The geeky thing that had been on my mind for a while now was trying to get Fedora sources moved out of an aging CVS based setup with buildsystem integration by way of various data files and Makefiles onto something a bit more.... modern.  Anybody paying any sort of attention to source control systems in the past few years will have noticed a sharp uptick in the adoption of a new source control system called git.  We desperately wanted to use git to manage Fedora package sources, and I desperately wanted to use something other than Makefiles to interact with the system and so we spent a good part of that ride throwing ideas around.  Certainly not the first time we've done this, but something happened to click on that ride and half a plan was formed.  There certainly is something magical about getting a group of people together and then removing a lot of the outside distraction, just to see what kind of awesome can be cooked up.

For the next 2 years or so I worked on first getting Fedora moved into git and replacing Makefiles with a python library and application, followed by doing the same for a much more complicated internal setup at Red Hat for all of Red Hat's products.  The work on the latter is now (mostly) done and I had to make a decision.  Did I want to keep working on Release Engineering type stuff, as I had for the previous 6.5~ years, or was I ready for something new?  I certainly felt ready for something new.  There is nothing wrong with releng work, I quite enjoyed it and I really liked the team I worked on, but 6 years is a long time for a geek to be focused on one type of work.  So I looked around Red Hat to see if anything else was interesting to me, and I found an opportunity within the Installer team.

The Installer team primarily develops and maintains Anaconda, the software used to install Fedora and Red Hat Enterprise Linux (and it's many rebuilds) onto computers.  There is a variety of other software involved, all playing supporting roles, but Anaconda is certainly the star of the show.  As of Monday the 16th I've been the newest member on the Installer team.

What I'll be doing there is still being worked out; It depends somewhat on what interests me and what needs are there.  Getting to the title of this entry, one of my first tasks is to get up to speed on IBM Z hardware (s390x).  The team needs more than one person to have knowledge of how our software (installer and the OS) is brought up on these systems.  I learned that even though IBM has been making new Z systems in recent years, they /still/ make use of a stack of virtual punch cards spooled into a virtual reader to allocate resources for an OS to come up.  That's right, it's 2012, I'm looking into the future of my work here at Red Hat and I'm learning about punch cards.  WAT?

I'll still be involved a bit with source control management for Fedora/RHEL, and may make some new features and fix bugs in the software we use to interact with git and our build systems, at least until we find a new sucker^w engineer to take on those responsibilities.  But now instead of writing software that our developers make use of, I'll be writing software that our /customers/ make use of and that's both scary and very exciting!

I hope to blog a bit more often about my Adventures in Installer Land, thoughts and observations that are going to require more than 140 chars.  For now, back to the punch cards!