Wednesday, August 7, 2013

Results Oriented

“ In Confessions of a Winning Poker Player, Jack King said, ‘Few players recall big pots they have won -- strange as it seems -- but every player can remember with remarkable accuracy the outstanding tough beats of his career.’ Seems true to me, 'cause walking in here I can hardly remember how I built my bankroll, but I can't stop thinking how I lost it.”

“If you're too careful, your whole life can become a fuckin' grind.“ - Mike McD (played by Matt Damon “Rounders”)

I am no stranger to taking what looks like insane, crazy risks. I threw money into the stock market. I quit “safe” jobs for “riskier” ones that paid better. In the poker game of life, I have played it with an aggressive style. All it took was one bad beat to convince me to change. Hunker down. Don’t chase draws even with great pot odds. Grind it out.

I had a bad moment. One I’m not proud of where I wanted to dig my heels in and say, “I’m not moving!” I could throw out any excuse. Yes, I like Seattle. The summers here are gorgeous. I want to be a part of the Seahawks Super Bowl season (it’s going to happen - trust me on this). I love the mountains and lakes. I have friends here. But, as I learned at the Air Force Academy, excuses are like assholes, we all have them and they all stink. The real reason I didn’t want to move was fear. All it took was one bad beat and I was afraid.

The analogy worked, and it got me thinking about one of my former hobbies, poker. The beauty and difficult part of poker is that it is an incomplete information game. You may know what you have, but without cheating, you can only speculate what your opponents have. In the short term, a bad beat can crush you, but in the long run, getting your money in when the odds are in your favor is the only way to play - regardless of the outcome.

It’s funny thing as I see resumes all the time that contain the phrase “results oriented”. In poker, that phrase is an insult. All you can do is trust your read and get your money when you think you have the best of it. If the poker gods decide to crush your soul with a bad beat, so be it.

With that in mind, I decided to play an mspoker tournament on Friday. This group has been going strong for over a decade now. I have been gone awhile and there were a lot of new faces mixed in with the familiar. I played my game. I won some hands. I lost some hands. I won more hands than I lost and started to build up a decent stack as the blinds were getting higher. With the blinds at 30/60 and me sitting on about 4,000 in chips, a small stack decided to go all-in for 350 while I was on the dealer button. Now, strangely, an aggressive player makes a call. I say strangely as an aggressive player would usual raise to isolate and get a chance at busting the small stack by himself. At this point, I don’t know what I have since I refuse to look until it’s my turn to act but I’m thinking about how do I want to play this based on the action in front of me.

It’s folded to me and I have pocket 7’s. Not a bad hand, but not exactly a monster. I have a short stack that is acting a bit desperate and I put him on any random hand. The caller has been aggressive and I have position on him in the hand. I really don’t want to re-raise here and face the possibility of a re-re-raise and I decide to see a flop cheap and have the discipline to get away from it if I don’t like it.

The short stack makes a mistake and actually shows his hand - Q8. Since he doesn’t have more chips, the ruling is made that he doesn’t have to fold but now my opponent and I have a little more information - there is one queen and on eight that is not in the deck.

Ideally, I would have flopped quads, or at least a set, but barring that I got a beautiful six high flop. The aggressive player bets out 750. At this point, he has put roughly ⅓ of his stack in this pot and that was a pretty high bet. I have to ask myself given his action pre-flop and the big lead out bet, what does he have? I conclude that he has AK and that my 7’s are good. I don’t hesitate for a second, as he is putting the chips out in front of him, I say, “All-in.”

Now this guy takes forever trying to figure out what to do and I know that I have him. He’s mad at himself for betting that big and then having to lay it down, but he’s smart enough to know that he’s beat but doesn’t want to admit it yet. I don’t say anything, but I’m hoping he calls because I’m 100% positive that I’ve got him beat. He starts making his speech and eventually says fold but exposes his AQ - extremely close to what I thought he had. As he folds, he states that the fact that he knew the short stack had one of his queens factored into his decision. If he had called, he had two queens and three aces that could save him - roughly a 20% chance to win the hand.

He folds and I show my 7’s and the turn comes out a queen and now he is absolutely beside himself. I’m irritated that I don’t get the whole pot and barely eek out a profit after all the drama because all I get is the 750 from the side pot, but hey, that’s poker. The fact remains, my opponent played every street wrong. Pre-flop if he re-raised the original bettor, I might have not taken that much risk with a weakish pair. On the flop, the bet seemed out of line with the pot. If he had a hand, he would have made a smaller bet or even checked to me to entice a bet. Instead, he stuck a good chunk of his stack in there and got angry because I called his bluff with an 80% chance of winning all his chips.

