At least once per year, I fly to Las Vegas and completely blow my tubes out for forty eight hours. Alternative realities give you new perspectives on things, so I justify it as personal development.
After uncounted hours of punishment at a craps table, I was in no mood to be placated with complimentary cocktails. My friend Gabe and I left the casino, willing to pay for our own drinks, if only just to pay the rent for a quiet hour of liquor.
There was a nearby bar that served Pappy Van Winkle’s Family Reserve Bourbon Whiskey, the best Bourbon in the world. The place was quiet and empty - just the environment I wanted at the time - so we sat and ordered our drinks.
As we drank, we chatted with Max, the bartender. This is a man who is truly at the top of the game in barcraft. Pappy Van Winkle Bourbon is incredibly rare, and he taught us about its lineage; we learned that several distilleries acquired casks of the stuff through some odd business transactions and sell it under a different brand name.
Max showed us his specialty cocktail list, things that he’s invented but are off the menu. One of the drinks listed smoke as an ingredient, not liquid smoke flavoring, but actual smoke. Watching Max prepare this drink was almost as amazing as the drink itself - he fired a piece of charcoal - charcoal from the inside of a bourbon cask - with a propane torch and covered it with the glass as it smoked, some of the residue remaining on the inside of the glass.
More people are filtering into the bar now, and as we’re enjoying Max’s expertise, a Bro, sunglasses-on-indoors, hat-sideways, popped-collar and all, comes up to the bar and, entirely unprompted by the bartender, orders his drink.
LEMME GET A CAPTAIN AND COKE BRAH.
Max turns to him and smiles, "sure, coming right up".
And we watched as Max made the hell out of that Captain and Coke. The Bro paid and strutted off to his crew.
We asked Max how he felt about making a Captain and Coke, considering how talented a bartender he is, and how the customer was even kind of a dick.
His response was the personal developmental lesson I took from this Vegas trip.
"No, it doesn’t bother me. If the customer orders Pappy and can talk about fine whiskey, I’ll pour Pappy and talk about fine whiskey. But if the customer orders a Captain and Coke, I’ll make the best Captain and Coke I can."
This guy is truly a master of his craft. He know all the technical details of the domain, and is creative enough to invent fantastic drinks. But beyond all that, most importantly, he knows that barcraft is fundamentally about giving the customer what they want. My friends and I wanted to talk about high end bourbon. Brody McBroderson wanted to get hammered.
The true master obliges both.
I’ve mastered the Python language, and very nearly mastered PostgreSQL’s every in, out, and what-have-you. Since being acquired by eBay, I’ve been pushing to write all new code in Python, pushing to get PostgreSQL officially supported, pushing in every direction, so long as it was away from Java.
That has been a mistake.
I know Java well enough, so I haven’t been resisting because of my skill set, I resisted Java because it’s enterprisey. Because I thought it was an inferior technology. Because I had a chip on my shoulder about technical superiority.
That’s not mastery, that’s just being a prick, and I’m done with it.
For the last week, I’ve given up Emacs, and am writing Java code in eBay’s modified version of Eclipse, and I don’t hate it. Sure, it has its warts, but it’s not that bad. It’s just different. And I’ve actually been quite productive because there’s so much infrastructure already set up around Java at eBay.
I’m still trying to master the craft, but giving up language bigotry is a huge part of it. I’m not working to make the most efficiently coded, concise solution, I’m working to deliver business value in context. And I’ve found that the vast majority of that work is simply understanding the context.
Now, this may seem obvious. “If you’re working inside a company that’s all Java, of course you should code in Java!” But there’s a more subtle point here:
If you’ve coded in Ruby, Python, or any modern framework language, would you take a job at a Java shop?
I suspect that a lot of people wouldn’t, because of programming language bigotry. I would take a job at a Java shop (I did, in fact, even though I resisted it for two years) because I feel orders of magnitude more useful delivering business value than I feel delivering code.
I’m not there yet, but a software master delivers value, the code is just part of the way there.