Sunday, May 20, 2007

The Biggest Mistake I Ever Made


And Bingo was his name-o.

On New Year's Eve, my son was nipped on the face by a chocolate Lab. He was already nervous about dogs and the event basically pushed that nervousness over the top to full-blown phobia. Having grown-up with dogs my whole life, I couldn't imagine what life would be like if one were terrified of dogs. So I decided that we would get a puppy to help my son with his fear. My logic was that you can't learn to handle a dog by being around cats or guinea pigs... you learn to handle a dog by handling a dog. Secondly, I figured that a puppy would be more appropriate because he would grow up in our family with our kids being a normal part of his life. Conversely, our kids would be around the growing puppy and wouldn't have to deal with an adult-sized dog from the beginning. And I didn't want to worry about leaving my kids in the room with a rescued dog, not really knowing its history.

I still think my logic was sound but the actual implementation was incredibly more difficult than I imagined.

Since Bingo was a puppy, he nipped and his teeth and claws were sharp. Day one went very well because he was still figuring out the lay of the land around the house. But that's where "happy puppy experience" ended. I believe he nipped and scratched both kids on day two, which essentially ended "happy puppy experience" in our house. From that day, and for two months, Bingo was either completely separate from our family, or if he was loose in the house, the kids would literally lay on the very top of our couches to be away from him. This sounds funny, and some day it might be, but it was truly Hell while it lasted. Because my wife and I couldn't overlap time with the puppy and time with our kids, we basically had no time to ourselves or peace in our home. From 5:45 in the morning on my first walk with him until around 11 at night, my wife and I were busy looking after someone. I have never been so exhausted.

So we found an incredible home for Bingo (our dog trainer took him) and chalked that one up to the biggest mistake of my life. At least we learned that we're not dog people and that, if I have to stand up for my son during every encounter with a dog, it will be hundreds of times easier than trying to live with a puppy!

Monday, February 26, 2007

Shout-outs

One: To my brother, otherwise known as Somashine.

Two: To Sunday and her amazingly accurate Oscar predictions.

Three: To my close friends at Pink Pumpkin, Ink.

Cheers!

Saturday, January 06, 2007

Ten

Today marks ten years for me as a software professional.

On January 6th, 1997, I walked through the doors of the Corporate Express corporate headquarters in Broomfield for the first time as a Systems Analyst. I had four similar offers coming out of the College of Business at CU-Boulder. My starting salary at Corporate Express was $37,500 and I received a $5,000 signing bonus (which was taxed at nearly 50%)... remember 1997 in programming folks?! I had worked as an intern (code monkey) for about 10 months prior at a company called BDM Technologies, which folded into Avitek, which folded into BEA in Boulder (and subsequently Rally Software).

On my first day, I attended a SQL brown bag session put on by our DBA's. They had worked with large systems with Sprint and Andersen. I can't remember which version of Oracle we were working with but it was the rules-based optimizer and I was taught, literally from day 1, how to write optimized SQL for Oracle. I still see some of those guys almost weekly and they've graduated on to terabyte systems at Level 3.

My first project was implemented with Pro*C, Tuxedo, and Oracle stored procedures. It was an optimized version of an existing EDI 850 processor. It was also my introduction to heads-down coding, sitting at my desk when the vacuum lady visits, and late night Chinese food.

Since that day and project, I've worked on countless lines of code, created and fixed countless software bugs, worked on and solved some interesting problems, worked with interesting technologies, and worked with a whole bunch of really good people. Some of which I've managed to stay close with over the years...

Here are some other bits of reflections that help sum up my 10-year professional experience:

  • I've worked for four companies. Corporate Express is the largest. Since then, I've worked for three dot-coms. The majority of my experience, approx. 66%, is from within small dot-com environments.
  • My average tenure at a company is around 4 years. I had one anomaly of 6 months...
  • I've worked on UI's for three installed applications: one in Visual Basic, one in Java, and one in C#. I liked the C# client the most.
  • Most of my time has been spent within the confines of cubicle walls. I've had one office to myself. I once worked in a single office with four other developers - which was one of the best times I've had on a team.
  • I've experienced three layoffs. All of which I survived and wished maybe that I hadn't. After one, I negotiated my own exit.
  • In total, I've gone on three out-of-state business trips: once to PL/SQL training in San Francisco (by Steven Feuerstein no less), once to JavaOne in San Francisco, and once to Houston for a sales presentation.
  • I've been sent to training classes for third-party technologies a total of four times, or six days: SQL, PL/SQL, XML, and Java.
  • I've been certified on a technology once, as a Java developer.
  • I've pretty much always been an application developer. But that role's held six different titles: Systems Analyst, Technical Architect, Senior Analyst, Java Developer, Software Engineer, and Senior Software Engineer.
  • I'd approximate that 75% of my development has been done on Unix/Linux, and too much of that in vi or some other plain text editor.

So what will the next ten years be like..? I've said that by the time I hit 40 I don't want to be coding any more. To be honest, I don't know what that looks like right now. I suppose I can only hope that I get a chance to work with people as great as I have in the past and on problems as challenging and interesting. Bring it on!

Cheers!

Friday, January 05, 2007

My 2007 Word

Instead of a list of fleeting New Year's resolutions, I choose an action verb that I intend to incorporate into as many facets of my life as possible over the course of the new year.

For 2007, that word is Execute.

Given last year's craziness, it could easily be misconstrued as "hang" or "behead"...

Seriously though, I tried less harsh synonyms such as "achieve" or "accomplish" but those don't hit the mark like Execute does. After a few years of performing this exercise - 2006 was Create, 2005 was Rise - I've found that the word just sort of comes to me from my gut and separates itself as an obvious choice.

One of the obvious personal experiences from 2006 that drove this word, I think, was keeping two stocks on a watch list and not pulling the trigger. I watched Marvel Entertainment (MVL) for months. It met all of my criteria... I called a broker when it hit $13 and he recommended against buying. Of course, now at $27, I sit kicking myself and cursing the broker. The other stock was Herman Miller (MLHR). I was actually sitting with a broker when I told him I'm interested in the stock but I wasn't sure. Literally the next day it jumped from $27 to 36$ on earnings news. Could'a, should'a... Execute. Maybe my relationships with brokers are earning the other form of "execute" this year.

The beauty of Execute is that there's a prerequisite planning that's built in. Plan and Execute.

My son is starting Kindergarten this Fall...
Plan what I what him to have going in: some reading, some writing, some math.
Execute in the form of flashcards taped around the house labelling items, a grocery list on the refrigerator with pictures and words that he adds to when we run out of something, a game that we made up called speed numbers involving up to 6 dice that we roll and figure as fast as we can, etc.

My house built in 1974 needs some love...
Plan small projects monthly and one or two large projects this year.
Execute in the form of listing priorities and budgets (more planning... recursion is very powerful), schedule time to take classes on home improvement, secure the tools or professional help and DO IT.

My body built in 1973 needs some love...
Schedule time to continue with yoga classes and consistent gym visits. Eat breakfast and pack my lunch.

My portfolio needs some love...
Research my options and pull the trigger on an index fund or services like Sharebuilder.

Set a morning routine to stay one step ahead of the daily madness.

Keep Java fresh.
2006 was a good year that involved CruiseControl, Spring (and Spring.NET), C#, .NET interfacing with Axis web services, RESTful vs. SOAP api's, XSLT transformations, interesting patterns like Strategy and Template Method, and JMX.
I need to keep the mo, possibly with the likes of Java 5, annotations, clustering, and Ajax.

And finally, (ironically) enjoy peaceful and love-filled time with friends and family. And I wish that for you as well.