Now if an 80% chance doesn’t sound good, even people with the most basic knowledge of Texas Hold ‘Em can tell you that the best pre-flop starting hand is AA. Yet, the very best hand in poker is usually only an 85% chance to win against any random hand. Those odds are as good as they get and one time in five I’m going home trying to explain to my wife that I really should have won because I made the right play. She then tells me if I was supposed to win, I would have and I give myself a face slap and vow to never tell her a bad beat story. Until the next time I get a bad beat.

In this case, my read was near perfect as AK would have had roughly the same odds as AQ here. Reads are funny because sometimes it’s hard to tell the difference between what you think an opponent has versus what you really want the opponent to have. I played a very good player who managed to cash in this year’s main event at the World Series of Poker in two back-to-back tournaments. The first time, he made an aggressive move at me and I swore up and down he was on the straight draw. Sure enough, I call, he shows, and it’s a straight draw. It was like I could see his cards and I just KNEW it. Very next tournament, I’m in a hand against the same player. I’m holding AQ and the flop comes with an ace along with three spades and the same player I had busted before bets into me. I get into my head and I wonder if he would bet into it if he had a flush. But then I know that he knows that I know he’s an aggressive player and is the type that would bet if he had the flush or if he wanted to represent the flush. Something is telling me to fold, but I don’t listen and I make a crying call telling myself that he’s on the flush draw and to think that he flopped the flush is paranoid. Sure enough, he has the flush and all I can do is say that I had the wrong read or I got greedy. I go home.

So what’s the point of walking down a couple of random hands in some low stakes tournaments? In poker, as in life, there are no certainties. You have to deal with incomplete information all the time. Sometimes you make the right move and lose. Sometimes you make the wrong move and win. In the long run, it comes down to making the right decision more often than not. You can’t lose what you don’t put in the middle, but you can’t win either. Oh, and we’re moving to Texas.

Thursday, August 1, 2013

The Only Constant Is Change

“Dad, giraffes don’t make noise,” said my adorable little girl.

“Is that true, Zoe?”

“Yes, Google it,” she replied.

I laughed at my child who was not speaking in complete sentences a few years ago was now using “google” as a verb in perfect context. Just as my generation made fun of our parents’ generation, our children will make fun of us. They are an entire generation that will never use a land line, buy a compact disc or DVD, nor will they know a life that did not include the Internet or FaceBook, and more.

I am one-third to one half of my way through a career in Information Technology and now is as good a time as ever to reflect how much has changed in IT since I started my career. I graduated from college and started working professionally in 1995. I considered myself lucky to have a laptop instead of a desktop. It was an Intel 486 without a CD-ROM. It took several minutes to boot Windows for Workgroups 3.11 and log into a Novell Network.

Plenty of people I worked with had their Certified Netware Engineer certificates. Novell was absolutely huge. Logging into their servers enabled extremely crude file sharing, mapping network resources to local drives, and print services. In a span of a few years, Novell all but disappeared from the corporate landscape. It was replaced by NT Server and Active Directory by Microsoft.

Active Directory allowed IT departments to control what software was loaded on their employees PCs, run scripts, and update anti-virus software. It works great when a user had one device and was hooked directly into a corporate network. It works less than great when a user had multiple devices and tried to access corporate resources away from the office. It only works with Windows PCs.

In 1995, Apple Computer was as good as dead. A few people had Macbooks in college, but in the Enterprise, it was all about Windows PCs. A decade and a half later, Apple (no longer Apple Computer) is one of the most valuable companies in the world. While the Mac OSX operating system is far from dominating corporate IT departments and represents about 10% - 15% of the personal computing devices, it is now finally receiving limited enterprise support. Mac users love their Macs and are adamant about using them at work. Except which operating system is being used doesn’t matter nearly as much as it used to since a lot of corporate systems are now written as web interfaces accessed by a browser. So long as a user can access the resource, the OS they are using is of little consequence. Does Active Directory still matter in this environment? The days of a single user with a single computer are long gone. Most corporate users have a work laptop, a home computer, a smartphone, and possibly a tablet. They want their information on whichever device is closest.

As the phrase “World Wide Web” was repeated over and over again in the mid-nineties, Netscape shot to prominence with their Netscape Navigator browser. Without worrying about minor details like profitability, plans for profitability, or a product roadmap; Netscape went public launching the dot com bubble. They were the sexy Internet startup and the tech media darling.

Microsoft was worried that the OS would become irrelevant (rightfully so) and was determined to control the browser experience. Internet Explorer came from behind and in a period of a few short years, was being used by over 90% of PC users. Netscape eventually sold themselves to AOL for several billion dollars and was never heard from again.

