I Hate My 30s?

Not really, but the show is certainly a winner.  I hit 30 last year and entered a period of confusion about my career path.  The challenge of programming was waning and as such, I was having a more difficult time remaining focused on it.  For months I thought the problem was simple burnout and blamed my employer.  Later on I took another gig  and the same feelings resurfaced, so I realized my initial conclusion was incorrect.

The truth, more likely, is that I’m not burned out.  I’m just less interested in the actual act of programming than before, but I remain passionately interested in software and technology.  To this end, I’d like to find a balanced, challenging outlet that allows me to pursue my interests in software and technology without getting bogged down in doing all of the implementation.

I used to look around and scoff at the lack of older programmers, assuming that older people can’t hack the ever-evolving technology landscape.  I no longer really think this is the case, but rather that as programmers gain experience, they obtain more perspective about the industry.  From the dawn of the computer science age in the 1960s to the present, most problems have been simply recycled with new implementations of the same solutions.  True innovation is more rare and the more experienced programmer gets weary of the same problem solving.

If I can find a career operating at a higher level in the software production process, I think I’ll be a lot happier.  It’s the repetitious problem solving in everyday programming that makes me bored.  In the past I’ve enjoyed architecture and design work as well as mentoring new hires out of college.  I don’t know what my exact niche in the ecosystem should be yet, but I certainly would like to stay within the software industry.  I’ll be re-examining career opportunities with a more open mind.

Our beast, Zelda, is now 7 months old.  She has had a number of adventures recently  including a cross-country trip to the Grand Tetons, getting spayed, and many visitors that needed licking.  It certainly has been a busy summer for a not-so-little puppy now pushing 50 pounds.

We’ve got her back in class at Narnia now, where she is taking the Intermediate class with actual adult dogs for the first time.  The other dogs appear to be a good deal more with it than the puppies we had in our last round of class.  In other words, they can actually sit and lay down on command.  My Zelda will need to consistently bring her A-game if she wants to show off as the star doggy.

Anyway, the first week of class they asked what trick we should teach our dogs and an 8 year old girl chimes in that the dogs should learn to crawl.  So naturally, I am now stuck teaching my dog to crawl.  This is, of course, not something actually required to pass the class, BUT my Zelda will be ready to show off in the event that they check on whether any dogs can go beyond the call of duty.  We can’t allow for the possibility that someone else’s dog will learn and ours will not.

The other thing I like about this new round of dog class is that your dog can actually FAIL.  Because of this, I waved my finger at the wife that our dog would pass on the first try.  In order to do this, she needs a bunch of practice at walking on a loose leash and generally being calmer than she is now around strangers.  It does help motivate me to train her, though, because I definitely don’t want to enroll her in the same class again!

The Zelda pup will soon be 6 months old.  (Yeah, I’m a sucky blogger.)  She’s now over 40 pounds, has passed two rounds of puppy obedience classes, and has upgraded many sharp puppy teeth.  The teething process was kind of a pain in the ass because puppy teeth are really annoyingly sharp.  Now she has a full set of blunt, but quite powerful adult teeth.  She demonstrates this constantly by chewing through anything you leave her with for more than a few microseconds.  (She’s efficient at what she does.)  Keeping a set of chew safe items within arms reach is now a necessity of life.

It’s funny observing her in the “dog days of summer.”  During the hot days she simply wants to lie in the grass and will not walk anywhere.  In the evenings, she becomes a highly efficient, firefly killing machine.  It’s quite amusing to watch her hunt bug…

We’re looking forward to the family vacation when we’ll find out how young pupper handles a 1,100 mile road trip!

By demand: Zelda Photos

Life with a 8-12 week old puppy turns out to be enjoyable, but also very tiring. Zelda was certainly a cute little furball during that time, but we definitely had to re-order a lot of our routines to make her fit well into them. Everything had to be re-organized to fit in with Zelda’s bladder control. (or lack thereof)

Crate training helps teach little pups not to use the house as a bathroom, so we spent most of the first few weeks putting her in for a nap, taking her out to pee, getting a little playtime, and then back in the crate. She also got to eat, drink, and do obedience work. As an added bonus, this cycle sometimes got to be repeated at 1, 3, and 5 am.

