Saturday, April 6, 2019

Old school gaming

I have been thinking about gaming a bit lately. In some part because of Twitch and it's association with Amazon and because someone on my team is working on a project that they conceived of during a Hackathon and was so cool we decided to turn it into a product. And it involves Twitch.

My history with gaming goes way back to high school. There I was learning BASIC on an Apple II. Monochrome monitor with a built in keyboard and cassette tape drive for storage. My go to computer game was the Star Trek game - an ASCII character based game where you would navigate/fire using a cross (up-down-left-right) pattern on the keyboard (there were no arrow keys yet). Once you typed in your command the program would then execute it and show you the resulting state. This was the definition of an interactive game at this time.

I was so amazed by this that I would beg my parents for a Sinclair ZX80 computer. At the time they cost like $200 - which was about $199 more than I had from my crappy paper route. So I would go grocery shopping with my mom so that I could go into the Radio Shack next door and program away on the TRS80s they had on display. Ironically my parents were willing to drop about the same amount of money on the original Atari game console. Although they bought one so early that the joysticks had not come out yet and all that it came with was the knob/dial controller for Pong.



Fast forward through all the arcade time I spent to when I had graduated and started a real job doing programming. Within a couple years Wolfenstein was released and I was hooked. The cool thing about this game was that if you had a local network you could play with up to four other people. Well it didn't take long for my friends and I to setup our IBM PCs around a kitchen table and start slinging Token Ring cables. More than once we would be missing a Token Ring terminator and have to delay playing until we found one.

The new games rarely hook me the way those old ones did. I am not sure why. The graphics these days are amazing - when I see screen shots from Red Dead II it blows me away. I feel a little like Richard Dreyfus at the end of "Stand by Me" when he writes “I never had any friends later on like the ones I had when I was 12. Jesus, does anyone?”. Maybe this is the embodiment of nostalgia.

Wednesday, April 3, 2019

What does a TPM do anyway?



At Amazon we have a role called TPM - of which I am one. It's not a role that I was familiar with until I started here.

As I talk to more and more people, candidates and peers my definition/description of this role have drastically evolved. Here are my current ramblings on this.

You may or may not know that Amazon.com (the website) is made up of hundreds (maybe more) of micro-services. Generally a service is owned by a 2-pizza team - that is a team you can feed with 2 pizzas. This creates a challenge for teams that build features that consume those services. And gets even more complex when you consider lineage of services, that is the hierarchy of service dependency.

In past jobs, we used to talk about things like service bus and services directories. These were ways that we were trying to tame service based architectures. In the end these met with marginal success (I am being generous). Actually they were very complex, obscure, hard to keep accurate. I remember spending months arguing over a service taxonomy. Yuck.


At Amazon we don't try to tame this environment. The rationale? It's a Day 2 type of mentality.

If you're thinking like a startup you aren't spending a lot of time trying to organize all your services. You're not trying to stamp out duplication. Day 1 companies are innovating, trying new things, letting things evolve and deprecating the stuff that doesn't "survive".

TPMs have to live in this world and make it possible for everyone else to as well. It is our job to architect technical solutions in this environment. To negotiate with others to get things done. Sometimes it means that we have to get scrappy. Your ability to do this and deliver something great for our customers is what makes a great TPM and what keeps Amazon...well being Amazon.