Monday, September 24, 2007

Can't turn the brain off

After lying in bed and trying to go to sleep for a while I realized that my mind is just full of thoughts and that perhaps a blog post might be the best sleep pill I can take right now. Chances are that I have some sort of personality disorder that causes me to be thinking about work while I'm trying to go to sleep ... or perhaps it's just that I'm pretty excited about actually getting in and starting to really contribute to my new team. As mentioned in previous entries, I spent a good chunk of last week trying to learn a bunch of new stuff without appearing to be a complete dullard. But today I got to actually start showing people that I can actually do some things and, I'm happy to say, I got some pretty positive feedback.

I think I'm really excited because I'm beginning to see where I can really start making a difference in the way that software is created at OpGen. Most of the codebase that they have is pretty much considered to be a working protoype, with just about everything written in Perl/Tk. Perl/Tk is NOT what I would choose to implement a large-scale product that you're hoping to ship to a customers site. There are one or two projects lying around that are written in Java, but it's hardly the Java that I recognize. Clearly it was prototype code, written by somebody that grew up programming in something other than an object-oriented programming language.

Dealing with these sub-optimal (in my mind) software codebases isn't incredibly fun, but it's not really all that hard either. However the really fun part is that I am getting to start on a fresh, new Java project with the intent that I will be building up a Java framework that will eventually replace all (or most of) the existing prototype code that has been written to date. That will be a long haul, for certain, but I'm excited about getting started at pretty much ground zero and making technology, framework, and design choices. I've pretty much been told that I am going to be "The Java Guy" and that I can (within reason) run things the way I want. That is pretty exciting to me!

I'm really pleased to see how some of things that I've learned from my previous job can really be used at OpGen to make a real positive impact in productivity and ease-of-development. I have to laugh a little when I say this, but first just using an IDE. I'm not entirely sure how the Java code that exists got developed, but rumor has it that it was created only using vi and ant. To me, that's kind of like building a doghouse using only 19th century tools. Sure you can do it, and there's some amount of geek credibility to be earned there, but wouldn't you rather use a cordless drill and a chop saw? Beyond just simple stuff like that, I'm very excited about the possibilities of using Hibernate (these guys have never heard of an ORM tool) for simplifying their database access routines and JavaSpaces for some robust, distributed processing. It's pretty exciting seeing that you've actually learned some neat tricks that you can apply in other situations.

I'm very happy about the way this week is starting off and I'm hoping to demo some software tomorrow and get going on my database access framework and start working on getting some stuff really cooking. I don't know if this is going to help me sleep or if I'm just more amped up now than when I started.