Although there were a few accidents, Zelda did seem to quickly adapt to the idea that she really ought to be going to the bathroom outside, but you really have to interpret her wishes to figure this out. She does not bark and rarely whines unless you are leaving her. She thinks that barking is a sign that one is too upset.

We’ve seen her try to calm down other very “barky” dogs. She just looks at them like, “Are you sure that’s what you should be doing right now?” Hell, we’ve only ever heard her utter one real bark when she was in guard dog mode, and she looked kind of sheepish about it. Very odd, but an interesting personality quirk. The owners with “barky” dogs all tell me they are quite jealous.

One other thing we discovered is that our pup really loves to do obedience work. She learns quickly, pays attention, and keeps coming back for more. She was certainly very calm compared to other puppies at her “puppy kindergarten” class and really picks up new commands quickly. Of course, after class, she is completely exhausted!

So far so good. The puppy keeps growing and shows signs of becoming a very good dog.  At the rate she is growing, we’re expecting her to hit 65-75 pounds.

a.k.a. geeks take a leap of faith in real humans.

It started with the two of us deciding that there is only way to get what you want is. You just have to reach out and grab it! Of course, that’s not a novel idea, but in our case it meant that I quit my job to get a Weimaraner puppy, manage the household, and enter the murky world of self-employment. For the sake of brevity, I will focus on the acquisition of our little monster.

The wife has always wanted a puppy and we both love my parents’ Weimaraner, Shadow, so there was little question that we’d have to find our own gray ghost.

We wanted the whole puppy experience because the wife has never had one and it really is an experience everyone should have at least once in their life. So I started shopping around for a breeder in my usual fashion by googling for hours upon end.

However, after much googling, it became clear that selecting a breeder comes down to a leap of faith that your puppy will be healthy and a good companion. In other words, you have to put your trust in a human. With this hope in mind I selected a breeder hours away in Missouri. They had 2 female weimaraner pups left and promised to match the pup’s temperament with our stated preferences.

A couple weeks of impatient email exchanges ensued and we finally made a very anxious trip downstate to get our dog. We actually met the breeder’s driver halfway and synchronized up in a rural gas station parking lot. She simply popped open the minivan door and we saw half a dozen puppies making their way to a new home, including 2 gray ghost pups! There was a bit of a drumroll moment to see which pup we’d get, but the driver quickly scooped out the more shy Weim from the rear of their shares craw and plopped her in the wife’s arms. (That was a stroke of good fortune because my wife was already eyeballing up that one.) We paid the woman and the whole transaction was done in about 5 minutes.

So yeah, we had our little zelda. She was a cute little roll of fur who spent most of the ride curled up on our laps. I an surprised I didn’t drive off the road given what a cute little pup she was. She had her picture taken a few times with an iPhone on the way home.
Anyway, it was about a 4 hour drive home and then we had our own little gray pup!

NFS, the ancient network file system, somehow still persists in today’s data centers. Apart from sophisticated technical arguments about why NFS sucks, why create additional network overhead to handle a request?
Each NFS mount is shared with multiple machines, each connecting to a single server. This is an unnecessary network bottleneck!

Here’s a newsflash: disk space is really, really cheap. Push files to the edges of your network instead of creating ridiculous bottlenecks that slow down your application and poop all over its uptime. The old argument that NFS is great for system administrator convenience is complete crap. Performance rules. Deal with it. Push your content to the edge of the network for better speed and availability.

My current poster child of NFS crapola is Dreamhost. For reasons unknowable, they have decided to host all user accounts on a variety of NFS mounts. Thus, my photo gallery website is served off of hard drives that are remotely mounted. So painfully slow! I mean, we’re talking about the addition of seconds for each page load. WTF? Why is this protocol not dead yet?

Conventional marketing wisdom has it that customers form loyalties to brands. This is the basic idea that a Ford owner is likely to buy another Ford based on a loyalty to the brand. I think the Japanese car companies would agree that it was not terribly difficult to lure American customers away from the cars of the red, white, and blue. From this is it is clear that there are more forces at work in a purchase decision than brand loyalty.

