20:45 Friday, March 03 2007

getting useful stuff accomplished

I'm roughly 3 weeks away from my two year anniversary at work. This anniversary led me to reflect on a number of things. When I first started the new job, it was challenging & enriching in a good way. There was alot of new skills & information that I learned, and I felt like I was accomplishing things. However, as time went on, I basically hit a wall and my growth & development basically stopped for the most part. Even worse, one of the biggest customers that I worked with was submitting more and more Windows bugs, and fewer and fewer Linux/Solaris bugs. So my time was being spent on things that didn't interest me, and were not the least bit challenging or enrichment. Effectively, I didn't feel like I was accomplishing much of anything, just repeating the same tasks. This was one of the primary reasons why I ended up pursuing the new opening in the CUDA group. There's another big reason, but I'm going to hold off on discussing it until I'm officially full time in my new role.
So unfortunately, the process of finding & hiring someone to replace me has been glacially slow. We've basically interviewed two people, made an offer to the 2nd, and he's ignored us since then (which pretty much means that he doesn't want to take the offer, but doesn't want to turn it down either). This is incredibly frustrating because the original timeline that I was provided by my current manager would have had my fully transitioned over by mid to late March. Clearly that isn't going to happen if we don't even have someone new hired yet. Thankfully, I've got a friend lined up for an interview on Wednesday, so hopefully this will get some traction, and perhaps in the next few weeks he'll get an offer, accept it, and start.
Even with all of this frustration, I've made (what I consider to be) great progress in ramping up on my CUDA responsibilities. I'm building out test systems, and writing test scripts (in bash, mostly) for running automated regression tests. Its really enriching to actually know that I'm contributing something useful, and I can readily see the results of my accomplishments. But there's even more to come. I've got a relatively large project that I've just started, where I'm building out an automated test system which will automatically:
* load one of several Linux distributions
* setup the test environment
* run the tests
* start all over again from the top
This will allow us to fully test CUDA on all of the Linux distributions that are current & future customers use, and it will all run continuously without any direct human intervention. I've got it all scoped out & designed on paper right now. Yesterday I got the first two (seed) systems to start the project. One of them will be the 'mayor' system which acts as a 'server' to drive the setup, and the 2nd system will be the first to act as a client, actually getting run through the tests.