Internet Explorer ruled the Internet, for a short period of time. Yet Apple wielded a subtle influence on the future of the web. Although Safari has a small market share, it was built on the webkit platform which was then open sourced. Google built the Chrome browser and a community of developers produced Firefox based on webkit. The default browser on the most dominant operating system (Windows) is now repeatedly swapped for Chrome or Firefox to the point where IE now represents only 30-40% of the browser market. Geeks being passionate about their browser is one thing, but at this point non-geeks are downloading Chrome or Firefox in droves.

Speaking of AOL, in the mid-nineties they had well over 20 million subscribers paying $20 per month for the privilege of accessing the Internet over a telephone with speeds up to 56.6 kbps. They completely dominated consumer access to the Internet. The phrase “you got mail” even spawned an awful movie starring Tom Hanks and Meg Ryan. The only problem was after the novelty of “being online” wore off, no one wanted to connect through their phone line at painfully slow speeds. Around the time AOL purchased Time Warner, in what is widely considered one of the most disastrous corporate mergers of all time, cable and DSL started offering always on Internet connections at orders of magnitude faster speeds and AOL became increasingly less important. Time Warner eventually spun themselves back out of AOL and the company is now worth considerably less than the paid to acquire Netscape over a decade ago.

During the dot com bubble days, companies talked about eyeballs. Acquiring eyeballs. Aggregating eyeballs. Eyeballs were going to lead to sweet advertising dollars. Yahoo! was the leading web portal. Except it turned out display advertising was not nearly as important as it was initially thought. An upstart, Google, produced great search results and had a minimalistic web site built around it. Google charged companies to be mentioned in their search results and made buckets of cash. Yahoo! stumbled and eventually decided not to sell themselves to Microsoft for $50 billion and now, a few years later, are valued at well less than half that amount.

In the early 2000’s corporate executives loved their Blackberries. They loved them so much they were referred to as “crackberries” as the execs who carried them were physically addicted to them. Then, in less than half a decade, the Blackberry market share went sharply in reverse - replaced by iPhones and Android smartphones.

In the last fifteen years, Microsoft’s Exchange became the de facto standard in most corporation replacing products by Novell and Lotus Notes. Upstarts like Yahoo! seemed unstoppable for a few years only to be replaced by an even newer company a few years later. Beloved products like the Blackberry have been discarded in just a few scant years. Complex corporate systems that used to run as executable programs on PCs have been replaced by browser based Intranet systems. It seems like every piece of technology is evolving at an increasingly rapid pace, and that is just the things you see...

Beneath the surface... Programs used to be written in procedural languages. Then along came object-oriented languages. In OO, C++ was dominant, but then Java came along and got rid of the worst of C++ - multi-inheritance, pointers, memory management, header files and more. Three tier architecture became the standard over the two-tier client/server model. New languages and frameworks like Django and Ruby on Rails were designed to make web development even faster.

On the front end, just when it seemed like Flash was the standard for client interactions with the browser, Apple’s steadfast refusal to support it on the iPad killed it. Seemingly minutes later, jQuery became the new standard.

On the database side, new concepts like eventual consistency and big data offered a departure from the traditional relational databases. Even with relational databases the Spring framework and other Object to Relational Mapping (ORM) technologies made the hours I had spent writing SQL semi-obsolete. Where the database world once had IBM, Oracle, and Microsoft slugging it out for corporate dollars; it now has open source alternatives such as MySQL, PostgreSQL, Cassandra, and Mongo that are every bit as good (if not better) than their expensive closed source brethren.

Yet amongst this sea of change, one thing has remained remarkably consistent. People create data. That data must be stored somewhere. Rules need to be established to define what data is accepted. The data must be secured. Solving problems in technology does not require being an expert in every new fangled technology. It requires an open mind and flexibility. It requires good design making intuitive interfaces for users, scalability, and configurability. The syntax of the language is less important than understanding how to setup the data, validate it, interface it, and secure it.

Everyone throws around the buzzwords “flexible” and “scalable” yet few actually define it. So I’m going to do it. Scalable means the ability to seamlessly add users and/or data with minimal impact to performance. Flexible means to anticipate future needs well enough that the system can be modified via configuration versus code changes into the foreseeable future. Neither of these critical design principles have anything to do with syntax and using the latest and greatest, but a deep understanding of the problem domain.

Too often the emphasis on the low level. “How many years of SQL Server do you have?” is the wrong question. “How do you model this problem?” is the right one. I am shocked by the number of people I have ran into who do not understand basic concepts of data normalization. Not understanding this leads to bad/inflexible design. These people are hired for their syntactical experience, not for their problem solving. Except the syntactical skills don’t really matter because, in this field, the only constant is change.