Modern thinking in marketing talks more about experience engineering. This is an interesting idea, which basically boils down to the creation of an a comlete experience that makes customers feel good about themselves. This is a concept that Apple has gotten right with the iPhone. The all-in-one device, feature-ridden as it is, is really a little bit of the American dream distilled into a 7×4x0.5″ package. It represents freedom, fashionability, and the open road. You can go anywhere with that bad boy and still have you lifeline back into the techno-sphere. It makes you feel good about yourself. It works without an instruction manual. You feel like a wizard.

More than the product itself, though, Apple has captured the full lifecycle of the customer experience. It was extremely simple to order online. They sent me beautifully crafted emails with tips and instructions for what to do when it arrives. It comes boxed in simple, but elegant black. When I removed the tape from the front of the unit, it automatically turned on and told me to plug it in for setup purposes. The entire process of acquisition and setup makes you feel warm and welcomed. It is reminiscent of my wife’s shopping excursions to the Coach store where they hold her hand and cheer her through the process of acquiring new handbags.

So, in short, Apple is a company that gets experience engineering. This is extremely apparent when contrasted with their partner, AT&T/Cingular/whatever. When we walked into a Cingular store, there was no mention of the iPhone whatsoever, which was confusing enough. I mean, maybe they only sell them in AT&T stores, but I really don’t think I should have to care about mundane details like that when it’s the same lousy telco. I’m very glad I ordered it directly from Apple where the entire process of dealing with salespeople and outdated phone setups was eliminated.

To the companies out there in the process of getting products into the marketplace, please think about the full lifecycle of the experience. Make customers feel good about themselves and you will succeed.

High availability means redundancy, right? If a piece of hardware or software fails, a backup kicks in immediately to carry the load so that users do not observe the failure. At worst, a transient error condition is seen to the client. This, at least, is the conventional wisdom now in an era of hardware with short MTBF (mean time between failures).

My wife and I experienced the leftovers of the mainframe era at the airport on Friday. Trying to get from Chicago to Philadelphia, we discovered that not only was our flight cancelled, all flights to the east coast altogether were cancelled. The weather conditions were fine across the map, so it didn’t make a lot of sense. Later on my aerospace buddy Matt clued me in that the FAA computers on the east coast had crashed. Another friend clued me in to the fact that 3 servers handle the FAA routing for the entire country, so the loss of a single server kept hundreds of people on the ground.

I don’t argue with the policy of not launching planes when their positions can’t be adequately tracked by air traffic control, but it’s a bit of an anachronism in this day and age to see a critical industry taken out by the loss of a single server. Big iron (mainframes) should all be dead and retired by now specifically to avoid this kind of situation. User requests should be automatically failed over to backup hardware. This is a solved problem. Telecom and Web 2.0 companies alike do this many times over every day.

I understand that a rewrite of the 1960s era software occurred at some point and the air traffic controllers rejected the solution. (with good reason) I think that, rather than attempting a complete replacement next time, they should try utilizing the Strangler Pattern. The failure-prone backend infrastructure could be steadily replaced without necessarily also re-writing the front end code. By maintaining different conceptual layers, the availability of the system can be improved without forcing an all-or-nothing type total system re-write number in the billions of dollars.

Big-bang software projects rarely succeed. Break big problems into manageable little problems! Ask your users what will improve their experience. And last but not least, at least have a better story for the poor saps at the airport than, “Your flight has been cancelled. Would you like to go on Sunday instead?”

I had a recruiter cold call me at work today. I told him I was busy at the moment, but that he could email me at my cornell.edu address. I like to give a cursory glance at the pitches by head hunters on the theory that eventually one of them will be interesting. This is the approximate conversation that followed:

Recruiter: “Oh, did you go to Cornell?”

Me: “Yes”

Recruiter: “I went to Dartmouth. Ivy League for the win!”

Me: “Are you a World of Warcraft player?”

Recruiter: “Yeah, I play on the Bronzebeard server.”

Me: “Nice. I’m over on Garona.”

I’d say that qualified as the oddest conversation I’ve had with a cold caller, but the interesting thing is the extent to which MMORPG and WoW vocabulary is now transferring over to RL. (real life) Also, to be perfectly honest, I’m now far more inclined to see what the guy has to say…Hilarious.

« Previous PageNext Page »